diff --git a/DEPS b/DEPS index bc000ff..7d66e721e 100644 --- a/DEPS +++ b/DEPS
@@ -40,7 +40,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'ec8f8b064340b030fc4ce10f6cbbc3d6f63b946f', + 'skia_revision': 'e6c210ae01137b283ba7c55b3b197771f425eb74', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -48,11 +48,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. - 'swarming_revision': 'e6fc9383ad7c38b3464141989b7bc498391e57e4', + 'swarming_revision': 'a941a089ff1000403078b74cb628eb430f07d271', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'b4cf5656260cc6a7a0bff2543c5c29310d05bb02', + 'angle_revision': '82830edeacade1dd52ba8bc2338ecb195641c5e3', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. @@ -96,7 +96,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '59e58189c55d9c5cc0e8e30bad254b7eb2e99634', + 'catapult_revision': '1ff6ffc1f618848b6a3755daad304ad5839cf182', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other.
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn index 7ba1756..cb2c49d 100644 --- a/android_webview/BUILD.gn +++ b/android_webview/BUILD.gn
@@ -36,128 +36,6 @@ } } -source_set("native") { - deps = [ - ":native_jni", - "//android_webview:generate_components_strings", - "//android_webview/common:version", - "//base", - "//base/third_party/dynamic_annotations:dynamic_annotations", - "//cc:cc", - "//components/autofill/content/browser:browser", - "//components/spellcheck:build_features", - "//components/web_contents_delegate_android:web_contents_delegate_android", - "//content/public/common", - "//media", - "//net", - "//skia", - "//storage/browser", - "//storage/common", - "//third_party/boringssl", - "//ui/base", - "//ui/gfx", - "//ui/gfx/geometry:geometry", - ] - - include_dirs = [ - "//skia/config", - "//third_party/protobuf", - ] - - sources = [ - "browser/address_parser.cc", - "browser/address_parser.h", - "browser/address_parser_internal.cc", - "browser/address_parser_internal.h", - "browser/android_protocol_handler.cc", - "browser/android_protocol_handler.h", - "browser/android_webview_jni_registrar.cc", - "browser/android_webview_jni_registrar.h", - "browser/aw_autofill_client.cc", - "browser/aw_autofill_client.h", - "browser/aw_contents.cc", - "browser/aw_contents.h", - "browser/aw_contents_background_thread_client.cc", - "browser/aw_contents_background_thread_client.h", - "browser/aw_contents_client_bridge.cc", - "browser/aw_contents_client_bridge.h", - "browser/aw_contents_io_thread_client_impl.cc", - "browser/aw_contents_io_thread_client_impl.h", - "browser/aw_contents_lifecycle_notifier.cc", - "browser/aw_contents_lifecycle_notifier.h", - "browser/aw_contents_statics.cc", - "browser/aw_contents_statics.h", - "browser/aw_debug.cc", - "browser/aw_debug.h", - "browser/aw_devtools_server.cc", - "browser/aw_devtools_server.h", - "browser/aw_form_database.cc", - "browser/aw_form_database.h", - "browser/aw_gl_functor.cc", - "browser/aw_gl_functor.h", - "browser/aw_http_auth_handler.cc", - "browser/aw_http_auth_handler.h", - "browser/aw_locale_manager_impl.cc", - "browser/aw_locale_manager_impl.h", - "browser/aw_media_url_interceptor.cc", - "browser/aw_media_url_interceptor.h", - "browser/aw_metrics_log_uploader.cc", - "browser/aw_metrics_log_uploader.h", - "browser/aw_metrics_service_client_impl.cc", - "browser/aw_metrics_service_client_impl.h", - "browser/aw_pdf_exporter.cc", - "browser/aw_pdf_exporter.h", - "browser/aw_picture.cc", - "browser/aw_picture.h", - "browser/aw_quota_manager_bridge_impl.cc", - "browser/aw_quota_manager_bridge_impl.h", - "browser/aw_renderer_priority_manager.cc", - "browser/aw_renderer_priority_manager.h", - "browser/aw_resource.cc", - "browser/aw_settings.cc", - "browser/aw_settings.h", - "browser/aw_web_contents_delegate.cc", - "browser/aw_web_contents_delegate.h", - "browser/aw_web_contents_view_delegate.cc", - "browser/aw_web_contents_view_delegate.h", - "browser/aw_web_preferences_populater_impl.cc", - "browser/aw_web_preferences_populater_impl.h", - "browser/aw_web_resource_response_impl.cc", - "browser/aw_web_resource_response_impl.h", - "browser/cookie_manager.cc", - "browser/cookie_manager.h", - "browser/input_stream_impl.cc", - "browser/input_stream_impl.h", - "browser/java_browser_view_renderer_helper.cc", - "browser/java_browser_view_renderer_helper.h", - "browser/net_init_native_callback.cc", - "browser/permission/aw_permission_request.cc", - "browser/permission/aw_permission_request.h", - "browser/permission/aw_permission_request_delegate.cc", - "browser/permission/aw_permission_request_delegate.h", - "browser/permission/media_access_permission_request.cc", - "browser/permission/media_access_permission_request.h", - "browser/permission/permission_request_handler.cc", - "browser/permission/permission_request_handler.h", - "browser/permission/permission_request_handler_client.cc", - "browser/permission/permission_request_handler_client.h", - "browser/permission/simple_permission_request.cc", - "browser/permission/simple_permission_request.h", - "browser/popup_touch_handle_drawable.cc", - "browser/popup_touch_handle_drawable.h", - "browser/state_serializer.cc", - "browser/state_serializer.h", - "browser/token_binding_manager_bridge.cc", - "browser/token_binding_manager_bridge.h", - ] - - if (enable_spellcheck) { - deps += [ "//components/spellcheck/browser:browser" ] - } - - libs = [ "jnigraphics" ] -} - generate_jni("native_jni") { sources = [ "java/src/org/chromium/android_webview/AndroidProtocolHandler.java", @@ -541,6 +419,16 @@ source_set("common") { sources = [ + "browser/address_parser.cc", + "browser/address_parser.h", + "browser/address_parser_internal.cc", + "browser/address_parser_internal.h", + "browser/android_protocol_handler.cc", + "browser/android_protocol_handler.h", + "browser/android_webview_jni_registrar.cc", + "browser/android_webview_jni_registrar.h", + "browser/aw_autofill_client.cc", + "browser/aw_autofill_client.h", "browser/aw_browser_context.cc", "browser/aw_browser_context.h", "browser/aw_browser_main_parts.cc", @@ -552,41 +440,80 @@ "browser/aw_browser_terminator.h", "browser/aw_content_browser_client.cc", "browser/aw_content_browser_client.h", + "browser/aw_contents.cc", + "browser/aw_contents.h", + "browser/aw_contents_background_thread_client.cc", + "browser/aw_contents_background_thread_client.h", + "browser/aw_contents_client_bridge.cc", + "browser/aw_contents_client_bridge.h", "browser/aw_contents_client_bridge_base.cc", "browser/aw_contents_client_bridge_base.h", "browser/aw_contents_io_thread_client.h", + "browser/aw_contents_io_thread_client_impl.cc", + "browser/aw_contents_io_thread_client_impl.h", + "browser/aw_contents_lifecycle_notifier.cc", + "browser/aw_contents_lifecycle_notifier.h", + "browser/aw_contents_statics.cc", + "browser/aw_contents_statics.h", "browser/aw_cookie_access_policy.cc", "browser/aw_cookie_access_policy.h", + "browser/aw_debug.cc", + "browser/aw_debug.h", "browser/aw_devtools_manager_delegate.cc", "browser/aw_devtools_manager_delegate.h", + "browser/aw_devtools_server.cc", + "browser/aw_devtools_server.h", "browser/aw_download_manager_delegate.cc", "browser/aw_download_manager_delegate.h", + "browser/aw_form_database.cc", + "browser/aw_form_database.h", "browser/aw_form_database_service.cc", "browser/aw_form_database_service.h", + "browser/aw_gl_functor.cc", + "browser/aw_gl_functor.h", "browser/aw_gl_surface.cc", "browser/aw_gl_surface.h", + "browser/aw_http_auth_handler.cc", + "browser/aw_http_auth_handler.h", "browser/aw_http_auth_handler_base.cc", "browser/aw_http_auth_handler_base.h", "browser/aw_javascript_dialog_manager.cc", "browser/aw_javascript_dialog_manager.h", "browser/aw_locale_manager.h", + "browser/aw_locale_manager_impl.cc", + "browser/aw_locale_manager_impl.h", "browser/aw_login_delegate.cc", "browser/aw_login_delegate.h", + "browser/aw_media_url_interceptor.cc", + "browser/aw_media_url_interceptor.h", + "browser/aw_metrics_log_uploader.cc", + "browser/aw_metrics_log_uploader.h", "browser/aw_metrics_service_client.cc", "browser/aw_metrics_service_client.h", + "browser/aw_metrics_service_client_impl.cc", + "browser/aw_metrics_service_client_impl.h", + "browser/aw_pdf_exporter.cc", + "browser/aw_pdf_exporter.h", "browser/aw_permission_manager.cc", "browser/aw_permission_manager.h", + "browser/aw_picture.cc", + "browser/aw_picture.h", "browser/aw_print_manager.cc", "browser/aw_print_manager.h", "browser/aw_printing_message_filter.cc", "browser/aw_printing_message_filter.h", "browser/aw_quota_manager_bridge.cc", "browser/aw_quota_manager_bridge.h", + "browser/aw_quota_manager_bridge_impl.cc", + "browser/aw_quota_manager_bridge_impl.h", "browser/aw_quota_permission_context.cc", "browser/aw_quota_permission_context.h", "browser/aw_render_process_gone_delegate.h", "browser/aw_render_thread_context_provider.cc", "browser/aw_render_thread_context_provider.h", + "browser/aw_renderer_priority_manager.cc", + "browser/aw_renderer_priority_manager.h", + "browser/aw_resource.cc", "browser/aw_resource_context.cc", "browser/aw_resource_context.h", "browser/aw_result_codes.h", @@ -598,10 +525,20 @@ "browser/aw_safe_browsing_resource_throttle.h", "browser/aw_safe_browsing_ui_manager.cc", "browser/aw_safe_browsing_ui_manager.h", + "browser/aw_settings.cc", + "browser/aw_settings.h", "browser/aw_ssl_host_state_delegate.cc", "browser/aw_ssl_host_state_delegate.h", + "browser/aw_web_contents_delegate.cc", + "browser/aw_web_contents_delegate.h", + "browser/aw_web_contents_view_delegate.cc", + "browser/aw_web_contents_view_delegate.h", "browser/aw_web_preferences_populater.cc", "browser/aw_web_preferences_populater.h", + "browser/aw_web_preferences_populater_impl.cc", + "browser/aw_web_preferences_populater_impl.h", + "browser/aw_web_resource_response_impl.cc", + "browser/aw_web_resource_response_impl.h", "browser/browser_view_renderer.cc", "browser/browser_view_renderer.h", "browser/browser_view_renderer_client.h", @@ -613,6 +550,8 @@ "browser/compositor_frame_producer.h", "browser/compositor_id.cc", "browser/compositor_id.h", + "browser/cookie_manager.cc", + "browser/cookie_manager.h", "browser/deferred_gpu_command_service.cc", "browser/deferred_gpu_command_service.h", "browser/find_helper.cc", @@ -624,6 +563,10 @@ "browser/icon_helper.cc", "browser/icon_helper.h", "browser/input_stream.h", + "browser/input_stream_impl.cc", + "browser/input_stream_impl.h", + "browser/java_browser_view_renderer_helper.cc", + "browser/java_browser_view_renderer_helper.h", "browser/jni_dependency_factory.h", "browser/net/android_stream_reader_url_request_job.cc", "browser/net/android_stream_reader_url_request_job.h", @@ -653,10 +596,25 @@ "browser/net/token_binding_manager.h", "browser/net_disk_cache_remover.cc", "browser/net_disk_cache_remover.h", + "browser/net_init_native_callback.cc", "browser/parent_compositor_draw_constraints.cc", "browser/parent_compositor_draw_constraints.h", "browser/parent_output_surface.cc", "browser/parent_output_surface.h", + "browser/permission/aw_permission_request.cc", + "browser/permission/aw_permission_request.h", + "browser/permission/aw_permission_request_delegate.cc", + "browser/permission/aw_permission_request_delegate.h", + "browser/permission/media_access_permission_request.cc", + "browser/permission/media_access_permission_request.h", + "browser/permission/permission_request_handler.cc", + "browser/permission/permission_request_handler.h", + "browser/permission/permission_request_handler_client.cc", + "browser/permission/permission_request_handler_client.h", + "browser/permission/simple_permission_request.cc", + "browser/permission/simple_permission_request.h", + "browser/popup_touch_handle_drawable.cc", + "browser/popup_touch_handle_drawable.h", "browser/render_thread_manager.cc", "browser/render_thread_manager.h", "browser/render_thread_manager_client.h", @@ -668,8 +626,12 @@ "browser/renderer_host/aw_resource_dispatcher_host_delegate.h", "browser/scoped_app_gl_state_restore.cc", "browser/scoped_app_gl_state_restore.h", + "browser/state_serializer.cc", + "browser/state_serializer.h", "browser/surfaces_instance.cc", "browser/surfaces_instance.h", + "browser/token_binding_manager_bridge.cc", + "browser/token_binding_manager_bridge.h", "browser/tracing/aw_tracing_delegate.cc", "browser/tracing/aw_tracing_delegate.h", "common/android_webview_message_generator.cc", @@ -725,8 +687,11 @@ ":generate_aw_resources", ":generate_aw_strings", ":generate_components_strings", - ":native", + ":native_jni", + "//android_webview:generate_components_strings", "//android_webview/common:version", + "//base", + "//base/third_party/dynamic_annotations:dynamic_annotations", "//cc/surfaces", "//components/autofill/content/browser", "//components/autofill/content/renderer", @@ -771,12 +736,17 @@ "//gpu/skia_bindings", "//media", "//media/midi", + "//net", "//net:extras", "//printing", "//services/service_manager/public/cpp", "//skia", + "//storage/browser", + "//storage/common", "//third_party/WebKit/public:blink", + "//ui/base", "//ui/events:gesture_detection", + "//ui/gfx", "//ui/gl", "//ui/gl/init", "//ui/shell_dialogs", @@ -791,6 +761,8 @@ } configs += [ "//v8:external_startup_data" ] + + libs = [ "jnigraphics" ] } android_library("android_webview_java") {
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc index 42bad7c1..186e744 100644 --- a/android_webview/browser/hardware_renderer.cc +++ b/android_webview/browser/hardware_renderer.cc
@@ -167,7 +167,7 @@ DCHECK(child_id_.is_valid()); surfaces_->RemoveChildId(cc::SurfaceId(frame_sink_id_, child_id_)); - support_->EvictFrame(); + support_->EvictCurrentSurface(); child_id_ = cc::LocalSurfaceId(); }
diff --git a/base/files/file_path.cc b/base/files/file_path.cc index 5b1eb29..734d522d 100644 --- a/base/files/file_path.cc +++ b/base/files/file_path.cc
@@ -209,6 +209,10 @@ #endif // defined(FILE_PATH_USES_DRIVE_LETTERS) } +std::ostream& operator<<(std::ostream& out, const FilePath& file_path) { + return out << file_path.value(); +} + // static bool FilePath::IsSeparator(CharType character) { for (size_t i = 0; i < kSeparatorsLength - 1; ++i) {
diff --git a/base/files/file_path.h b/base/files/file_path.h index 084d62fc..31d419c3 100644 --- a/base/files/file_path.h +++ b/base/files/file_path.h
@@ -457,6 +457,8 @@ // This should not be used in production code - call ToString() instead. void PrintTo(const FilePath& path, std::ostream* out); +std::ostream& operator<<(std::ostream& out, const FilePath& file_path); + } // namespace base // Macros for string literal initialization of FilePath::CharType[], and for
diff --git a/base/metrics/persistent_histogram_allocator.cc b/base/metrics/persistent_histogram_allocator.cc index c73d844..ea1a2356 100644 --- a/base/metrics/persistent_histogram_allocator.cc +++ b/base/metrics/persistent_histogram_allocator.cc
@@ -565,35 +565,40 @@ return histogram; } - // Copy the histogram_data to local storage because anything in persistent - // memory cannot be trusted as it could be changed at any moment by a - // malicious actor that shares access. The contents of histogram_data are - // validated below; the local copy is to ensure that the contents cannot - // be externally changed between validation and use. - PersistentHistogramData histogram_data = *histogram_data_ptr; + // Copy the configuration fields from histogram_data_ptr to local storage + // because anything in persistent memory cannot be trusted as it could be + // changed at any moment by a malicious actor that shares access. The local + // values are validated below and then used to create the histogram, knowing + // they haven't changed between validation and use. + int32_t histogram_type = histogram_data_ptr->histogram_type; + int32_t histogram_flags = histogram_data_ptr->flags; + int32_t histogram_minimum = histogram_data_ptr->minimum; + int32_t histogram_maximum = histogram_data_ptr->maximum; + uint32_t histogram_bucket_count = histogram_data_ptr->bucket_count; + uint32_t histogram_ranges_ref = histogram_data_ptr->ranges_ref; + uint32_t histogram_ranges_checksum = histogram_data_ptr->ranges_checksum; HistogramBase::Sample* ranges_data = memory_allocator_->GetAsArray<HistogramBase::Sample>( - histogram_data.ranges_ref, kTypeIdRangesArray, + histogram_ranges_ref, kTypeIdRangesArray, PersistentMemoryAllocator::kSizeAny); const uint32_t max_buckets = std::numeric_limits<uint32_t>::max() / sizeof(HistogramBase::Sample); size_t required_bytes = - (histogram_data.bucket_count + 1) * sizeof(HistogramBase::Sample); + (histogram_bucket_count + 1) * sizeof(HistogramBase::Sample); size_t allocated_bytes = - memory_allocator_->GetAllocSize(histogram_data.ranges_ref); - if (!ranges_data || histogram_data.bucket_count < 2 || - histogram_data.bucket_count >= max_buckets || + memory_allocator_->GetAllocSize(histogram_ranges_ref); + if (!ranges_data || histogram_bucket_count < 2 || + histogram_bucket_count >= max_buckets || allocated_bytes < required_bytes) { RecordCreateHistogramResult(CREATE_HISTOGRAM_INVALID_RANGES_ARRAY); NOTREACHED(); return nullptr; } - std::unique_ptr<const BucketRanges> created_ranges = - CreateRangesFromData(ranges_data, histogram_data.ranges_checksum, - histogram_data.bucket_count + 1); + std::unique_ptr<const BucketRanges> created_ranges = CreateRangesFromData( + ranges_data, histogram_ranges_checksum, histogram_bucket_count + 1); if (!created_ranges) { RecordCreateHistogramResult(CREATE_HISTOGRAM_INVALID_RANGES_ARRAY); NOTREACHED(); @@ -603,10 +608,9 @@ StatisticsRecorder::RegisterOrDeleteDuplicateRanges( created_ranges.release()); - size_t counts_bytes = - CalculateRequiredCountsBytes(histogram_data.bucket_count); + size_t counts_bytes = CalculateRequiredCountsBytes(histogram_bucket_count); PersistentMemoryAllocator::Reference counts_ref = - subtle::NoBarrier_Load(&histogram_data.counts_ref); + subtle::NoBarrier_Load(&histogram_data_ptr->counts_ref); if (counts_bytes == 0 || (counts_ref != 0 && memory_allocator_->GetAllocSize(counts_ref) < counts_bytes)) { @@ -637,18 +641,18 @@ // Create the right type of histogram. std::string name(histogram_data_ptr->name); std::unique_ptr<HistogramBase> histogram; - switch (histogram_data.histogram_type) { + switch (histogram_type) { case HISTOGRAM: histogram = Histogram::PersistentCreate( - name, histogram_data.minimum, histogram_data.maximum, ranges, - counts_data, logged_data, &histogram_data_ptr->samples_metadata, + name, histogram_minimum, histogram_maximum, ranges, counts_data, + logged_data, &histogram_data_ptr->samples_metadata, &histogram_data_ptr->logged_metadata); DCHECK(histogram); break; case LINEAR_HISTOGRAM: histogram = LinearHistogram::PersistentCreate( - name, histogram_data.minimum, histogram_data.maximum, ranges, - counts_data, logged_data, &histogram_data_ptr->samples_metadata, + name, histogram_minimum, histogram_maximum, ranges, counts_data, + logged_data, &histogram_data_ptr->samples_metadata, &histogram_data_ptr->logged_metadata); DCHECK(histogram); break; @@ -671,8 +675,8 @@ } if (histogram) { - DCHECK_EQ(histogram_data.histogram_type, histogram->GetHistogramType()); - histogram->SetFlags(histogram_data.flags); + DCHECK_EQ(histogram_type, histogram->GetHistogramType()); + histogram->SetFlags(histogram_flags); RecordCreateHistogramResult(CREATE_HISTOGRAM_SUCCESS); } else { RecordCreateHistogramResult(CREATE_HISTOGRAM_UNKNOWN_TYPE);
diff --git a/build/android/pylib/gtest/gtest_test_instance.py b/build/android/pylib/gtest/gtest_test_instance.py index 26288be6..9e4e19a 100644 --- a/build/android/pylib/gtest/gtest_test_instance.py +++ b/build/android/pylib/gtest/gtest_test_instance.py
@@ -349,8 +349,6 @@ self._flags.extend(flag for flag in stripped_lines if flag) if args.run_disabled: self._flags.append('--gtest_also_run_disabled_tests') - if args.test_arguments: - self._flags.extend(args.test_arguments.split()) @property def activity(self):
diff --git a/build/android/pylib/instrumentation/instrumentation_test_instance.py b/build/android/pylib/instrumentation/instrumentation_test_instance.py index 2324fca..adf36d2 100644 --- a/build/android/pylib/instrumentation/instrumentation_test_instance.py +++ b/build/android/pylib/instrumentation/instrumentation_test_instance.py
@@ -654,13 +654,6 @@ if args.regenerate_goldens: self._flags.append('--regenerate-goldens') - if args.test_arguments: - # --test-arguments is deprecated for gtests and is in the process of - # being removed. - raise Exception( - '--test-arguments is not supported for instrumentation ' - 'tests. Pass command-line flags directly instead.') - def _initializeDriverAttributes(self): self._driver_apk = os.path.join( constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR,
diff --git a/build/android/pylib/instrumentation/instrumentation_test_instance_test.py b/build/android/pylib/instrumentation/instrumentation_test_instance_test.py index 2ff8a36..301f95a1 100755 --- a/build/android/pylib/instrumentation/instrumentation_test_instance_test.py +++ b/build/android/pylib/instrumentation/instrumentation_test_instance_test.py
@@ -47,15 +47,14 @@ 'device_flags_file', 'strict_mode', 'regenerate_goldens', - 'test_arguments', ]) def createFlagAttributesArgs( self, command_line_flags=None, device_flags_file=None, - strict_mode=None, regenerate_goldens=None, test_arguments=None): + strict_mode=None, regenerate_goldens=None): return self._FlagAttributesArgs( command_line_flags, device_flags_file, strict_mode, - regenerate_goldens, test_arguments) + regenerate_goldens) def test_initializeFlagAttributes_commandLineFlags(self): o = self.createTestInstance() @@ -92,12 +91,6 @@ self.assertEquals( o._flags, ['--enable-test-intents', '--regenerate-goldens']) - def test_initializeFlagAttributes_testArgumentsRaisesException(self): - o = self.createTestInstance() - args = self.createFlagAttributesArgs(test_arguments='--foo --bar') - with self.assertRaises(Exception): - o._initializeFlagAttributes(args) - def testGetTests_noFilter(self): o = self.createTestInstance() raw_tests = [
diff --git a/build/android/pylib/instrumentation/render_test.html.jinja b/build/android/pylib/instrumentation/render_test.html.jinja new file mode 100644 index 0000000..ab84eb4f --- /dev/null +++ b/build/android/pylib/instrumentation/render_test.html.jinja
@@ -0,0 +1,14 @@ +<html> + <table> + <tr> + <th>Failure</th> + <th>Golden</th> + <th>Diff</th> + </tr> + <tr> + <td><img src="{{ failure_link }}" width="100%"/></td> + <td><img src="{{ golden_link }}" width="100%"/></td> + <td><img src="{{ diff_link }}" width="100%"/></td> + </tr> + </table> +</html>
diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/build/android/pylib/local/device/local_device_instrumentation_test_run.py index 9d6a65d..d25f242b 100644 --- a/build/android/pylib/local/device/local_device_instrumentation_test_run.py +++ b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
@@ -6,6 +6,8 @@ import os import posixpath import re +import sys +import tempfile import time from devil.android import device_errors @@ -16,6 +18,7 @@ from pylib import valgrind_tools from pylib.android import logdog_logcat_monitor from pylib.base import base_test_result +from pylib.constants import host_paths from pylib.instrumentation import instrumentation_test_instance from pylib.local.device import local_device_environment from pylib.local.device import local_device_test_run @@ -26,6 +29,15 @@ from py_utils import tempfile_ext import tombstones +sys.path.append(os.path.join(host_paths.DIR_SOURCE_ROOT, 'third_party')) +import jinja2 # pylint: disable=import-error +import markupsafe # pylint: disable=import-error,unused-import + + +_JINJA_TEMPLATE_DIR = os.path.join( + host_paths.DIR_SOURCE_ROOT, 'build', 'android', 'pylib', 'instrumentation') +_JINJA_TEMPLATE_FILENAME = 'render_test.html.jinja' + _TAG = 'test_runner_py' TIMEOUT_ANNOTATIONS = [ @@ -43,6 +55,16 @@ EXTRA_SCREENSHOT_FILE = ( 'org.chromium.base.test.ScreenshotOnFailureStatement.ScreenshotFile') +FEATURE_ANNOTATION = 'Feature' +RENDER_TEST_FEATURE_ANNOTATION = 'RenderTest' + +# This needs to be kept in sync with formatting in |RenderUtils.imageName| +RE_RENDER_IMAGE_NAME = re.compile( + r'(?P<test_class>\w+)\.' + r'(?P<description>\w+)\.' + r'(?P<device_model>\w+)\.' + r'(?P<orientation>port|land)\.png') + # TODO(jbudorick): Make this private once the instrumentation test_runner is # deprecated. def DidPackageCrashOnDevice(package_name, device): @@ -249,7 +271,8 @@ def _RunTest(self, device, test): extras = {} - flags = None + flags_to_add = [] + flags_to_remove = [] test_timeout_scale = None if self._test_instance.coverage_directory: coverage_basename = '%s.ec' % ('%s_group' % test[0]['method'] @@ -304,7 +327,8 @@ self._test_instance.test_package, self._test_instance.test_runner) extras['class'] = test_name if 'flags' in test: - flags = test['flags'] + flags_to_add.extend(test['flags'].add) + flags_to_remove.extend(test['flags'].remove) timeout = self._GetTimeoutFromAnnotations( test['annotations'], test_display_name) @@ -316,10 +340,19 @@ logging.info('preparing to run %s: %s', test_display_name, test) - if flags: + render_tests_device_output_dir = None + if _IsRenderTest(test): + # TODO(mikecase): Add DeviceTempDirectory class and use that instead. + render_tests_device_output_dir = posixpath.join( + device.GetExternalStoragePath(), + 'render_test_output_dir') + flags_to_add.append('--render-test-output-dir=%s' % + render_tests_device_output_dir) + + if flags_to_add or flags_to_remove: self._CreateFlagChangerIfNeeded(device) self._flag_changers[str(device)].PushFlags( - add=flags.add, remove=flags.remove) + add=flags_to_add, remove=flags_to_remove) try: device.RunShellCommand( @@ -348,7 +381,7 @@ ['log', '-p', 'i', '-t', _TAG, 'END %s' % test_name], check_return=True) duration_ms = time_ms() - start_ms - if flags: + if flags_to_add or flags_to_remove: self._flag_changers[str(device)].Restore() if test_timeout_scale: valgrind_tools.SetChromeTimeoutScale( @@ -364,8 +397,19 @@ if logcat_url: result.SetLink('logcat', logcat_url) + if _IsRenderTest(test): + # Render tests do not cause test failure by default. So we have to check + # to see if any failure images were generated even if the test does not + # fail. + try: + self._ProcessRenderTestResults( + device, render_tests_device_output_dir, results) + finally: + device.RemovePath(render_tests_device_output_dir, + recursive=True, force=True) + # Update the result name if the test used flags. - if flags: + if flags_to_add or flags_to_remove: for r in results: if r.GetName() == test_name: r.SetName(test_display_name) @@ -467,6 +511,97 @@ for result in results: result.SetLink('post_test_screenshot', link) + def _ProcessRenderTestResults( + self, device, render_tests_device_output_dir, results): + # Will archive test images if we are given a GS bucket to store the results + # in and are given a results file to output the links to. + if not bool(self._test_instance.gs_results_bucket): + return + + failure_images_device_dir = posixpath.join( + render_tests_device_output_dir, 'failures') + + if not device.FileExists(failure_images_device_dir): + return + + render_tests_bucket = ( + self._test_instance.gs_results_bucket + '/render_tests') + + diff_images_device_dir = posixpath.join( + render_tests_device_output_dir, 'diffs') + + golden_images_device_dir = posixpath.join( + render_tests_device_output_dir, 'goldens') + + with tempfile_ext.NamedTemporaryDirectory() as temp_dir: + device.PullFile(failure_images_device_dir, temp_dir) + + if device.FileExists(diff_images_device_dir): + device.PullFile(diff_images_device_dir, temp_dir) + else: + logging.error('Diff images not found on device.') + + if device.FileExists(golden_images_device_dir): + device.PullFile(golden_images_device_dir, temp_dir) + else: + logging.error('Golden images not found on device.') + + for failure_filename in os.listdir(os.path.join(temp_dir, 'failures')): + + m = RE_RENDER_IMAGE_NAME.match(failure_filename) + if not m: + logging.warning('Unexpected file in render test failures: %s', + failure_filename) + continue + + failure_filepath = os.path.join(temp_dir, 'failures', failure_filename) + failure_link = google_storage_helper.upload( + google_storage_helper.unique_name( + 'failure_%s' % failure_filename, device=device), + failure_filepath, + bucket=render_tests_bucket) + + golden_filepath = os.path.join(temp_dir, 'goldens', failure_filename) + if os.path.exists(golden_filepath): + golden_link = google_storage_helper.upload( + google_storage_helper.unique_name( + 'golden_%s' % failure_filename, device=device), + golden_filepath, + bucket=render_tests_bucket) + else: + golden_link = '' + + diff_filepath = os.path.join(temp_dir, 'diffs', failure_filename) + if os.path.exists(diff_filepath): + diff_link = google_storage_helper.upload( + google_storage_helper.unique_name( + 'diff_%s' % failure_filename, device=device), + diff_filepath, + bucket=render_tests_bucket) + else: + diff_link = '' + + with tempfile.NamedTemporaryFile(suffix='.html') as temp_html: + jinja2_env = jinja2.Environment( + loader=jinja2.FileSystemLoader(_JINJA_TEMPLATE_DIR), + trim_blocks=True) + template = jinja2_env.get_template(_JINJA_TEMPLATE_FILENAME) + # pylint: disable=no-member + processed_template_output = template.render( + failure_link=failure_link, + golden_link=golden_link, + diff_link=diff_link) + + temp_html.write(processed_template_output) + temp_html.flush() + html_results_link = google_storage_helper.upload( + google_storage_helper.unique_name('render_html', device=device), + temp_html.name, + bucket=render_tests_bucket, + content_type='text/html') + for result in results: + result.SetLink(failure_filename, html_results_link) + #override def _ShouldRetry(self, test): if 'RetryOnFailure' in test.get('annotations', {}): @@ -502,3 +637,10 @@ timeout *= cls._GetTimeoutScaleFromAnnotations(annotations) return timeout + +def _IsRenderTest(test): + """Determines if a test or list of tests has a RenderTest amongst them.""" + if not isinstance(test, list): + test = [test] + return any([RENDER_TEST_FEATURE_ANNOTATION in t['annotations'].get( + FEATURE_ANNOTATION, ()) for t in test])
diff --git a/build/android/pylib/results/presentation/template/table.html b/build/android/pylib/results/presentation/template/table.html index 5c2a266..57c9960 100644 --- a/build/android/pylib/results/presentation/template/table.html +++ b/build/android/pylib/results/presentation/template/table.html
@@ -25,6 +25,9 @@ {%- elif cell.cell_type == 'links' -%} {% for link in cell.links %} <a href="{{link.href}}" target="{{link.target}}">{{link.data}}</a> + {% if not loop.last -%} + <br /> + {%- endif %} {% endfor %} {%- elif cell.cell_type == 'action' -%} <a onclick="{{cell.action}}">{{cell.data}}</a>
diff --git a/build/android/pylib/results/presentation/test_results_presentation.py b/build/android/pylib/results/presentation/test_results_presentation.py index e82b16e..7c67f96 100755 --- a/build/android/pylib/results/presentation/test_results_presentation.py +++ b/build/android/pylib/results/presentation/test_results_presentation.py
@@ -97,7 +97,15 @@ } -def logs_cell(result): +def flakiness_dashbord_link(test_name, suite_name): + url_args = urllib.urlencode([ + ('testType', suite_name), + ('tests', test_name)]) + return ('https://test-results.appspot.com/' + 'dashboards/flakiness_dashboard.html#%s' % url_args) + + +def logs_cell(result, test_name, suite_name): """Formats result logs data for processing in jinja template.""" link_list = [] for name, href in result.get('links', {}).iteritems(): @@ -105,7 +113,10 @@ data=name, href=href, target=LinkTarget.NEW_TAB)) - + link_list.append(link( + data='flakiness', + href=flakiness_dashbord_link(test_name, suite_name), + target=LinkTarget.NEW_TAB)) if link_list: return links_cell(link_list) else: @@ -128,7 +139,7 @@ return status -def create_test_table(results_dict, cs_base_url): +def create_test_table(results_dict, cs_base_url, suite_name): """Format test data for injecting into HTML table.""" header_row = [ @@ -151,18 +162,18 @@ data=test_name)], rowspan=len(test_results), html_class='left %s' % test_name - )] # test_name + )] # test_name else: test_run = [] test_run.extend([ cell(data=result['status'] or 'UNKNOWN', - # status + # status html_class=('center %s' % status_class(result['status']))), - cell(data=result['elapsed_time_ms']), # elapsed_time_ms - logs_cell(result), # logs - pre_cell(data=result['output_snippet'], # output_snippet + cell(data=result['elapsed_time_ms']), # elapsed_time_ms + logs_cell(result, test_name, suite_name), # logs + pre_cell(data=result['output_snippet'], # output_snippet html_class='left'), ]) test_runs.append(test_run) @@ -266,7 +277,8 @@ builder_name, build_number): """Convert list of test results into html format.""" - test_rows_header, test_rows = create_test_table(results_dict, cs_base_url) + test_rows_header, test_rows = create_test_table(results_dict, cs_base_url, + test_name) suite_rows_header, suite_rows, suite_row_footer = create_suite_table( results_dict)
diff --git a/build/android/render_tests/process_render_test_results.py b/build/android/render_tests/process_render_test_results.py deleted file mode 100755 index 9ab0d1b..0000000 --- a/build/android/render_tests/process_render_test_results.py +++ /dev/null
@@ -1,214 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2016 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import argparse -import collections -import logging -import os -import posixpath -import re -import shutil -import sys -import tempfile -import zipfile - -sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir)) -import devil_chromium -from devil.android import device_utils -from devil.utils import cmd_helper -from pylib.constants import host_paths - -sys.path.append(os.path.join(host_paths.DIR_SOURCE_ROOT, 'build')) -import find_depot_tools # pylint: disable=import-error - -sys.path.append(os.path.join(host_paths.DIR_SOURCE_ROOT, 'third_party')) -import jinja2 # pylint: disable=import-error - -try: - from PIL import Image # pylint: disable=import-error - from PIL import ImageChops # pylint: disable=import-error - can_compute_diffs = True -except ImportError: - can_compute_diffs = False - logging.exception('Error importing PIL library. Image diffs will not be ' - 'displayed properly unless PIL module is installed.') - -_RE_IMAGE_NAME = re.compile( - r'(?P<test_class>\w+)\.' - r'(?P<description>\w+)\.' - r'(?P<device_model>\w+)\.' - r'(?P<orientation>port|land)\.png') - -_RENDER_TEST_BASE_URL = 'https://storage.googleapis.com/chromium-render-tests/' -_RENDER_TEST_BUCKET = 'gs://chromium-render-tests/' - -_JINJA_TEMPLATE_DIR = os.path.dirname(os.path.abspath(__file__)) -_JINJA_TEMPLATE_FILENAME = 'render_webpage.html.jinja2' - - -def _UploadFiles(upload_dir, files): - """Upload files to the render tests GS bucket.""" - if files: - google_storage_upload_dir = os.path.join(_RENDER_TEST_BUCKET, upload_dir) - cmd = [os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gsutil.py'), - '-m', 'cp'] - cmd.extend(files) - cmd.append(google_storage_upload_dir) - cmd_helper.RunCmd(cmd) - - -def _GoogleStorageUrl(upload_dir, filename): - return os.path.join( - _RENDER_TEST_BASE_URL, upload_dir, os.path.basename(filename)) - - -def _ComputeImageDiff(failure_image, golden_image): - """Compute mask showing which pixels are different between two images.""" - return (ImageChops.difference(failure_image, golden_image) - .convert('L') - .point(lambda i: 255 if i else 0)) - - -def ProcessRenderTestResults(devices, render_results_dir, - upload_dir, html_file): - """Grabs render results from device and generates webpage displaying results. - - Args: - devices: List of DeviceUtils objects to grab results from. - render_results_path: Path where render test results are storage. - Will look for failures render test results on the device in - /sdcard/chromium_tests_root/<render_results_path>/failures/ - and will look for golden images at Chromium src/<render_results_path>/. - upload_dir: Directory to upload the render test results to. - html_file: File to write the test results to. - """ - results_dict = collections.defaultdict(lambda: collections.defaultdict(list)) - - diff_upload_dir = os.path.join(upload_dir, 'diffs') - failure_upload_dir = os.path.join(upload_dir, 'failures') - golden_upload_dir = os.path.join(upload_dir, 'goldens') - - diff_images = [] - failure_images = [] - golden_images = [] - - temp_dir = None - try: - temp_dir = tempfile.mkdtemp() - - for device in devices: - failures_device_dir = posixpath.join( - device.GetExternalStoragePath(), - 'chromium_tests_root', render_results_dir, 'failures') - device.PullFile(failures_device_dir, temp_dir) - - for failure_filename in os.listdir(os.path.join(temp_dir, 'failures')): - m = _RE_IMAGE_NAME.match(failure_filename) - if not m: - logging.warning( - 'Unexpected file in render test failures, %s', failure_filename) - continue - failure_file = os.path.join(temp_dir, 'failures', failure_filename) - - # Check to make sure we have golden image for this failure. - golden_file = os.path.join( - host_paths.DIR_SOURCE_ROOT, render_results_dir, failure_filename) - if not os.path.exists(golden_file): - logging.error('Cannot find golden image for %s', failure_filename) - continue - - # Compute image diff between failure and golden. - if can_compute_diffs: - diff_image = _ComputeImageDiff( - Image.open(failure_file), Image.open(golden_file)) - diff_filename = '_diff'.join( - os.path.splitext(os.path.basename(failure_file))) - diff_file = os.path.join(temp_dir, diff_filename) - diff_image.save(diff_file) - diff_images.append(diff_file) - - failure_images.append(failure_file) - golden_images.append(golden_file) - - test_class = m.group('test_class') - device_model = m.group('device_model') - - results_entry = { - 'description': m.group('description'), - 'orientation': m.group('orientation'), - 'failure_image': _GoogleStorageUrl(failure_upload_dir, failure_file), - 'golden_image': _GoogleStorageUrl(golden_upload_dir, golden_file), - } - if can_compute_diffs: - results_entry.update( - {'diff_image': _GoogleStorageUrl(diff_upload_dir, diff_file)}) - results_dict[test_class][device_model].append(results_entry) - - if can_compute_diffs: - _UploadFiles(diff_upload_dir, diff_images) - _UploadFiles(failure_upload_dir, failure_images) - _UploadFiles(golden_upload_dir, golden_images) - - if failure_images: - failures_zipfile = os.path.join(temp_dir, 'failures.zip') - with zipfile.ZipFile(failures_zipfile, mode='w') as zf: - for failure_file in failure_images: - zf.write(failure_file, os.path.join( - render_results_dir, os.path.basename(failure_file))) - failure_zip_url = _GoogleStorageUrl(upload_dir, failures_zipfile) - _UploadFiles(upload_dir, [failures_zipfile]) - else: - failure_zip_url = None - - jinja2_env = jinja2.Environment( - loader=jinja2.FileSystemLoader(_JINJA_TEMPLATE_DIR), - trim_blocks=True) - template = jinja2_env.get_template(_JINJA_TEMPLATE_FILENAME) - # pylint: disable=no-member - processed_template_output = template.render( - full_results=dict(results_dict), - failure_zip_url=failure_zip_url, show_diffs=can_compute_diffs) - # pylint: enable=no-member - with open(html_file, 'wb') as f: - f.write(processed_template_output) - finally: - if temp_dir: - shutil.rmtree(temp_dir) - - -def main(): - parser = argparse.ArgumentParser() - - parser.add_argument('--render-results-dir', - required=True, - help='Path on device to look for render test images') - parser.add_argument('--output-html-file', - required=True, - help='File to output the results webpage.') - parser.add_argument('-d', '--device', dest='devices', action='append', - default=[], - help='Device to look for render test results on. ' - 'Default is to look on all connected devices.') - parser.add_argument('--adb-path', type=os.path.abspath, - help='Absolute path to the adb binary to use.') - parser.add_argument('--buildername', type=str, required=True, - help='Bot buildername. Used to generate path to upload ' - 'render test results') - parser.add_argument('--build-number', type=str, required=True, - help='Bot build number. Used to generate path to upload ' - 'render test results') - - args = parser.parse_args() - devil_chromium.Initialize(adb_path=args.adb_path) - devices = device_utils.DeviceUtils.HealthyDevices(device_arg=args.devices) - - upload_dir = os.path.join(args.buildername, args.build_number) - ProcessRenderTestResults( - devices, args.render_results_dir, upload_dir, args.output_html_file) - - -if __name__ == '__main__': - sys.exit(main())
diff --git a/build/android/render_tests/render_webpage.html.jinja2 b/build/android/render_tests/render_webpage.html.jinja2 deleted file mode 100644 index b5ea6039..0000000 --- a/build/android/render_tests/render_webpage.html.jinja2 +++ /dev/null
@@ -1,84 +0,0 @@ -<!-- - * Copyright 2016 The Chromium Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. ---> -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> - <link rel="stylesheet" href="https://code.getmdl.io/1.2.1/material.blue-indigo.min.css"> - <script defer src="https://code.getmdl.io/1.2.1/material.min.js"></script> - - <style> - div.text-element { - text-align: center; - } - body { - background-color: #efefef; - } - </style> - </head> - - <body> - {% if failure_zip_url is not none %} - <a href="{{ failure_zip_url }}"> - <div class="mdl-color--primary" width="100%"> - <h3>Download Image Zip</h3> - </div> - </a> - {% endif %} - - {% for test_class, device_results in full_results.iteritems() %} - <div class="mdl-color--primary" width="100%"> - <h3>{{ test_class }}</h3> - </div> - - <div class="mdl-tabs mdl-js-tabs mdl-js-ripple-effect"> - <div class="mdl-tabs__tab-bar"> - {% for device_model, _ in device_results.iteritems() %} - <a href="#{{ device_model }}-panel" class="mdl-tabs__tab">{{ device_model }}</a> - {% endfor %} - </div> - - {% for device_model, test_results in device_results.iteritems() %} - <div class="mdl-tabs__panel" id="{{ device_model }}-panel"> - - <div class="mdl-grid"> - <div class="mdl-cell mdl-cell--3-col text-element"><b>Description</b></div> - <div class="mdl-cell mdl-cell--3-col text-element"><b>Golden</b></div> - <div class="mdl-cell mdl-cell--3-col text-element"><b>Failure</b></div> - {% if show_diffs %} - <div class="mdl-cell mdl-cell--3-col text-element"><b>Diff</b></div> - {% endif %} - </div> - {% for result in test_results %} - <div class="mdl-grid"> - <div class="mdl-cell mdl-cell--3-col text-element"> - {{ result['description'] }} - </div> - <div class="mdl-cell mdl-cell--3-col"> - <a href="{{ result['golden_image'] }}"> - <img class="mdl-shadow--2dp" src="{{ result['golden_image'] }}" width="100%"> - </a> - </div> - <div class="mdl-cell mdl-cell--3-col mdl-shadow--2dp"> - <a href="{{ result['failure_image'] }}"> - <img src="{{ result['failure_image'] }}" width="100%"> - </a> - </div> - {% if show_diffs %} - <div class="mdl-cell mdl-cell--3-col mdl-shadow--2dp"> - <a href="{{ result['diff_image'] }}"> - <img src="{{ result['diff_image'] }}" width="100%"> - </a> - </div> - {% endif %} - </div> - {% endfor %} - </div> - {% endfor %} - </div> - {% endfor %} - </body> -</html>
diff --git a/build/android/test_runner.py b/build/android/test_runner.py index de297bb4..f9c2c4f 100755 --- a/build/android/test_runner.py +++ b/build/android/test_runner.py
@@ -84,12 +84,6 @@ type=os.path.realpath, help='The relative filepath to a file containing ' 'command-line flags to set on the device') - # TODO(jbudorick): This is deprecated. Remove once clients have switched - # to passing command-line flags directly. - parser.add_argument( - '-a', '--test-arguments', - dest='test_arguments', default='', - help=argparse.SUPPRESS) parser.set_defaults(allow_unknown=True) parser.set_defaults(command_line_flags=None) @@ -431,10 +425,6 @@ '--timeout-scale', type=float, help='Factor by which timeouts should be scaled.') - parser.add_argument( - '-w', '--wait_debugger', - action='store_true', dest='wait_for_debugger', - help='Wait for debugger.') # These arguments are suppressed from the help text because they should # only ever be specified by an intermediate script.
diff --git a/build/android/test_runner.pydeps b/build/android/test_runner.pydeps index 5bd361b..f8d45668 100644 --- a/build/android/test_runner.pydeps +++ b/build/android/test_runner.pydeps
@@ -114,6 +114,26 @@ ../../third_party/catapult/tracing/tracing_build/__init__.py ../../third_party/catapult/tracing/tracing_build/trace2html.py ../../third_party/catapult/tracing/tracing_project.py +../../third_party/jinja2/__init__.py +../../third_party/jinja2/_compat.py +../../third_party/jinja2/bccache.py +../../third_party/jinja2/compiler.py +../../third_party/jinja2/defaults.py +../../third_party/jinja2/environment.py +../../third_party/jinja2/exceptions.py +../../third_party/jinja2/filters.py +../../third_party/jinja2/lexer.py +../../third_party/jinja2/loaders.py +../../third_party/jinja2/nodes.py +../../third_party/jinja2/optimizer.py +../../third_party/jinja2/parser.py +../../third_party/jinja2/runtime.py +../../third_party/jinja2/tests.py +../../third_party/jinja2/utils.py +../../third_party/jinja2/visitor.py +../../third_party/markupsafe/__init__.py +../../third_party/markupsafe/_compat.py +../../third_party/markupsafe/_native.py ../../tools/swarming_client/libs/__init__.py ../../tools/swarming_client/libs/logdog/__init__.py ../../tools/swarming_client/libs/logdog/bootstrap.py
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index b05a8d74..fcf06ac 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -396,20 +396,13 @@ if (is_posix && (use_gold || (use_lld && !is_nacl)) && !using_sanitizer && !(is_android && use_order_profiling)) { - # TODO(crbug.com/576197) - gcc on x86 platforms + gold + icf=all - # doesn't currently work on non-chromeos platforms. - # Additionally, on Android x86 --icf=safe seems to cause issues as well. - # Additionally, on cast Android x86, --icf=all causes issues. - if (is_android && current_cpu == "x86") { - ldflags += [ "-Wl,--icf=none" ] - } else if ((is_clang && !is_android) || is_chromeos || - (current_cpu != "x86" && current_cpu != "x64")) { - # TODO(thakis): Remove `!is_android` above once our gold has been rolled - # with the fix for https://sourceware.org/bugzilla/show_bug.cgi?id=17704 - # merged. See also https://crbug.com/663886 + # TODO(thakis): Remove `!is_android` below once NDK gold has been rolled + # with the fix for https://sourceware.org/bugzilla/show_bug.cgi?id=17704 + # merged. See also https://crbug.com/663886 + # `linux_use_bundled_binutils` is to avoid breaking Linux distros which may + # still have a buggy gold. + if (!is_android && linux_use_bundled_binutils) { ldflags += [ "-Wl,--icf=all" ] - } else if (!is_android || is_clang) { - ldflags += [ "-Wl,--icf=safe" ] } }
diff --git a/cc/ipc/mojo_compositor_frame_sink.mojom b/cc/ipc/mojo_compositor_frame_sink.mojom index 1ad4ae1..7bb99322 100644 --- a/cc/ipc/mojo_compositor_frame_sink.mojom +++ b/cc/ipc/mojo_compositor_frame_sink.mojom
@@ -41,7 +41,7 @@ // Notify that the surface is no longer in use (and is okay to be evicted) so // that its resources gets returned in time. - EvictFrame(); + EvictCurrentSurface(); }; interface MojoCompositorFrameSinkClient {
diff --git a/cc/layers/effect_tree_layer_list_iterator_unittest.cc b/cc/layers/effect_tree_layer_list_iterator_unittest.cc index 8f8c8e6..71fc0fc2 100644 --- a/cc/layers/effect_tree_layer_list_iterator_unittest.cc +++ b/cc/layers/effect_tree_layer_list_iterator_unittest.cc
@@ -145,10 +145,10 @@ IterateFrontToBack(); EXPECT_COUNT(root_ptr, 5, -1, 4); - EXPECT_COUNT(first_ptr, -1, -1, 3); - EXPECT_COUNT(second_ptr, -1, -1, 2); - EXPECT_COUNT(third_ptr, -1, -1, 1); - EXPECT_COUNT(fourth_ptr, -1, -1, 0); + EXPECT_COUNT(first_ptr, 5, -1, 3); + EXPECT_COUNT(second_ptr, 5, -1, 2); + EXPECT_COUNT(third_ptr, 5, -1, 1); + EXPECT_COUNT(fourth_ptr, 5, -1, 0); } TEST_F(EffectTreeLayerListIteratorTest, ComplexTree) { @@ -190,14 +190,14 @@ IterateFrontToBack(); EXPECT_COUNT(root_ptr, 9, -1, 8); - EXPECT_COUNT(root1_ptr, -1, -1, 7); - EXPECT_COUNT(root2_ptr, -1, -1, 6); - EXPECT_COUNT(root21_ptr, -1, -1, 5); - EXPECT_COUNT(root22_ptr, -1, -1, 4); - EXPECT_COUNT(root221_ptr, -1, -1, 3); - EXPECT_COUNT(root23_ptr, -1, -1, 2); - EXPECT_COUNT(root231_ptr, -1, -1, 1); - EXPECT_COUNT(root3_ptr, -1, -1, 0); + EXPECT_COUNT(root1_ptr, 9, -1, 7); + EXPECT_COUNT(root2_ptr, 9, -1, 6); + EXPECT_COUNT(root21_ptr, 9, -1, 5); + EXPECT_COUNT(root22_ptr, 9, -1, 4); + EXPECT_COUNT(root221_ptr, 9, -1, 3); + EXPECT_COUNT(root23_ptr, 9, -1, 2); + EXPECT_COUNT(root231_ptr, 9, -1, 1); + EXPECT_COUNT(root3_ptr, 9, -1, 0); } TEST_F(EffectTreeLayerListIteratorTest, ComplexTreeMultiSurface) { @@ -243,14 +243,14 @@ IterateFrontToBack(); EXPECT_COUNT(root_ptr, 14, -1, 13); - EXPECT_COUNT(root1_ptr, -1, -1, 12); + EXPECT_COUNT(root1_ptr, 14, -1, 12); EXPECT_COUNT(root2_ptr, 10, 11, -1); - EXPECT_COUNT(root21_ptr, -1, -1, 9); + EXPECT_COUNT(root21_ptr, 10, 11, 9); EXPECT_COUNT(root22_ptr, 7, 8, 6); - EXPECT_COUNT(root221_ptr, -1, -1, 5); + EXPECT_COUNT(root221_ptr, 7, 8, 5); EXPECT_COUNT(root23_ptr, 3, 4, 2); - EXPECT_COUNT(root231_ptr, -1, -1, 1); - EXPECT_COUNT(root3_ptr, -1, -1, 0); + EXPECT_COUNT(root231_ptr, 3, 4, 1); + EXPECT_COUNT(root3_ptr, 14, -1, 0); } } // namespace
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc index c61a56ff..eba8543be 100644 --- a/cc/layers/render_surface_impl.cc +++ b/cc/layers/render_surface_impl.cc
@@ -162,10 +162,6 @@ } int RenderSurfaceImpl::EffectTreeIndex() const { - DCHECK_EQ( - effect_tree_index_, - layer_tree_impl_->property_trees() - ->effect_tree.FindNodeIndexFromOwningLayerId(stable_effect_id_)); return effect_tree_index_; }
diff --git a/cc/surfaces/compositor_frame_sink_support.cc b/cc/surfaces/compositor_frame_sink_support.cc index 8557895a..0fdb6c6 100644 --- a/cc/surfaces/compositor_frame_sink_support.cc +++ b/cc/surfaces/compositor_frame_sink_support.cc
@@ -45,7 +45,7 @@ reference_tracker_.current_surface_id().is_valid()) RemoveTopLevelRootReference(reference_tracker_.current_surface_id()); - EvictFrame(); + EvictCurrentSurface(); surface_manager_->UnregisterFrameSinkManagerClient(frame_sink_id_); if (handles_frame_sink_id_invalidation_) surface_manager_->InvalidateFrameSinkId(frame_sink_id_); @@ -74,7 +74,7 @@ UpdateNeedsBeginFramesInternal(); } -void CompositorFrameSinkSupport::EvictFrame() { +void CompositorFrameSinkSupport::EvictCurrentSurface() { if (!current_surface_) return; DestroyCurrentSurface();
diff --git a/cc/surfaces/compositor_frame_sink_support.h b/cc/surfaces/compositor_frame_sink_support.h index ed95e51a..5eda4c0f 100644 --- a/cc/surfaces/compositor_frame_sink_support.h +++ b/cc/surfaces/compositor_frame_sink_support.h
@@ -57,7 +57,7 @@ // FrameSinkManagerClient implementation. void SetBeginFrameSource(BeginFrameSource* begin_frame_source) override; - void EvictFrame(); + void EvictCurrentSurface(); void SetNeedsBeginFrame(bool needs_begin_frame); void BeginFrameDidNotSwap(const BeginFrameAck& ack); void SubmitCompositorFrame(const LocalSurfaceId& local_surface_id,
diff --git a/cc/surfaces/compositor_frame_sink_support_unittest.cc b/cc/surfaces/compositor_frame_sink_support_unittest.cc index bdaa1ec..fe1156e 100644 --- a/cc/surfaces/compositor_frame_sink_support_unittest.cc +++ b/cc/surfaces/compositor_frame_sink_support_unittest.cc
@@ -108,7 +108,7 @@ } ~CompositorFrameSinkSupportTest() override { manager_.RemoveObserver(this); - support_->EvictFrame(); + support_->EvictCurrentSurface(); } const SurfaceId& last_created_surface_id() const { @@ -506,11 +506,11 @@ support->SubmitCompositorFrame(new_id, MakeCompositorFrame()); })) .WillRepeatedly(testing::Return()); - support->EvictFrame(); + support->EvictCurrentSurface(); } -// Tests doing an EvictFrame before shutting down the factory. -TEST_F(CompositorFrameSinkSupportTest, EvictFrame) { +// Tests doing an EvictCurrentSurface before shutting down the factory. +TEST_F(CompositorFrameSinkSupportTest, EvictCurrentSurface) { MockCompositorFrameSinkSupportClient mock_client; std::unique_ptr<CompositorFrameSinkSupport> support = CompositorFrameSinkSupport::Create( @@ -532,12 +532,13 @@ EXPECT_TRUE(manager_.GetSurfaceForId(id)); EXPECT_CALL(mock_client, DidReceiveCompositorFrameAck(returned_resources)) .Times(1); - support->EvictFrame(); + support->EvictCurrentSurface(); EXPECT_FALSE(manager_.GetSurfaceForId(id)); } -// Tests doing an EvictSurface which has unregistered dependency. -TEST_F(CompositorFrameSinkSupportTest, EvictSurfaceDependencyUnRegistered) { +// Tests doing an EvictCurrentSurface which has unregistered dependency. +TEST_F(CompositorFrameSinkSupportTest, + EvictCurrentSurfaceDependencyUnRegistered) { MockCompositorFrameSinkSupportClient mock_client; std::unique_ptr<CompositorFrameSinkSupport> support = CompositorFrameSinkSupport::Create( @@ -564,12 +565,13 @@ EXPECT_TRUE(manager_.GetSurfaceForId(surface_id)); EXPECT_CALL(mock_client, DidReceiveCompositorFrameAck(returned_resource)) .Times(1); - support->EvictFrame(); + support->EvictCurrentSurface(); EXPECT_FALSE(manager_.GetSurfaceForId(surface_id)); } -// Tests doing an EvictSurface which has registered dependency. -TEST_F(CompositorFrameSinkSupportTest, EvictSurfaceDependencyRegistered) { +// Tests doing an EvictCurrentSurface which has registered dependency. +TEST_F(CompositorFrameSinkSupportTest, + EvictCurrentSurfaceDependencyRegistered) { MockCompositorFrameSinkSupportClient mock_client; std::unique_ptr<CompositorFrameSinkSupport> support = CompositorFrameSinkSupport::Create( @@ -596,7 +598,7 @@ ReturnedResourceArray returned_resources; EXPECT_TRUE(manager_.GetSurfaceForId(surface_id)); - support->EvictFrame(); + support->EvictCurrentSurface(); EXPECT_TRUE(manager_.GetSurfaceForId(surface_id)); EXPECT_EQ(0u, execute_count); @@ -619,7 +621,7 @@ // Check that waiting before the sequence is satisfied works. manager_.GetSurfaceForId(id2)->AddDestructionDependency( SurfaceSequence(kYetAnotherArbitraryFrameSinkId, 4)); - support2->EvictFrame(); + support2->EvictCurrentSurface(); DCHECK(manager_.GetSurfaceForId(id2)); manager_.SatisfySequence(SurfaceSequence(kYetAnotherArbitraryFrameSinkId, 4)); @@ -631,7 +633,7 @@ DCHECK(manager_.GetSurfaceForId(id2)); manager_.GetSurfaceForId(id2)->AddDestructionDependency( SurfaceSequence(kAnotherArbitraryFrameSinkId, 6)); - support2->EvictFrame(); + support2->EvictCurrentSurface(); DCHECK(!manager_.GetSurfaceForId(id2)); } @@ -648,7 +650,7 @@ manager_.GetSurfaceForId(id)->AddDestructionDependency( SurfaceSequence(frame_sink_id, 4)); - support_->EvictFrame(); + support_->EvictCurrentSurface(); // Verify the dependency has prevented the surface from getting destroyed. EXPECT_TRUE(manager_.GetSurfaceForId(id)); @@ -680,7 +682,7 @@ } manager_.GetSurfaceForId(id2)->AddDestructionDependency( SurfaceSequence(kAnotherArbitraryFrameSinkId, 4)); - support2->EvictFrame(); + support2->EvictCurrentSurface(); // Give local_surface_id_ a frame that references id2. { std::unique_ptr<RenderPass> render_pass(RenderPass::Create()); @@ -689,7 +691,7 @@ frame.metadata.referenced_surfaces.push_back(id2); support_->SubmitCompositorFrame(local_surface_id_, std::move(frame)); } - support_->EvictFrame(); + support_->EvictCurrentSurface(); EXPECT_TRUE(manager_.GetSurfaceForId(id2)); // local_surface_id_ should be retained by reference from id2. EXPECT_TRUE(manager_.GetSurfaceForId( @@ -753,7 +755,7 @@ EXPECT_FALSE(called2); EXPECT_FALSE(called3); - support_->EvictFrame(); + support_->EvictCurrentSurface(); local_surface_id_ = LocalSurfaceId(); EXPECT_TRUE(called1); EXPECT_TRUE(called2);
diff --git a/cc/surfaces/display_unittest.cc b/cc/surfaces/display_unittest.cc index 1c96a0d..a7526b00 100644 --- a/cc/surfaces/display_unittest.cc +++ b/cc/surfaces/display_unittest.cc
@@ -92,7 +92,7 @@ true /* needs_sync_points */)), task_runner_(new base::NullTaskRunner) {} - ~DisplayTest() override { support_->EvictFrame(); } + ~DisplayTest() override { support_->EvictCurrentSurface(); } void SetUpDisplay(const RendererSettings& settings, std::unique_ptr<TestWebGraphicsContext3D> context) {
diff --git a/cc/surfaces/surface_aggregator_perftest.cc b/cc/surfaces/surface_aggregator_perftest.cc index e0a277b..d0c2ed4f 100644 --- a/cc/surfaces/surface_aggregator_perftest.cc +++ b/cc/surfaces/surface_aggregator_perftest.cc
@@ -146,8 +146,8 @@ perf_test::PrintResult("aggregator_speed", "", name, timer_.LapsPerSecond(), "runs/s", true); for (int i = 0; i < num_surfaces; i++) - child_supports[i]->EvictFrame(); - root_support->EvictFrame(); + child_supports[i]->EvictCurrentSurface(); + root_support->EvictCurrentSurface(); } protected:
diff --git a/cc/surfaces/surface_aggregator_unittest.cc b/cc/surfaces/surface_aggregator_unittest.cc index 3892756..7ab54787 100644 --- a/cc/surfaces/surface_aggregator_unittest.cc +++ b/cc/surfaces/surface_aggregator_unittest.cc
@@ -73,7 +73,7 @@ SurfaceAggregatorTest() : SurfaceAggregatorTest(false) {} void TearDown() override { - support_->EvictFrame(); + support_->EvictCurrentSurface(); testing::Test::TearDown(); } @@ -106,7 +106,7 @@ } void TearDown() override { - child_support_->EvictFrame(); + child_support_->EvictCurrentSurface(); SurfaceAggregatorTest::TearDown(); } @@ -230,7 +230,7 @@ ASSERT_EQ(1u, shared_quad_state_list2.size()); EXPECT_EQ(.5f, shared_quad_state_list2.ElementAt(0)->opacity); - embedded_support->EvictFrame(); + embedded_support->EvictCurrentSurface(); } TEST_F(SurfaceAggregatorValidSurfaceTest, MultiPassSimpleFrame) { @@ -340,7 +340,7 @@ AggregateAndVerify( expected_passes, arraysize(expected_passes), ids, arraysize(ids)); - embedded_support->EvictFrame(); + embedded_support->EvictCurrentSurface(); } // This test verifies that in the absence of a primary Surface, @@ -415,8 +415,8 @@ AggregateAndVerify(expected_passes2, arraysize(expected_passes2), ids, arraysize(ids)); - primary_child_support->EvictFrame(); - fallback_child_support->EvictFrame(); + primary_child_support->EvictCurrentSurface(); + fallback_child_support->EvictCurrentSurface(); } // This test verifies that in the presence of both primary Surface and fallback @@ -480,8 +480,8 @@ AggregateAndVerify(expected_passes1, arraysize(expected_passes1), ids, arraysize(ids)); - primary_child_support->EvictFrame(); - fallback_child_support->EvictFrame(); + primary_child_support->EvictCurrentSurface(); + fallback_child_support->EvictCurrentSurface(); } TEST_F(SurfaceAggregatorValidSurfaceTest, CopyRequest) { @@ -539,7 +539,7 @@ aggregator_.previous_contained_surfaces().end()); } - embedded_support->EvictFrame(); + embedded_support->EvictCurrentSurface(); } // Root surface may contain copy requests. @@ -620,7 +620,7 @@ DCHECK(original_pass_list[0]->copy_requests.empty()); DCHECK(original_pass_list[1]->copy_requests.empty()); - embedded_support->EvictFrame(); + embedded_support->EvictCurrentSurface(); } TEST_F(SurfaceAggregatorValidSurfaceTest, UnreferencedSurface) { @@ -717,8 +717,8 @@ aggregator_.previous_contained_surfaces().end()); } - embedded_support->EvictFrame(); - parent_support->EvictFrame(); + embedded_support->EvictCurrentSurface(); + parent_support->EvictCurrentSurface(); } // This tests referencing a surface that has multiple render passes. @@ -1201,9 +1201,9 @@ << iter.index(); } - grandchild_support->EvictFrame(); - child_one_support->EvictFrame(); - child_two_support->EvictFrame(); + grandchild_support->EvictCurrentSurface(); + child_one_support->EvictCurrentSurface(); + child_two_support->EvictCurrentSurface(); } // This tests that when aggregating a frame with multiple render passes that we @@ -1391,7 +1391,7 @@ ->shared_quad_state_list.ElementAt(1) ->clip_rect.ToString()); - middle_support->EvictFrame(); + middle_support->EvictCurrentSurface(); } // Tests that damage rects are aggregated correctly when surfaces change. @@ -1569,7 +1569,7 @@ gfx::Rect(SurfaceSize()))); } - parent_support->EvictFrame(); + parent_support->EvictCurrentSurface(); } // Check that damage is correctly calculated for surfaces. @@ -2029,7 +2029,7 @@ EXPECT_THAT(returned_ids, testing::WhenSorted(testing::ElementsAreArray(ids))); - support->EvictFrame(); + support->EvictCurrentSurface(); } TEST_F(SurfaceAggregatorWithResourcesTest, TakeInvalidResources) { @@ -2063,7 +2063,7 @@ ASSERT_EQ(1u, client.returned_resources().size()); EXPECT_EQ(11u, client.returned_resources()[0].id); - support->EvictFrame(); + support->EvictCurrentSurface(); } TEST_F(SurfaceAggregatorWithResourcesTest, TwoSurfaces) { @@ -2109,8 +2109,8 @@ testing::WhenSorted(testing::ElementsAreArray(ids))); EXPECT_EQ(3u, resource_provider_->num_resources()); - support1->EvictFrame(); - support2->EvictFrame(); + support1->EvictCurrentSurface(); + support2->EvictCurrentSurface(); } // Ensure that aggregator completely ignores Surfaces that reference invalid @@ -2170,9 +2170,9 @@ EXPECT_EQ(3u, pass_list->back()->shared_quad_state_list.size()); EXPECT_EQ(9u, pass_list->back()->quad_list.size()); - root_support->EvictFrame(); - middle_support->EvictFrame(); - child_support->EvictFrame(); + root_support->EvictCurrentSurface(); + middle_support->EvictCurrentSurface(); + child_support->EvictCurrentSurface(); } TEST_F(SurfaceAggregatorWithResourcesTest, SecureOutputTexture) { @@ -2241,8 +2241,8 @@ // Output is insecure, so texture should be drawn. EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material); - support1->EvictFrame(); - support2->EvictFrame(); + support1->EvictCurrentSurface(); + support2->EvictCurrentSurface(); } // Ensure that the render passes have correct color spaces.
diff --git a/cc/surfaces/surface_hittest_unittest.cc b/cc/surfaces/surface_hittest_unittest.cc index 9a3c29f..4e406e3 100644 --- a/cc/surfaces/surface_hittest_unittest.cc +++ b/cc/surfaces/surface_hittest_unittest.cc
@@ -104,7 +104,7 @@ root_surface_id, gfx::Point(100, 100), &transform)); } - root_support->EvictFrame(); + root_support->EvictCurrentSurface(); } TEST(SurfaceHittestTest, Hittest_SingleSurface) { @@ -139,7 +139,7 @@ RunTests(nullptr, &manager, tests, arraysize(tests)); - root_support->EvictFrame(); + root_support->EvictCurrentSurface(); } TEST(SurfaceHittestTest, Hittest_ChildSurface) { @@ -279,8 +279,8 @@ EXPECT_EQ(gfx::Point(25, 25), point_in_target_space); } - root_support->EvictFrame(); - child_support->EvictFrame(); + root_support->EvictCurrentSurface(); + child_support->EvictCurrentSurface(); } // This test verifies that hit testing will progress to the next quad if it @@ -392,8 +392,8 @@ RunTests(nullptr, &manager, tests, arraysize(tests)); - root_support->EvictFrame(); - child_support->EvictFrame(); + root_support->EvictCurrentSurface(); + child_support->EvictCurrentSurface(); } TEST(SurfaceHittestTest, Hittest_RenderPassDrawQuad) { @@ -496,7 +496,7 @@ RunTests(nullptr, &manager, tests, arraysize(tests)); - support->EvictFrame(); + support->EvictCurrentSurface(); } TEST(SurfaceHittestTest, Hittest_SingleSurface_WithInsetsDelegate) { @@ -634,8 +634,8 @@ EXPECT_EQ(0, accept_delegate.reject_target_overrides()); EXPECT_EQ(2, accept_delegate.accept_target_overrides()); - root_support->EvictFrame(); - child_support->EvictFrame(); + root_support->EvictCurrentSurface(); + child_support->EvictCurrentSurface(); } } // namespace cc
diff --git a/cc/surfaces/surface_manager_ref_unittest.cc b/cc/surfaces/surface_manager_ref_unittest.cc index a8969ac..e96b795 100644 --- a/cc/surfaces/surface_manager_ref_unittest.cc +++ b/cc/surfaces/surface_manager_ref_unittest.cc
@@ -48,7 +48,8 @@ // Destroy Surface with |surface_id|. void DestroySurface(const SurfaceId& surface_id) { - GetCompositorFrameSinkSupport(surface_id.frame_sink_id()).EvictFrame(); + GetCompositorFrameSinkSupport(surface_id.frame_sink_id()) + .EvictCurrentSurface(); } CompositorFrameSinkSupport& GetCompositorFrameSinkSupport( @@ -111,7 +112,7 @@ } void TearDown() override { for (auto& support : supports_) - support.second->EvictFrame(); + support.second->EvictCurrentSurface(); supports_.clear(); manager_.reset(); }
diff --git a/cc/surfaces/surface_synchronization_unittest.cc b/cc/surfaces/surface_synchronization_unittest.cc index 5fa37ccf..473e587 100644 --- a/cc/surfaces/surface_synchronization_unittest.cc +++ b/cc/surfaces/surface_synchronization_unittest.cc
@@ -645,8 +645,8 @@ UnorderedElementsAre(child_id2)); // Evict child_support1's current Surface. - // TODO(fsamuel): EvictFrame => EvictCurrentSurface. - child_support1().EvictFrame(); + // TODO(fsamuel): EvictCurrentSurface => EvictCurrentSurface. + child_support1().EvictCurrentSurface(); // The parent Surface should immediately activate. EXPECT_TRUE(parent_surface()->HasActiveFrame()); @@ -1046,7 +1046,7 @@ // Attempt to destroy the child surface. The surface must still exist since // the parent needs it but it will be marked as destroyed. - child_support1().EvictFrame(); + child_support1().EvictCurrentSurface(); surface = surface_manager().GetSurfaceForId(child_id); EXPECT_NE(nullptr, surface); EXPECT_TRUE(surface->destroyed()); @@ -1084,7 +1084,7 @@ MakeCompositorFrame()); // Destroy the surface. - child_support1().EvictFrame(); + child_support1().EvictCurrentSurface(); EXPECT_EQ(nullptr, surface_manager().GetSurfaceForId(child_id)); // Submit another frame with the same local surface id. This should work fine
diff --git a/cc/surfaces/surface_unittest.cc b/cc/surfaces/surface_unittest.cc index 3ed47c6..c63c0b03 100644 --- a/cc/surfaces/surface_unittest.cc +++ b/cc/surfaces/surface_unittest.cc
@@ -35,7 +35,7 @@ SurfaceId surface_id(kArbitraryFrameSinkId, local_surface_id); support->SubmitCompositorFrame(local_surface_id, test::MakeCompositorFrame()); EXPECT_TRUE(manager.GetSurfaceForId(surface_id)); - support->EvictFrame(); + support->EvictCurrentSurface(); EXPECT_EQ(NULL, manager.GetSurfaceForId(surface_id)); } @@ -106,7 +106,7 @@ copy_requests.find(last_pass_id)->second->SendEmptyResult(); EXPECT_TRUE(copy_called); - support->EvictFrame(); + support->EvictCurrentSurface(); } } // namespace
diff --git a/cc/surfaces/surfaces_pixeltest.cc b/cc/surfaces/surfaces_pixeltest.cc index 36f1ba91..2917c086 100644 --- a/cc/surfaces/surfaces_pixeltest.cc +++ b/cc/surfaces/surfaces_pixeltest.cc
@@ -40,7 +40,7 @@ kIsRoot, kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints)) {} - ~SurfacesPixelTest() override { support_->EvictFrame(); } + ~SurfacesPixelTest() override { support_->EvictCurrentSurface(); } protected: SurfaceManager manager_; @@ -182,7 +182,7 @@ base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")), pixel_comparator)); - child_support->EvictFrame(); + child_support->EvictCurrentSurface(); } // Tests a surface quad that has a non-identity transform into its pass. @@ -324,8 +324,8 @@ base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), pixel_comparator)); - left_support->EvictFrame(); - right_support->EvictFrame(); + left_support->EvictCurrentSurface(); + right_support->EvictCurrentSurface(); } } // namespace
diff --git a/cc/test/layer_test_common.cc b/cc/test/layer_test_common.cc index b741dc0..d023a8a 100644 --- a/cc/test/layer_test_common.cc +++ b/cc/test/layer_test_common.cc
@@ -35,20 +35,12 @@ EffectTree& effect_tree = layer_impl->layer_tree_impl()->property_trees()->effect_tree; - EffectNode* effect_node = effect_tree.Node(layer_impl->effect_tree_index()); - if (effect_node->owning_layer_id == layer_impl->id()) - return effect_tree.GetRenderSurface(layer_impl->effect_tree_index()); - return nullptr; -} + if (RenderSurfaceImpl* surface = + effect_tree.GetRenderSurface(layer_impl->effect_tree_index())) + return surface; -const RenderSurfaceImpl* GetRenderSurface(const LayerImpl* layer_impl) { - EffectTree& effect_tree = - layer_impl->layer_tree_impl()->property_trees()->effect_tree; - - EffectNode* effect_node = effect_tree.Node(layer_impl->effect_tree_index()); - if (effect_node->owning_layer_id == layer_impl->id()) - return effect_tree.GetRenderSurface(layer_impl->effect_tree_index()); - return nullptr; + return effect_tree.GetRenderSurface( + effect_tree.Node(layer_impl->effect_tree_index())->target_id); } static bool CanRectFBeSafelyRoundedToRect(const gfx::RectF& r) {
diff --git a/cc/test/layer_test_common.h b/cc/test/layer_test_common.h index 67e9d4bb..3d3bd104 100644 --- a/cc/test/layer_test_common.h +++ b/cc/test/layer_test_common.h
@@ -41,8 +41,8 @@ class RenderSurfaceImpl; class ResourceProvider; +// Returns the RenderSurfaceImpl into which the given layer draws. RenderSurfaceImpl* GetRenderSurface(LayerImpl* layer_impl); -const RenderSurfaceImpl* GetRenderSurface(const LayerImpl* layer_impl); class LayerTestCommon { public:
diff --git a/cc/test/layer_tree_json_parser_unittest.cc b/cc/test/layer_tree_json_parser_unittest.cc index 9b0477a..a3ade579 100644 --- a/cc/test/layer_tree_json_parser_unittest.cc +++ b/cc/test/layer_tree_json_parser_unittest.cc
@@ -40,6 +40,7 @@ layer->contents_opaque())); RETURN_IF_EXPECTATION_FAILS(EXPECT_EQ(layer_impl->scrollable(), layer->scrollable())); + RETURN_IF_EXPECTATION_FAILS( EXPECT_FLOAT_EQ(layer_impl->Opacity(), layer->opacity())); RETURN_IF_EXPECTATION_FAILS(
diff --git a/cc/trees/damage_tracker_unittest.cc b/cc/trees/damage_tracker_unittest.cc index e1c2925..d036723 100644 --- a/cc/trees/damage_tracker_unittest.cc +++ b/cc/trees/damage_tracker_unittest.cc
@@ -207,8 +207,8 @@ EXPECT_TRUE(GetRenderSurface(root)->damage_tracker()->GetDamageRectIfValid( &root_damage_rect)); - ASSERT_TRUE(GetRenderSurface(child1)); - EXPECT_FALSE(GetRenderSurface(child2)); + EXPECT_NE(GetRenderSurface(child1), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(child2), GetRenderSurface(root)); EXPECT_EQ(3, GetRenderSurface(root)->num_contributors()); EXPECT_EQ(2, GetRenderSurface(child1)->num_contributors()); @@ -1105,7 +1105,7 @@ EmulateDrawingOneFrame(root); // Sanity check that there is only one surface now. - ASSERT_FALSE(GetRenderSurface(child1)); + ASSERT_EQ(GetRenderSurface(child1), GetRenderSurface(root)); ASSERT_EQ(4, GetRenderSurface(root)->num_contributors()); EXPECT_TRUE(GetRenderSurface(root)->damage_tracker()->GetDamageRectIfValid(
diff --git a/cc/trees/effect_node.h b/cc/trees/effect_node.h index 9d37b87..81ee42f 100644 --- a/cc/trees/effect_node.h +++ b/cc/trees/effect_node.h
@@ -61,7 +61,9 @@ bool subtree_has_copy_request; int transform_id; int clip_id; - // Effect node id of which this effect contributes to. + + // This is the id of the ancestor effect node that induces a + // RenderSurfaceImpl. int target_id; int mask_layer_id; int closest_ancestor_with_copy_request_id;
diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc index 6817657..49e5efd 100644 --- a/cc/trees/layer_tree_host_common_unittest.cc +++ b/cc/trees/layer_tree_host_common_unittest.cc
@@ -878,16 +878,20 @@ // Only layers that are associated with render surfaces should have an actual // RenderSurface() value. ASSERT_TRUE(GetRenderSurface(root)); - ASSERT_FALSE(GetRenderSurface(child_of_root)); - ASSERT_FALSE(GetRenderSurface(grand_child_of_root)); + ASSERT_EQ(GetRenderSurface(child_of_root), GetRenderSurface(root)); + ASSERT_EQ(GetRenderSurface(grand_child_of_root), GetRenderSurface(root)); - ASSERT_TRUE(GetRenderSurface(render_surface1)); - ASSERT_FALSE(GetRenderSurface(child_of_rs1)); - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs1)); + ASSERT_NE(GetRenderSurface(render_surface1), GetRenderSurface(root)); + ASSERT_EQ(GetRenderSurface(child_of_rs1), GetRenderSurface(render_surface1)); + ASSERT_EQ(GetRenderSurface(grand_child_of_rs1), + GetRenderSurface(render_surface1)); - ASSERT_TRUE(GetRenderSurface(render_surface2)); - ASSERT_FALSE(GetRenderSurface(child_of_rs2)); - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs2)); + ASSERT_NE(GetRenderSurface(render_surface2), GetRenderSurface(root)); + ASSERT_NE(GetRenderSurface(render_surface2), + GetRenderSurface(render_surface1)); + ASSERT_EQ(GetRenderSurface(child_of_rs2), GetRenderSurface(render_surface2)); + ASSERT_EQ(GetRenderSurface(grand_child_of_rs2), + GetRenderSurface(render_surface2)); // Verify all render target accessors EXPECT_EQ(GetRenderSurface(root), parent->render_target()); @@ -1548,7 +1552,7 @@ ExecuteCalculateDrawProperties(root); ASSERT_TRUE(GetRenderSurface(surface1)); - ASSERT_FALSE(GetRenderSurface(not_surface)); + ASSERT_EQ(GetRenderSurface(not_surface), GetRenderSurface(surface1)); ASSERT_TRUE(GetRenderSurface(surface2)); EXPECT_EQ(0.5f, GetRenderSurface(surface1)->draw_opacity()); // surface2's draw opacity should include the opacity of not-surface and @@ -1572,7 +1576,7 @@ // The root layer always creates a render surface EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_TRUE(GetRenderSurface(render_surface1)); + EXPECT_NE(GetRenderSurface(render_surface1), GetRenderSurface(root)); } { @@ -1580,7 +1584,7 @@ render_surface1->layer_tree_impl()->property_trees()->needs_rebuild = true; ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root); EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_FALSE(GetRenderSurface(render_surface1)); + EXPECT_EQ(GetRenderSurface(render_surface1), GetRenderSurface(root)); } } @@ -1607,8 +1611,8 @@ ExecuteCalculateDrawProperties(root); EXPECT_TRUE(GetRenderSurface(parent)); - EXPECT_FALSE(GetRenderSurface(child)); - EXPECT_FALSE(GetRenderSurface(grand_child)); + EXPECT_EQ(GetRenderSurface(child), GetRenderSurface(parent)); + EXPECT_EQ(GetRenderSurface(grand_child), GetRenderSurface(parent)); EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), child->DrawTransform()); EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), @@ -2046,16 +2050,20 @@ // Only layers that are associated with render surfaces should have an actual // RenderSurface() value. ASSERT_TRUE(GetRenderSurface(root)); - ASSERT_FALSE(GetRenderSurface(child_of_root)); - ASSERT_FALSE(GetRenderSurface(grand_child_of_root)); + ASSERT_EQ(GetRenderSurface(child_of_root), GetRenderSurface(root)); + ASSERT_EQ(GetRenderSurface(grand_child_of_root), GetRenderSurface(root)); - ASSERT_TRUE(GetRenderSurface(render_surface1)); - ASSERT_FALSE(GetRenderSurface(child_of_rs1)); - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs1)); + ASSERT_NE(GetRenderSurface(render_surface1), GetRenderSurface(root)); + ASSERT_EQ(GetRenderSurface(child_of_rs1), GetRenderSurface(render_surface1)); + ASSERT_EQ(GetRenderSurface(grand_child_of_rs1), + GetRenderSurface(render_surface1)); - ASSERT_TRUE(GetRenderSurface(render_surface2)); - ASSERT_FALSE(GetRenderSurface(child_of_rs2)); - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs2)); + ASSERT_NE(GetRenderSurface(render_surface2), GetRenderSurface(root)); + ASSERT_NE(GetRenderSurface(render_surface2), + GetRenderSurface(render_surface1)); + ASSERT_EQ(GetRenderSurface(child_of_rs2), GetRenderSurface(render_surface2)); + ASSERT_EQ(GetRenderSurface(grand_child_of_rs2), + GetRenderSurface(render_surface2)); // Verify all render target accessors EXPECT_EQ(GetRenderSurface(root), root->render_target()); @@ -3686,14 +3694,20 @@ ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root); // Verify which render surfaces were created. - EXPECT_FALSE(GetRenderSurface(front_facing_child)); - EXPECT_FALSE(GetRenderSurface(back_facing_child)); - EXPECT_TRUE(GetRenderSurface(front_facing_surface)); - EXPECT_TRUE(GetRenderSurface(back_facing_surface)); - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_front_facing_surface)); - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_front_facing_surface)); - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_back_facing_surface)); - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_back_facing_surface)); + EXPECT_EQ(GetRenderSurface(front_facing_child), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(back_facing_child), GetRenderSurface(root)); + EXPECT_NE(GetRenderSurface(front_facing_surface), GetRenderSurface(root)); + EXPECT_NE(GetRenderSurface(back_facing_surface), GetRenderSurface(root)); + EXPECT_NE(GetRenderSurface(back_facing_surface), + GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(front_facing_child_of_front_facing_surface), + GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(back_facing_child_of_front_facing_surface), + GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(front_facing_child_of_back_facing_surface), + GetRenderSurface(back_facing_surface)); + EXPECT_EQ(GetRenderSurface(back_facing_child_of_back_facing_surface), + GetRenderSurface(back_facing_surface)); EXPECT_EQ(3u, update_layer_list_impl()->size()); EXPECT_TRUE(UpdateLayerListImplContains(front_facing_child->id())); @@ -3794,15 +3808,21 @@ ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root); // Verify which render surfaces were created and used. - EXPECT_FALSE(GetRenderSurface(front_facing_child)); - EXPECT_FALSE(GetRenderSurface(back_facing_child)); - EXPECT_TRUE(GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(front_facing_child), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(back_facing_child), GetRenderSurface(root)); + EXPECT_NE(GetRenderSurface(front_facing_surface), GetRenderSurface(root)); // We expect that a has_render_surface was created but not used. - EXPECT_TRUE(GetRenderSurface(back_facing_surface)); - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_front_facing_surface)); - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_front_facing_surface)); - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_back_facing_surface)); - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_back_facing_surface)); + EXPECT_NE(GetRenderSurface(back_facing_surface), GetRenderSurface(root)); + EXPECT_NE(GetRenderSurface(back_facing_surface), + GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(front_facing_child_of_front_facing_surface), + GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(back_facing_child_of_front_facing_surface), + GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(front_facing_child_of_back_facing_surface), + GetRenderSurface(back_facing_surface)); + EXPECT_EQ(GetRenderSurface(back_facing_child_of_back_facing_surface), + GetRenderSurface(back_facing_surface)); EXPECT_EQ(3u, update_layer_list_impl()->size()); @@ -3868,11 +3888,12 @@ ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root); - EXPECT_FALSE(GetRenderSurface(child)); + EXPECT_EQ(GetRenderSurface(child), GetRenderSurface(root)); EXPECT_TRUE(GetRenderSurface(animating_surface)); - EXPECT_FALSE(GetRenderSurface(child_of_animating_surface)); - EXPECT_FALSE(GetRenderSurface(animating_child)); - EXPECT_FALSE(GetRenderSurface(child2)); + EXPECT_EQ(GetRenderSurface(child_of_animating_surface), + GetRenderSurface(animating_surface)); + EXPECT_EQ(GetRenderSurface(animating_child), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(child2), GetRenderSurface(root)); EXPECT_EQ(1u, update_layer_list_impl()->size()); @@ -3931,9 +3952,9 @@ EXPECT_TRUE(GetRenderSurface(front_facing_surface)); // We expect the render surface to have been created, but remain unused. - EXPECT_TRUE(GetRenderSurface(back_facing_surface)); - EXPECT_FALSE(GetRenderSurface(child1)); - EXPECT_FALSE(GetRenderSurface(child2)); + EXPECT_NE(GetRenderSurface(back_facing_surface), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(child1), GetRenderSurface(front_facing_surface)); + EXPECT_EQ(GetRenderSurface(child2), GetRenderSurface(back_facing_surface)); EXPECT_EQ(2u, update_layer_list_impl()->size()); EXPECT_TRUE(UpdateLayerListImplContains(front_facing_surface->id())); @@ -4333,7 +4354,7 @@ grand_child->SetBounds(gfx::Size(10, 10)); grand_child->SetDrawsContent(true); ExecuteCalculateDrawProperties(root); - EXPECT_FALSE(GetRenderSurface(child)); + EXPECT_EQ(GetRenderSurface(child), GetRenderSurface(root)); } TEST_F(LayerTreeHostCommonTest, OpacityAnimatingOnPendingTree) { @@ -5426,9 +5447,9 @@ // Verify which render surfaces were created. EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_FALSE(GetRenderSurface(child1)); - EXPECT_TRUE(GetRenderSurface(child2)); - EXPECT_FALSE(GetRenderSurface(child3)); + EXPECT_EQ(GetRenderSurface(child1), GetRenderSurface(root)); + EXPECT_NE(GetRenderSurface(child2), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(child3), GetRenderSurface(child2)); } TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleSurfaces) { @@ -8304,8 +8325,8 @@ EXPECT_EQ(1.f, child->Opacity()); EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_TRUE(GetRenderSurface(child)); - EXPECT_FALSE(GetRenderSurface(grandchild)); + EXPECT_NE(GetRenderSurface(child), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(grandchild), GetRenderSurface(child)); } // Verify that having an animated filter (but no current filter, as these @@ -8325,8 +8346,8 @@ ExecuteCalculateDrawProperties(root); EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_TRUE(GetRenderSurface(child)); - EXPECT_FALSE(GetRenderSurface(grandchild)); + EXPECT_NE(GetRenderSurface(child), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(grandchild), GetRenderSurface(child)); EXPECT_TRUE(GetRenderSurface(root)->Filters().IsEmpty()); EXPECT_TRUE(GetRenderSurface(child)->Filters().IsEmpty()); @@ -8369,8 +8390,8 @@ ExecuteCalculateDrawProperties(root); EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_TRUE(GetRenderSurface(child)); - EXPECT_FALSE(GetRenderSurface(grandchild)); + EXPECT_NE(GetRenderSurface(child), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(grandchild), GetRenderSurface(child)); EXPECT_TRUE(GetRenderSurface(root)->Filters().IsEmpty()); EXPECT_TRUE(GetRenderSurface(child)->Filters().IsEmpty()); @@ -9081,10 +9102,10 @@ EXPECT_EQ(transform_node->owning_layer_id, significant_transform->id()); EXPECT_TRUE(GetRenderSurface(root)); - EXPECT_FALSE(GetRenderSurface(significant_transform)); + EXPECT_EQ(GetRenderSurface(significant_transform), GetRenderSurface(root)); EXPECT_TRUE(GetRenderSurface(layer_clips_subtree)); - EXPECT_TRUE(GetRenderSurface(render_surface)); - EXPECT_FALSE(GetRenderSurface(test_layer)); + EXPECT_NE(GetRenderSurface(render_surface), GetRenderSurface(root)); + EXPECT_EQ(GetRenderSurface(test_layer), GetRenderSurface(render_surface)); EXPECT_EQ(gfx::Rect(30, 20), test_layer->visible_layer_rect()); }
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc index 0cd3366..42c83bf 100644 --- a/cc/trees/layer_tree_host_impl_unittest.cc +++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -7252,12 +7252,16 @@ gfx::Size(1, 1), false, false); test_blending_draw_quad->visible_rect = quad_visible_rect_; EXPECT_EQ(blend_, test_blending_draw_quad->ShouldDrawWithBlending()); - EXPECT_EQ(has_render_surface_, !!GetRenderSurface(this)); + EXPECT_EQ(has_render_surface_, + GetRenderSurface(this) != GetRenderSurface(comparison_layer_)); } - void SetExpectation(bool blend, bool has_render_surface) { + void SetExpectation(bool blend, + bool has_render_surface, + LayerImpl* comparison_layer) { blend_ = blend; has_render_surface_ = has_render_surface; + comparison_layer_ = comparison_layer; quads_appended_ = false; } @@ -7276,6 +7280,7 @@ : LayerImpl(tree_impl, id), blend_(false), has_render_surface_(false), + comparison_layer_(nullptr), quads_appended_(false), quad_rect_(5, 5, 5, 5), quad_visible_rect_(5, 5, 5, 5), @@ -7291,6 +7296,7 @@ bool blend_; bool has_render_surface_; + LayerImpl* comparison_layer_; bool quads_appended_; gfx::Rect quad_rect_; gfx::Rect opaque_content_rect_; @@ -7319,7 +7325,7 @@ // Opaque layer, drawn without blending. layer1->SetContentsOpaque(true); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7329,7 +7335,7 @@ // Layer with translucent content and painting, so drawn with blending. layer1->SetContentsOpaque(false); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7342,7 +7348,7 @@ layer1->SetContentsOpaque(true); layer1->test_properties()->opacity = 0.5f; layer1->NoteLayerPropertyChanged(); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7354,7 +7360,7 @@ layer1->SetContentsOpaque(true); layer1->test_properties()->opacity = 0.5f; layer1->NoteLayerPropertyChanged(); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7372,12 +7378,12 @@ layer1->SetContentsOpaque(true); layer1->test_properties()->opacity = 1.f; layer1->NoteLayerPropertyChanged(); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); layer2->SetContentsOpaque(true); layer2->test_properties()->opacity = 1.f; layer2->NoteLayerPropertyChanged(); - layer2->SetExpectation(false, false); + layer2->SetExpectation(false, false, root); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7390,9 +7396,9 @@ // Parent layer with translucent content, drawn with blending. // Child layer with opaque content, drawn without blending. layer1->SetContentsOpaque(false); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); - layer2->SetExpectation(false, false); + layer2->SetExpectation(false, false, root); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7406,9 +7412,9 @@ // blending. // Child layer with opaque content, drawn without blending. layer1->SetContentsOpaque(true); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); - layer2->SetExpectation(false, false); + layer2->SetExpectation(false, false, root); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7426,9 +7432,9 @@ layer1->test_properties()->opacity = 0.5f; layer1->NoteLayerPropertyChanged(); layer1->test_properties()->force_render_surface = true; - layer1->SetExpectation(false, true); + layer1->SetExpectation(false, true, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); - layer2->SetExpectation(false, false); + layer2->SetExpectation(false, false, layer1); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7443,12 +7449,12 @@ layer1->SetContentsOpaque(true); layer1->test_properties()->opacity = 1.f; layer1->NoteLayerPropertyChanged(); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); layer2->SetContentsOpaque(true); layer2->test_properties()->opacity = 0.5f; layer2->NoteLayerPropertyChanged(); - layer2->SetExpectation(true, false); + layer2->SetExpectation(true, false, layer1); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7461,12 +7467,12 @@ layer1->SetContentsOpaque(true); layer1->test_properties()->opacity = 1.f; layer1->NoteLayerPropertyChanged(); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); layer2->SetContentsOpaque(false); layer2->test_properties()->opacity = 1.f; layer2->NoteLayerPropertyChanged(); - layer2->SetExpectation(true, false); + layer2->SetExpectation(true, false, root); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7480,12 +7486,12 @@ layer1->SetContentsOpaque(true); layer1->test_properties()->opacity = 1.f; layer1->NoteLayerPropertyChanged(); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); layer2->SetContentsOpaque(true); layer2->test_properties()->opacity = 1.f; layer2->NoteLayerPropertyChanged(); - layer2->SetExpectation(false, false); + layer2->SetExpectation(false, false, root); layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); @@ -7499,7 +7505,7 @@ layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 5)); layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7513,7 +7519,7 @@ layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 2)); layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7527,7 +7533,7 @@ layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); layer1->SetQuadVisibleRect(gfx::Rect(7, 5, 3, 5)); layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); - layer1->SetExpectation(true, false); + layer1->SetExpectation(true, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7542,7 +7548,7 @@ layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 2, 5)); layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); - layer1->SetExpectation(false, false); + layer1->SetExpectation(false, false, root); layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->set_needs_update_draw_properties(); @@ -7632,7 +7638,8 @@ ->root_layer_for_testing() ->test_properties() ->children[0]); - child_->SetExpectation(false, false); + child_->SetExpectation(false, false, + host_impl_->active_tree()->root_layer_for_testing()); child_->SetContentsOpaque(true); }
diff --git a/cc/trees/occlusion_tracker_unittest.cc b/cc/trees/occlusion_tracker_unittest.cc index 8389954..a0218f64 100644 --- a/cc/trees/occlusion_tracker_unittest.cc +++ b/cc/trees/occlusion_tracker_unittest.cc
@@ -78,7 +78,8 @@ gfx::Rect UnoccludedSurfaceContentRect(const LayerImpl* layer, const gfx::Rect& content_rect) const { - const RenderSurfaceImpl* surface = GetRenderSurface(layer); + const RenderSurfaceImpl* surface = + GetRenderSurface(const_cast<LayerImpl*>(layer)); return this->GetCurrentOcclusionForContributingSurface( surface->draw_transform()) .GetUnoccludedContentRect(content_rect);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java index 8335b4b..757c727a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
@@ -149,9 +149,10 @@ // TODO(mdjones): Create a "theme provider" to handle cases like this. int color = mRenderHost.getBrowserControlsBackgroundColor(); float alpha = mRenderHost.getBrowserControlsUrlBarAlpha(); - if (mLayoutProvider.getFullscreenManager().areBrowserControlsAtBottom()) { - color = mLayoutProvider.getFullscreenManager().getTab().getDefaultThemeColor(); - if (!mLayoutProvider.getFullscreenManager().getTab().isIncognito()) alpha = 1f; + ChromeFullscreenManager fullscreenManager = mLayoutProvider.getFullscreenManager(); + if (fullscreenManager.areBrowserControlsAtBottom() && fullscreenManager.getTab() != null) { + color = fullscreenManager.getTab().getDefaultThemeColor(); + if (!fullscreenManager.getTab().isIncognito()) alpha = 1f; } update(color, alpha, mLayoutProvider.getFullscreenManager(), resourceManager,
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index bf646f6f..3aab0f0 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1582,6 +1582,7 @@ "//components/translate/core/browser", "//components/translate/core/common", "//components/ukm:observers", + "//components/ukm/debug_page", "//components/undo", "//components/update_client", "//components/upload_list",
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc index 6e3fd55a..ea0e3a4 100644 --- a/chrome/browser/chrome_browser_main_win.cc +++ b/chrome/browser/chrome_browser_main_win.cc
@@ -381,6 +381,10 @@ InitializeChromeElf(); +#if defined(GOOGLE_CHROME_BUILD) + did_run_updater_.reset(new DidRunUpdater); +#endif + if (base::FeatureList::IsEnabled(safe_browsing::kSettingsResetPrompt)) { content::BrowserThread::PostAfterStartupTask( FROM_HERE,
diff --git a/chrome/browser/chrome_content_renderer_manifest_overlay.json b/chrome/browser/chrome_content_renderer_manifest_overlay.json index ce8b9f139..16dd6ef 100644 --- a/chrome/browser/chrome_content_renderer_manifest_overlay.json +++ b/chrome/browser/chrome_content_renderer_manifest_overlay.json
@@ -4,7 +4,8 @@ "service_manager:connector": { "provides": { "browser": [ - "chrome::mojom::ResourceUsageReporter" + "chrome::mojom::ResourceUsageReporter", + "spellcheck::mojom::SpellChecker" ] } },
diff --git a/chrome/browser/chromeos/arc/process/arc_process.cc b/chrome/browser/chromeos/arc/process/arc_process.cc index abb054a..6bafc72 100644 --- a/chrome/browser/chromeos/arc/process/arc_process.cc +++ b/chrome/browser/chromeos/arc/process/arc_process.cc
@@ -8,6 +8,15 @@ namespace arc { +namespace { + +// A special process on Android side which serves as a dummy "focused" app +// when the focused window is a Chrome side window (i.e., all Android +// processes are running in the background). We don't want to kill it anyway. +constexpr char kArcHomeProcess[] = "org.chromium.arc.home"; + +} // namespace + ArcProcess::ArcProcess(base::ProcessId nspid, base::ProcessId pid, const std::string& process_name, @@ -34,4 +43,17 @@ ArcProcess::ArcProcess(ArcProcess&& other) = default; ArcProcess& ArcProcess::operator=(ArcProcess&& other) = default; +bool ArcProcess::IsImportant() const { + return process_state() <= mojom::ProcessState::IMPORTANT_FOREGROUND || + process_name() == kArcHomeProcess; +} + +bool ArcProcess::IsKernelKillable() const { + // Protect PERSISTENT, PERSISTENT_UI, and our HOME processes since they should + // never be killed even by the kernel. Returning false for them allows their + // OOM adjustment scores to remain negative. + return process_state() > arc::mojom::ProcessState::PERSISTENT_UI && + process_name() != kArcHomeProcess; +} + } // namespace arc
diff --git a/chrome/browser/chromeos/arc/process/arc_process.h b/chrome/browser/chromeos/arc/process/arc_process.h index f4ee65c6..e2e6faf3 100644 --- a/chrome/browser/chromeos/arc/process/arc_process.h +++ b/chrome/browser/chromeos/arc/process/arc_process.h
@@ -39,6 +39,17 @@ std::vector<std::string>& packages() { return packages_; } const std::vector<std::string>& packages() const { return packages_; } + // Returns true if the process is important and should be protected more + // from OOM kills than other processes. + // TODO(cylee|yusukes): Check what stock Android does for handling OOM and + // modify this function as needed (crbug.com/719537). + bool IsImportant() const; + + // Returns true if it is okay for the kernel OOM killer to kill the process. + // TODO(cylee|yusukes): Consider removing this function. Having only + // IsImportant() might be good enough. + bool IsKernelKillable() const; + private: base::ProcessId nspid_; base::ProcessId pid_;
diff --git a/chrome/browser/chromeos/arc/process/arc_process_unittest.cc b/chrome/browser/chromeos/arc/process/arc_process_unittest.cc index 006fc072..aea2d2bc 100644 --- a/chrome/browser/chromeos/arc/process/arc_process_unittest.cc +++ b/chrome/browser/chromeos/arc/process/arc_process_unittest.cc
@@ -20,7 +20,7 @@ std::list<ArcProcess> processes; // use list<> for emplace_front. processes.emplace_back(0, 0, "process 0", mojom::ProcessState::PERSISTENT, - false /* is_foreground */, kNow + 1); + false /* is_focused */, kNow + 1); processes.emplace_front(1, 1, "process 1", mojom::ProcessState::PERSISTENT, false, kNow); processes.emplace_back(2, 2, "process 2", mojom::ProcessState::LAST_ACTIVITY, @@ -57,6 +57,156 @@ EXPECT_EQ(5, it->pid()); } +TEST(ArcProcess, TestIsImportant) { + constexpr bool kIsNotFocused = false; + + // Processes up to IMPORTANT_FOREGROUND are considered important. + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::PERSISTENT, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::PERSISTENT_UI, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::TOP, true, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::TOP, false, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::BOUND_FOREGROUND_SERVICE, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::FOREGROUND_SERVICE, kIsNotFocused, + 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::TOP_SLEEPING, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::IMPORTANT_FOREGROUND, + kIsNotFocused, 0) + .IsImportant()); + + // Others are not important. + EXPECT_FALSE(ArcProcess(0, 0, "process", + mojom::ProcessState::IMPORTANT_BACKGROUND, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE( + ArcProcess(0, 0, "process", mojom::ProcessState::BACKUP, kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::HEAVY_WEIGHT, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::SERVICE, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::RECEIVER, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE( + ArcProcess(0, 0, "process", mojom::ProcessState::HOME, kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::LAST_ACTIVITY, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::CACHED_ACTIVITY, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", + mojom::ProcessState::CACHED_ACTIVITY_CLIENT, + kIsNotFocused, 0) + .IsImportant()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::CACHED_EMPTY, + kIsNotFocused, 0) + .IsImportant()); + + // Exceptions: the function always returns true ignoring ProcessState for our + // HOME process. + EXPECT_TRUE(ArcProcess(0, 0, "org.chromium.arc.home", + mojom::ProcessState::TOP, kIsNotFocused, 0) + .IsImportant()); + EXPECT_TRUE(ArcProcess(0, 0, "org.chromium.arc.home", + mojom::ProcessState::HOME, kIsNotFocused, 0) + .IsImportant()); +} + +TEST(ArcProcess, TestIsKernelKillable) { + constexpr bool kIsNotFocused = false; + + // Only PERSISITENT* processes are protected from the kernel OOM killer. + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::PERSISTENT, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_FALSE(ArcProcess(0, 0, "process", mojom::ProcessState::PERSISTENT_UI, + kIsNotFocused, 0) + .IsKernelKillable()); + + // Both TOP+focused and TOP apps are still kernel-killable. + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::TOP, true, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::TOP, false, 0) + .IsKernelKillable()); + + // Others are kernel-killable. + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::BOUND_FOREGROUND_SERVICE, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::FOREGROUND_SERVICE, kIsNotFocused, + 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::TOP_SLEEPING, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::IMPORTANT_FOREGROUND, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::IMPORTANT_BACKGROUND, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE( + ArcProcess(0, 0, "process", mojom::ProcessState::BACKUP, kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::HEAVY_WEIGHT, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::SERVICE, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::RECEIVER, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE( + ArcProcess(0, 0, "process", mojom::ProcessState::HOME, kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::LAST_ACTIVITY, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::CACHED_ACTIVITY, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", + mojom::ProcessState::CACHED_ACTIVITY_CLIENT, + kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_TRUE(ArcProcess(0, 0, "process", mojom::ProcessState::CACHED_EMPTY, + kIsNotFocused, 0) + .IsKernelKillable()); + + // Exceptions: the function always returns false ignoring ProcessState for our + // HOME process. + EXPECT_FALSE(ArcProcess(0, 0, "org.chromium.arc.home", + mojom::ProcessState::TOP, kIsNotFocused, 0) + .IsKernelKillable()); + EXPECT_FALSE(ArcProcess(0, 0, "org.chromium.arc.home", + mojom::ProcessState::HOME, kIsNotFocused, 0) + .IsKernelKillable()); +} + } // namespace } // namespace arc
diff --git a/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc b/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc index f72fe84..9573e10f 100644 --- a/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc +++ b/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc
@@ -79,8 +79,10 @@ std::string token = mojo::edk::GenerateRandomToken(); mojo::ScopedMessagePipeHandle server_pipe = invitation.AttachMessagePipe(token); - invitation.Send(kUnusedChildProcessHandle, - mojo::edk::ConnectionParams(channel_pair.PassServerHandle())); + invitation.Send( + kUnusedChildProcessHandle, + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + channel_pair.PassServerHandle())); MojoHandle wrapped_handle; MojoResult wrap_result = mojo::edk::CreatePlatformHandleWrapper(
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc index 007699c5..41f9f10 100644 --- a/chrome/browser/chromeos/login/session/user_session_manager.cc +++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -1516,7 +1516,12 @@ void UserSessionManager::RestorePendingUserSessions() { if (pending_user_sessions_.empty()) { - user_manager::UserManager::Get()->SwitchToLastActiveUser(); + // '>1' ignores "restart on signin" because of browser flags difference. + // In this case, last_session_active_account_id_ can carry account_id + // from the previous browser session. + if (user_manager::UserManager::Get()->GetLoggedInUsers().size() > 1) + user_manager::UserManager::Get()->SwitchToLastActiveUser(); + NotifyPendingUserSessionsRestoreFinished(); return; }
diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc index 8a4d8b9..3fa7850 100644 --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
@@ -365,7 +365,7 @@ std::string extension_name; std::string extension_type; if (!GetExtensionInfo(host, &extension_name, &extension_type)) - return std::string(); + return DevToolsAgentHost::kTypeOther; return extension_type; }
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc index 7343bfd..ebaa354 100644 --- a/chrome/browser/media/protected_media_identifier_permission_context.cc +++ b/chrome/browser/media/protected_media_identifier_permission_context.cc
@@ -6,15 +6,19 @@ #include "base/command_line.h" #include "base/metrics/user_metrics.h" +#include "base/strings/string_split.h" #include "build/build_config.h" #include "chrome/browser/content_settings/tab_specific_content_settings.h" #include "chrome/browser/permissions/permission_util.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "components/prefs/pref_service.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" +#include "media/base/media_switches.h" +#include "net/base/url_util.h" #if defined(OS_CHROMEOS) #include <utility> @@ -102,9 +106,39 @@ content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_ASK); + // For automated testing of protected content - having a prompt that + // requires user intervention is problematic. If the domain has been + // whitelisted as safe - suppress the request and allow. + if (content_setting == CONTENT_SETTING_ASK && + IsOriginWhitelisted(requesting_origin)) { + content_setting = CONTENT_SETTING_ALLOW; + } + return content_setting; } +bool ProtectedMediaIdentifierPermissionContext::IsOriginWhitelisted( + const GURL& origin) { + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + + if (command_line.GetSwitchValueASCII(switches::kUserDataDir).empty()) { + return false; + } + + const std::string whitelist = command_line.GetSwitchValueASCII( + switches::kUnsafelyAllowProtectedMediaIdentifierForDomain); + + for (const std::string& domain : base::SplitString( + whitelist, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { + if (origin.DomainIs(domain)) { + return true; + } + } + + return false; +} + void ProtectedMediaIdentifierPermissionContext::CancelPermissionRequest( content::WebContents* web_contents, const PermissionRequestID& id) {
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.h b/chrome/browser/media/protected_media_identifier_permission_context.h index 8bb0c68..f4bd789 100644 --- a/chrome/browser/media/protected_media_identifier_permission_context.h +++ b/chrome/browser/media/protected_media_identifier_permission_context.h
@@ -53,6 +53,9 @@ const PermissionRequestID& id) override; private: + friend class ProtectedMediaIdentifierPermissionContextTest; + static bool IsOriginWhitelisted(const GURL& origin); + void UpdateTabContext(const PermissionRequestID& id, const GURL& requesting_frame, bool allowed) override;
diff --git a/chrome/browser/media/protected_media_identifier_permission_context_unittest.cc b/chrome/browser/media/protected_media_identifier_permission_context_unittest.cc new file mode 100644 index 0000000..4099493 --- /dev/null +++ b/chrome/browser/media/protected_media_identifier_permission_context_unittest.cc
@@ -0,0 +1,105 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/media/protected_media_identifier_permission_context.h" + +#include "base/test/scoped_command_line.h" +#include "chrome/common/chrome_switches.h" +#include "media/base/media_switches.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +class ProtectedMediaIdentifierPermissionContextTest : public testing::Test { + public: + ProtectedMediaIdentifierPermissionContextTest() + : requesting_origin_("https://example.com"), + requesting_sub_domain_origin_("https://subdomain.example.com") { + command_line_ = scoped_command_line_.GetProcessCommandLine(); + } + + bool IsOriginWhitelisted(const GURL& origin) { + return ProtectedMediaIdentifierPermissionContext::IsOriginWhitelisted( + origin); + } + + GURL requesting_origin_; + GURL requesting_sub_domain_origin_; + + base::test::ScopedCommandLine scoped_command_line_; + base::CommandLine* command_line_; +}; + +TEST_F(ProtectedMediaIdentifierPermissionContextTest, + BypassWithFlagWithSingleDomain) { + // The request should need to ask for permission + ASSERT_FALSE(IsOriginWhitelisted(requesting_origin_)); + + // Add the switch value that the + // ProtectedMediaIdentifierPermissionContext::reads from + command_line_->AppendSwitchASCII(switches::kUserDataDir, "/dir/for/testing"); + command_line_->AppendSwitchASCII( + switches::kUnsafelyAllowProtectedMediaIdentifierForDomain, "example.com"); + + // The request should no longer need to ask for permission + ASSERT_TRUE(IsOriginWhitelisted(requesting_origin_)); +} + +TEST_F(ProtectedMediaIdentifierPermissionContextTest, + BypassWithFlagWithDomainList) { + // The request should need to ask for permission + ASSERT_FALSE(IsOriginWhitelisted(requesting_origin_)); + + // Add the switch value that the + // ProtectedMediaIdentifierPermissionContext::reads from + command_line_->AppendSwitchASCII(switches::kUserDataDir, "/dir/for/testing"); + command_line_->AppendSwitchASCII( + switches::kUnsafelyAllowProtectedMediaIdentifierForDomain, + "example.ca,example.com,example.edu"); + + // The request should no longer need to ask for permission + ASSERT_TRUE(IsOriginWhitelisted(requesting_origin_)); +} + +TEST_F(ProtectedMediaIdentifierPermissionContextTest, + BypassWithFlagAndSubdomain) { + // The request should need to ask for permission + ASSERT_FALSE(IsOriginWhitelisted(requesting_sub_domain_origin_)); + + // Add the switch value that the + // ProtectedMediaIdentifierPermissionContext::reads from + command_line_->AppendSwitchASCII(switches::kUserDataDir, "/dir/for/testing"); + command_line_->AppendSwitchASCII( + switches::kUnsafelyAllowProtectedMediaIdentifierForDomain, "example.com"); + + // The request should no longer need to ask for permission + ASSERT_TRUE(IsOriginWhitelisted(requesting_sub_domain_origin_)); +} + +TEST_F(ProtectedMediaIdentifierPermissionContextTest, + BypassRequiresUserDataDir) { + // The request should need to ask for permission + ASSERT_FALSE(IsOriginWhitelisted(requesting_origin_)); + + // Add the switch value that the + // ProtectedMediaIdentifierPermissionContext::reads from + command_line_->AppendSwitchASCII( + switches::kUnsafelyAllowProtectedMediaIdentifierForDomain, "example.com"); + + // The request should still need to ask for permission + ASSERT_FALSE(IsOriginWhitelisted(requesting_origin_)); + + // Set the user data dir switch but do not give it a value, this should still + // require the request to ask for permission. + command_line_->AppendSwitch(switches::kUserDataDir); + + // The request should still need to ask for permission + ASSERT_FALSE(IsOriginWhitelisted(requesting_origin_)); + + // Set the user data dir so the request should no longer need to ask for + // permission + command_line_->AppendSwitchASCII(switches::kUserDataDir, "/dir/for/testing"); + + // The request should no longer need to ask for permission + ASSERT_TRUE(IsOriginWhitelisted(requesting_origin_)); +}
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos.cc b/chrome/browser/memory/tab_manager_delegate_chromeos.cc index 08c658b..aef50dc 100644 --- a/chrome/browser/memory/tab_manager_delegate_chromeos.cc +++ b/chrome/browser/memory/tab_manager_delegate_chromeos.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/memory/tab_manager_delegate_chromeos.h" +#include <math.h> #include <stdint.h> #include <algorithm> @@ -36,7 +37,6 @@ #include "chromeos/dbus/dbus_thread_manager.h" #include "components/arc/arc_bridge_service.h" #include "components/arc/arc_service_manager.h" -#include "components/arc/common/process.mojom.h" #include "components/device_event_log/device_event_log.h" #include "components/exo/shell_surface.h" #include "content/public/browser/browser_thread.h" @@ -86,20 +86,25 @@ void OnSetOomScoreAdj(bool success, const std::string& output) { VLOG(2) << "OnSetOomScoreAdj " << success << " " << output; - if (!success || output != "") - LOG(WARNING) << "Set OOM score error: " << output; + if (!success) + LOG(ERROR) << "Set OOM score error: " << output; + else if (!output.empty()) + LOG(WARNING) << "Set OOM score: " << output; } } // namespace +// static +const int TabManagerDelegate::kLowestOomScore = -1000; + std::ostream& operator<<(std::ostream& os, const ProcessType& type) { switch (type) { case ProcessType::FOCUSED_TAB: return os << "FOCUSED_TAB"; case ProcessType::FOCUSED_APP: return os << "FOCUSED_APP"; - case ProcessType::VISIBLE_APP: - return os << "VISIBLE_APP"; + case ProcessType::IMPORTANT_APP: + return os << "IMPORTANT_APP"; case ProcessType::BACKGROUND_TAB: return os << "BACKGROUND_TAB"; case ProcessType::BACKGROUND_APP: @@ -155,10 +160,8 @@ if (app()) { if (app()->is_focused()) return ProcessType::FOCUSED_APP; - if (app()->process_state() <= - arc::mojom::ProcessState::IMPORTANT_FOREGROUND) { - return ProcessType::VISIBLE_APP; - } + if (app()->IsImportant()) + return ProcessType::IMPORTANT_APP; return ProcessType::BACKGROUND_APP; } if (tab()) { @@ -531,19 +534,7 @@ candidates.emplace_back(&tab); } - // A special process on Android side which serves as a dummy "focused" app - // when the focused window is a Chrome side window (i.e., all Android - // processes are running in the background). We don't want to kill it anyway. - static constexpr char kArcInBackgroundDummyprocess[] = - "org.chromium.arc.home"; - for (const auto& app : arc_processes) { - // Skip persistent android processes since they should never be killed here. - // Neither do we set their OOM scores so their score remains minimum. - if (app.process_state() <= arc::mojom::ProcessState::PERSISTENT_UI || - app.process_name() == kArcInBackgroundDummyprocess) { - continue; - } candidates.emplace_back(&app); } @@ -609,12 +600,11 @@ << " KB"; if (target_memory_to_free_kb <= 0) break; - // Never kill selected tab or Android foreground app, regardless whether - // they're in the active window. Since the user experience would be bad. + // Never kill selected tab, foreground app, and important apps regardless of + // whether they're in the active window. Since the user experience would be + // bad. ProcessType process_type = it->process_type(); - if (process_type == ProcessType::VISIBLE_APP || - process_type == ProcessType::FOCUSED_APP || - process_type == ProcessType::FOCUSED_TAB) { + if (process_type <= ProcessType::IMPORTANT_APP) { MEMORY_LOG(ERROR) << "Skipped killing " << *it; continue; } @@ -660,8 +650,24 @@ void TabManagerDelegate::AdjustOomPrioritiesImpl( const TabStatsList& tab_list, const std::vector<arc::ArcProcess>& arc_processes) { + std::vector<TabManagerDelegate::Candidate> candidates; + std::vector<TabManagerDelegate::Candidate> apps_non_killable; + // Least important first. - const auto candidates = GetSortedCandidates(tab_list, arc_processes); + auto all_candidates = GetSortedCandidates(tab_list, arc_processes); + for (auto& candidate : all_candidates) { + // TODO(cylee|yusukes): Consider using IsImportant() instead of + // IsKernelKillable() for simplicity. + // TODO(cylee): Also consider protecting FOCUSED_TAB from the kernel OOM + // killer so that Chrome and the kernel do the same regarding OOM handling. + if (!candidate.app() || candidate.app()->IsKernelKillable()) { + // Add tabs and killable apps to |candidates|. + candidates.emplace_back(std::move(candidate)); + } else { + // Add non-killable apps to |apps_non_killable|. + apps_non_killable.emplace_back(std::move(candidate)); + } + } // Now we assign priorities based on the sorted list. We're assigning // priorities in the range of kLowestRendererOomScore to @@ -691,6 +697,10 @@ ProcessScoreMap new_map; + // Make the apps non-killable. + if (!apps_non_killable.empty()) + SetOomScore(apps_non_killable, kLowestOomScore, &new_map); + // Higher priority part. DistributeOomScoreInRange(candidates.begin(), lower_priority_part, chrome::kLowestRendererOomScore, range_middle, @@ -698,9 +708,18 @@ // Lower priority part. DistributeOomScoreInRange(lower_priority_part, candidates.end(), range_middle, chrome::kHighestRendererOomScore, &new_map); + oom_score_map_.swap(new_map); } +void TabManagerDelegate::SetOomScore( + const std::vector<TabManagerDelegate::Candidate>& candidates, + int score, + ProcessScoreMap* new_map) { + DistributeOomScoreInRange(candidates.begin(), candidates.end(), score, score, + new_map); +} + void TabManagerDelegate::DistributeOomScoreInRange( std::vector<TabManagerDelegate::Candidate>::const_iterator begin, std::vector<TabManagerDelegate::Candidate>::const_iterator end, @@ -720,7 +739,7 @@ float priority = range_begin; for (auto cur = begin; cur != end; ++cur) { - int score = static_cast<int>(priority + 0.5f); + const int score = round(priority); base::ProcessHandle pid = base::kNullProcessHandle; if (cur->app()) { @@ -753,9 +772,10 @@ priority += priority_increment; } - if (oom_scores_to_change.size()) + if (oom_scores_to_change.size()) { GetDebugDaemonClient()->SetOomScoreAdj( oom_scores_to_change, base::Bind(&OnSetOomScoreAdj)); + } } } // namespace memory
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos.h b/chrome/browser/memory/tab_manager_delegate_chromeos.h index 0c86a265..025877c 100644 --- a/chrome/browser/memory/tab_manager_delegate_chromeos.h +++ b/chrome/browser/memory/tab_manager_delegate_chromeos.h
@@ -41,7 +41,11 @@ FOCUSED_TAB = 1, FOCUSED_APP = 2, - VISIBLE_APP = 3, + // Important apps are protected in two ways: 1) Chrome never kills them, and + // 2) the kernel is still allowed to kill them, but their OOM adjustment + // scores are better than BACKGROUND_TABs and BACKGROUND_APPs. + IMPORTANT_APP = 3, + BACKGROUND_TAB = 4, BACKGROUND_APP = 5, UNKNOWN_TYPE = 6, @@ -162,6 +166,12 @@ int range_end, ProcessScoreMap* new_map); + // Changes |candidates|' OOM scores to |score|. The new scores are set in + // |new_map|. + void SetOomScore(const std::vector<TabManagerDelegate::Candidate>& candidates, + int score, + ProcessScoreMap* new_map); + // Initiates an oom priority adjustment. void ScheduleEarlyOomPrioritiesAdjustment(); @@ -173,6 +183,9 @@ return base::TimeDelta::FromSeconds(60); } + // The lowest OOM adjustment score that will make the process non-killable. + static const int kLowestOomScore; + // Holds a reference to the owning TabManager. const base::WeakPtr<TabManager> tab_manager_;
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc b/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc index 8d10119..7b6572f 100644 --- a/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc +++ b/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc
@@ -233,6 +233,12 @@ 3, 30, "service", arc::mojom::ProcessState::SERVICE, kNotFocused, 500); arc_processes.emplace_back(4, 40, "visible2", arc::mojom::ProcessState::TOP, kNotFocused, 150); + arc_processes.emplace_back(5, 50, "persistent", + arc::mojom::ProcessState::PERSISTENT, kNotFocused, + 600); + arc_processes.emplace_back(6, 60, "persistent_ui", + arc::mojom::ProcessState::PERSISTENT_UI, + kNotFocused, 700); TabStats tab1, tab2, tab3, tab4, tab5; tab1.is_pinned = true; @@ -252,20 +258,29 @@ tab5.renderer_handle = 12; TabStatsList tab_list = {tab1, tab2, tab3, tab4, tab5}; - // Sorted order: - // app "focused" pid: 10 - // app "visible1" pid: 20 - // app "visible2" pid: 40 - // tab3 pid: 12 - // tab4 pid: 12 - // tab1 pid: 11 - // tab5 pid: 12 - // tab2 pid: 11 - // app "service" pid: 30 + // Sorted order (by GetSortedCandidates): + // app "focused" pid: 10 + // app "persistent" pid: 50 + // app "persistent_ui" pid: 60 + // app "visible1" pid: 20 + // app "visible2" pid: 40 + // tab3 pid: 12 + // tab4 pid: 12 + // tab1 pid: 11 + // tab5 pid: 12 + // tab2 pid: 11 + // app "service" pid: 30 tab_manager_delegate.AdjustOomPrioritiesImpl(tab_list, arc_processes); auto& oom_score_map = tab_manager_delegate.oom_score_map_; - EXPECT_EQ(6U, oom_score_map.size()); + // 6 PIDs for apps + 2 PIDs for tabs. + EXPECT_EQ(6U + 2U, oom_score_map.size()); + + // Non-killable part. AdjustOomPrioritiesImpl() does make a focused app/tab + // kernel-killable, but does not do that for PERSISTENT and PERSISTENT_UI + // apps. + EXPECT_EQ(TabManagerDelegate::kLowestOomScore, oom_score_map[50]); + EXPECT_EQ(TabManagerDelegate::kLowestOomScore, oom_score_map[60]); // Higher priority part. EXPECT_EQ(300, oom_score_map[10]); @@ -368,6 +383,9 @@ arc_processes.emplace_back(5, 50, "not-visible", arc::mojom::ProcessState::IMPORTANT_BACKGROUND, kNotFocused, 300); + arc_processes.emplace_back(6, 60, "persistent", + arc::mojom::ProcessState::PERSISTENT, kNotFocused, + 400); TabStats tab1, tab2, tab3, tab4, tab5; tab1.is_pinned = true; @@ -392,8 +410,9 @@ tab5.tab_contents_id = 5; TabStatsList tab_list = {tab1, tab2, tab3, tab4, tab5}; - // Sorted order: + // Sorted order (by GetSortedCandidates): // app "focused" pid: 10 nspid 1 + // app "persistent" pid: 60 nspid 6 // app "visible1" pid: 20 nspid 2 // app "visible2" pid: 40 nspid 4 // tab3 pid: 12 tab_contents_id 3 @@ -410,6 +429,7 @@ memory_stat->SetProcessPss(11, 200000); memory_stat->SetProcessPss(12, 30000); // Should not be used. + memory_stat->SetProcessPss(60, 500000); memory_stat->SetProcessPss(40, 50000); memory_stat->SetProcessPss(20, 30000); memory_stat->SetProcessPss(10, 100000);
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc index 723fdac..356fffc 100644 --- a/chrome/browser/memory_details.cc +++ b/chrome/browser/memory_details.cc
@@ -97,7 +97,8 @@ num_open_fds(-1), open_fds_soft_limit(-1), renderer_type(RENDERER_UNKNOWN), - phys_footprint(0) {} + phys_footprint(0), + private_memory_footprint(0) {} ProcessMemoryInformation::ProcessMemoryInformation( const ProcessMemoryInformation& other) = default;
diff --git a/chrome/browser/memory_details.h b/chrome/browser/memory_details.h index 5f6b259..b0f84af9 100644 --- a/chrome/browser/memory_details.h +++ b/chrome/browser/memory_details.h
@@ -72,6 +72,9 @@ // The physical footprint is a macOS concept that tracks anonymous, // non-discardable memory. size_t phys_footprint; + // TODO(erikchen): Remove this temporary estimate for private memory once the + // memory infra service emits the same metric. https://crbug.com/720541. + size_t private_memory_footprint; }; typedef std::vector<ProcessMemoryInformation> ProcessMemoryInformationList;
diff --git a/chrome/browser/memory_details_mac.cc b/chrome/browser/memory_details_mac.cc index 571e739d..30d9e86 100644 --- a/chrome/browser/memory_details_mac.cc +++ b/chrome/browser/memory_details_mac.cc
@@ -14,6 +14,7 @@ #include "base/file_version_info.h" #include "base/files/file_path.h" #include "base/mac/foundation_util.h" +#include "base/mac/mac_util.h" #include "base/process/process_iterator.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" @@ -62,7 +63,16 @@ base::ProcessMetrics::CreateProcessMetrics( pid, content::BrowserChildProcessHost::GetPortProvider()); metrics->GetCommittedAndWorkingSetKBytes(&info.committed, &info.working_set); - info.phys_footprint = metrics->GetTaskVMInfo().phys_footprint; + base::ProcessMetrics::TaskVMInfo vm_info = metrics->GetTaskVMInfo(); + info.phys_footprint = vm_info.phys_footprint; + + // TODO(erikchen): Remove this temporary estimate for private memory once the + // memory infra service emits the same metric. https://crbug.com/720541. + if (base::mac::IsAtLeastOS10_12()) { + info.private_memory_footprint = vm_info.phys_footprint; + } else { + info.private_memory_footprint = vm_info.internal + vm_info.compressed; + } processes->push_back(info); }
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc index 5adb54f..4a2fb00e 100644 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -82,6 +82,7 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" #include "components/sync/device_info/device_count_metrics_provider.h" +#include "components/ukm/debug_page/debug_page.h" #include "components/ukm/ukm_service.h" #include "components/version_info/version_info.h" #include "content/public/browser/browser_thread.h" @@ -279,6 +280,10 @@ } #endif // OS_WIN +ukm::UkmService* BindableGetUkmService() { + return g_browser_process->ukm_service(); +} + } // namespace const char ChromeMetricsServiceClient::kBrowserMetricsName[] = "BrowserMetrics"; @@ -926,6 +931,9 @@ } void ChromeMetricsServiceClient::RegisterForProfileEvents(Profile* profile) { + // Register chrome://ukm handler + content::URLDataSource::Add( + profile, new ukm::debug::DebugPage(base::Bind(&BindableGetUkmService))); #if defined(OS_CHROMEOS) // Ignore the signin profile for sync disables / history deletion. if (chromeos::ProfileHelper::IsSigninProfile(profile))
diff --git a/chrome/browser/metrics/metrics_memory_details.cc b/chrome/browser/metrics/metrics_memory_details.cc index 2b9bc7d3..544fe24b 100644 --- a/chrome/browser/metrics/metrics_memory_details.cc +++ b/chrome/browser/metrics/metrics_memory_details.cc
@@ -108,6 +108,11 @@ UMA_HISTOGRAM_COUNTS_10000("Memory.Browser.OpenFDsSoftLimit", open_fds_soft_limit); } +#if defined(OS_MACOSX) + UMA_HISTOGRAM_MEMORY_LARGE_MB( + "Memory.Experimental.Browser.PrivateMemoryFootprint.MacOS", + browser.processes[index].private_memory_footprint / 1024 / 1024); +#endif continue; case content::PROCESS_TYPE_RENDERER: { UMA_HISTOGRAM_MEMORY_LARGE_MB("Memory.RendererAll", sample / 1024); @@ -129,6 +134,12 @@ num_open_fds); } extension_count++; +#if defined(OS_MACOSX) + UMA_HISTOGRAM_MEMORY_LARGE_MB( + "Memory.Experimental.Extension.PrivateMemoryFootprint.MacOS", + browser.processes[index].private_memory_footprint / 1024 / + 1024); +#endif continue; case ProcessMemoryInformation::RENDERER_CHROME: UMA_HISTOGRAM_MEMORY_KB("Memory.Chrome", sample); @@ -141,6 +152,12 @@ continue; case ProcessMemoryInformation::RENDERER_NORMAL: default: +#if defined(OS_MACOSX) + UMA_HISTOGRAM_MEMORY_LARGE_MB( + "Memory.Experimental.Renderer.PrivateMemoryFootprint.MacOS", + browser.processes[index].private_memory_footprint / 1024 / + 1024); +#endif // TODO(erikkay): Should we bother splitting out the other subtypes? UMA_HISTOGRAM_MEMORY_LARGE_MB("Memory.Renderer.Large2", sample / 1024); @@ -182,6 +199,9 @@ "Memory.Experimental.Gpu.PhysicalFootprint.MacOS", browser.processes[index].phys_footprint / 1024 / 1024); } + UMA_HISTOGRAM_MEMORY_LARGE_MB( + "Memory.Experimental.Gpu.PrivateMemoryFootprint.MacOS", + browser.processes[index].private_memory_footprint / 1024 / 1024); #endif UMA_HISTOGRAM_MEMORY_KB("Memory.Gpu", sample); if (num_open_fds != -1 && open_fds_soft_limit != -1) {
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc index c75afcf..c6a2dd4 100644 --- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc +++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
@@ -313,8 +313,12 @@ void MetricsWebContentsObserver::DidFinishNavigation( content::NavigationHandle* navigation_handle) { - if (!navigation_handle->IsInMainFrame() && committed_load_) { - committed_load_->DidFinishSubFrameNavigation(navigation_handle); + if (!navigation_handle->IsInMainFrame()) { + if (committed_load_ && navigation_handle->GetParentFrame() && + GetMainFrame(navigation_handle->GetParentFrame()) == + web_contents()->GetMainFrame()) { + committed_load_->DidFinishSubFrameNavigation(navigation_handle); + } return; }
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/srt_fetcher_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/srt_fetcher_win.cc index 3c9fd41..57e910f 100644 --- a/chrome/browser/safe_browsing/chrome_cleaner/srt_fetcher_win.cc +++ b/chrome/browser/safe_browsing/chrome_cleaner/srt_fetcher_win.cc
@@ -699,9 +699,11 @@ ? base::Bind(&SwReporterTestingDelegate::OnConnectionError, base::Unretained(g_testing_delegate_)) : base::Bind(&OnConnectionError); - invitation.Send(reporter_process.Handle(), - mojo::edk::ConnectionParams(channel.PassServerHandle()), - on_connection_error); + invitation.Send( + reporter_process.Handle(), + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + channel.PassServerHandle()), + on_connection_error); return reporter_process; }
diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc index e496d89..cf86778b 100644 --- a/chrome/browser/spellchecker/spellcheck_service.cc +++ b/chrome/browser/spellchecker/spellcheck_service.cc
@@ -20,9 +20,8 @@ #include "components/spellcheck/browser/spellcheck_host_metrics.h" #include "components/spellcheck/browser/spellcheck_platform.h" #include "components/spellcheck/browser/spelling_service_client.h" -#include "components/spellcheck/common/spellcheck_bdict_language.h" +#include "components/spellcheck/common/spellcheck.mojom.h" #include "components/spellcheck/common/spellcheck_common.h" -#include "components/spellcheck/common/spellcheck_messages.h" #include "components/spellcheck/spellcheck_build_features.h" #include "components/user_prefs/user_prefs.h" #include "content/public/browser/browser_context.h" @@ -31,7 +30,6 @@ #include "content/public/browser/notification_types.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/storage_partition.h" -#include "ipc/ipc_platform_file.h" using content::BrowserThread; @@ -174,27 +172,27 @@ if (SpellcheckServiceFactory::GetForContext(context) != this) return; - PrefService* prefs = user_prefs::UserPrefs::Get(context); - std::vector<SpellCheckBDictLanguage> bdict_languages; + const PrefService* prefs = user_prefs::UserPrefs::Get(context); + std::vector<spellcheck::mojom::SpellCheckBDictLanguagePtr> dictionaries; for (const auto& hunspell_dictionary : hunspell_dictionaries_) { - bdict_languages.push_back(SpellCheckBDictLanguage()); - bdict_languages.back().language = hunspell_dictionary->GetLanguage(); - bdict_languages.back().file = - hunspell_dictionary->GetDictionaryFile().IsValid() - ? IPC::GetPlatformFileForTransit( - hunspell_dictionary->GetDictionaryFile().GetPlatformFile(), - false) - : IPC::InvalidPlatformFileForTransit(); + dictionaries.push_back(spellcheck::mojom::SpellCheckBDictLanguage::New( + hunspell_dictionary->GetDictionaryFile().Duplicate(), + hunspell_dictionary->GetLanguage())); } - bool enabled = - prefs->GetBoolean(spellcheck::prefs::kEnableSpellcheck) && - !bdict_languages.empty(); - process->Send(new SpellCheckMsg_Init( - bdict_languages, - enabled ? custom_dictionary_->GetWords() : std::set<std::string>())); - process->Send(new SpellCheckMsg_EnableSpellCheck(enabled)); + bool enable = prefs->GetBoolean(spellcheck::prefs::kEnableSpellcheck) && + !dictionaries.empty(); + + std::vector<std::string> custom_words; + if (enable) { + custom_words.assign(custom_dictionary_->GetWords().begin(), + custom_dictionary_->GetWords().end()); + } + + spellcheck::mojom::SpellCheckerPtr spellchecker; + content::BindInterface(process, &spellchecker); + spellchecker->Initialize(std::move(dictionaries), custom_words, enable); } SpellCheckHostMetrics* SpellcheckService::GetMetrics() const { @@ -257,13 +255,20 @@ } void SpellcheckService::OnCustomDictionaryChanged( - const SpellcheckCustomDictionary::Change& dictionary_change) { - for (content::RenderProcessHost::iterator i( - content::RenderProcessHost::AllHostsIterator()); - !i.IsAtEnd(); i.Advance()) { - i.GetCurrentValue()->Send(new SpellCheckMsg_CustomDictionaryChanged( - dictionary_change.to_add(), - dictionary_change.to_remove())); + const SpellcheckCustomDictionary::Change& change) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + + auto process_hosts(content::RenderProcessHost::AllHostsIterator()); + + const std::vector<std::string> additions(change.to_add().begin(), + change.to_add().end()); + const std::vector<std::string> deletions(change.to_remove().begin(), + change.to_remove().end()); + while (!process_hosts.IsAtEnd()) { + spellcheck::mojom::SpellCheckerPtr spellchecker; + content::BindInterface(process_hosts.GetCurrentValue(), &spellchecker); + spellchecker->CustomDictionaryChanged(additions, deletions); + process_hosts.Advance(); } }
diff --git a/chrome/browser/spellchecker/spellcheck_service.h b/chrome/browser/spellchecker/spellcheck_service.h index 5e593fe03..6a518d0 100644 --- a/chrome/browser/spellchecker/spellcheck_service.h +++ b/chrome/browser/spellchecker/spellcheck_service.h
@@ -130,7 +130,7 @@ // SpellcheckCustomDictionary::Observer implementation. void OnCustomDictionaryLoaded() override; void OnCustomDictionaryChanged( - const SpellcheckCustomDictionary::Change& dictionary_change) override; + const SpellcheckCustomDictionary::Change& change) override; // SpellcheckHunspellDictionary::Observer implementation. void OnHunspellDictionaryInitialized(const std::string& language) override;
diff --git a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc index 21fe47eb..533eeabd 100644 --- a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc +++ b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
@@ -29,8 +29,8 @@ #include "chrome/test/base/in_process_browser_test.h" #include "components/prefs/pref_service.h" #include "components/spellcheck/browser/pref_names.h" +#include "components/spellcheck/common/spellcheck.mojom.h" #include "components/spellcheck/common/spellcheck_common.h" -#include "components/spellcheck/common/spellcheck_messages.h" #include "components/user_prefs/user_prefs.h" #include "content/public/test/mock_render_process_host.h" #include "content/public/test/test_utils.h" @@ -51,32 +51,20 @@ 0x49, 0x00, 0x68, 0x02, 0x73, 0x06, 0x74, 0x0b, 0x77, 0x11, 0x79, 0x15, }; -// Clears IPC messages before a preference change. Runs the runloop after the -// preference change. -class ScopedPreferenceChange { - public: - explicit ScopedPreferenceChange(IPC::TestSink* sink) { - sink->ClearMessages(); - } - - ~ScopedPreferenceChange() { - base::RunLoop().RunUntilIdle(); - } - - private: - DISALLOW_COPY_AND_ASSIGN(ScopedPreferenceChange); -}; - } // namespace -class SpellcheckServiceBrowserTest : public InProcessBrowserTest { +class SpellcheckServiceBrowserTest : public InProcessBrowserTest, + public spellcheck::mojom::SpellChecker { public: + SpellcheckServiceBrowserTest() : binding_(this) {} + void SetUpOnMainThread() override { renderer_.reset(new content::MockRenderProcessHost(GetContext())); prefs_ = user_prefs::UserPrefs::Get(GetContext()); } void TearDownOnMainThread() override { + binding_.Close(); prefs_ = nullptr; renderer_.reset(); } @@ -101,26 +89,43 @@ base::SplitString(multiple_dictionaries, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)); prefs_->Set(spellcheck::prefs::kSpellCheckDictionaries, dictionaries_value); + SpellcheckService* spellcheck = SpellcheckServiceFactory::GetForRenderProcessId(renderer_->GetID()); ASSERT_NE(nullptr, spellcheck); - spellcheck->InitForRenderer(renderer_.get()); + + // Override |renderer_| requests for the spellcheck::mojom::SpellChecker + // interface so we can test the SpellChecker request flow. + renderer_->OverrideBinderForTesting( + spellcheck::mojom::SpellChecker::Name_, + base::Bind(&SpellcheckServiceBrowserTest::Bind, + base::Unretained(this))); } void EnableSpellcheck(bool enable_spellcheck) { - ScopedPreferenceChange scope(&renderer_->sink()); prefs_->SetBoolean(spellcheck::prefs::kEnableSpellcheck, enable_spellcheck); } + void ChangeCustomDictionary() { + SpellcheckService* spellcheck = + SpellcheckServiceFactory::GetForRenderProcessId(renderer_->GetID()); + ASSERT_NE(nullptr, spellcheck); + + SpellcheckCustomDictionary::Change change; + change.RemoveWord("1"); + change.AddWord("2"); + change.AddWord("3"); + + spellcheck->OnCustomDictionaryChanged(change); + } + void SetSingleLanguageDictionary(const std::string& single_dictionary) { - ScopedPreferenceChange scope(&renderer_->sink()); prefs_->SetString(spellcheck::prefs::kSpellCheckDictionary, single_dictionary); } void SetMultiLingualDictionaries(const std::string& multiple_dictionaries) { - ScopedPreferenceChange scope(&renderer_->sink()); base::ListValue dictionaries_value; dictionaries_value.AppendStrings( base::SplitString(multiple_dictionaries, ",", base::TRIM_WHITESPACE, @@ -141,35 +146,87 @@ } void SetAcceptLanguages(const std::string& accept_languages) { - ScopedPreferenceChange scope(&renderer_->sink()); prefs_->SetString(prefs::kAcceptLanguages, accept_languages); } - // Returns the boolean parameter sent in the first - // SpellCheckMsg_EnableSpellCheck message. For example, if spellcheck service - // sent the SpellCheckMsg_EnableSpellCheck(true) message, then this method - // returns true. - bool GetFirstEnableSpellcheckMessageParam() { - const IPC::Message* message = renderer_->sink().GetFirstMessageMatching( - SpellCheckMsg_EnableSpellCheck::ID); - EXPECT_NE(nullptr, message); - if (!message) - return false; + bool GetEnableSpellcheckState(bool initial_state = false) { + spellcheck_enabled_state_ = initial_state; + RunTestRunLoop(); + EXPECT_TRUE(initialize_spellcheck_called_); + EXPECT_TRUE(bound_connection_closed_); + return spellcheck_enabled_state_; + } - SpellCheckMsg_EnableSpellCheck::Param param; - bool ok = SpellCheckMsg_EnableSpellCheck::Read(message, ¶m); - EXPECT_TRUE(ok); - if (!ok) - return false; - - return std::get<0>(param); + bool GetCustomDictionaryChangedState() { + RunTestRunLoop(); + EXPECT_TRUE(bound_connection_closed_); + return custom_dictionary_changed_called_; } private: + // Spins a RunLoop to deliver the Mojo SpellChecker request flow. + void RunTestRunLoop() { + bound_connection_closed_ = false; + initialize_spellcheck_called_ = false; + custom_dictionary_changed_called_ = false; + + base::RunLoop run_loop; + quit_ = run_loop.QuitClosure(); + run_loop.Run(); + } + + // Binds requests for the SpellChecker interface. + void Bind(mojo::ScopedMessagePipeHandle handle) { + binding_.Bind(std::move(handle)); + binding_.set_connection_error_handler( + base::Bind(&SpellcheckServiceBrowserTest::BoundConnectionClosed, + base::Unretained(this))); + } + + // The requester closes (disconnects) when done. + void BoundConnectionClosed() { + bound_connection_closed_ = true; + binding_.Close(); + if (quit_) + std::move(quit_).Run(); + } + + // spellcheck::mojom::SpellChecker: + void Initialize( + std::vector<spellcheck::mojom::SpellCheckBDictLanguagePtr> dictionaries, + const std::vector<std::string>& custom_words, + bool enable) override { + initialize_spellcheck_called_ = true; + spellcheck_enabled_state_ = enable; + } + + void CustomDictionaryChanged( + const std::vector<std::string>& words_added, + const std::vector<std::string>& words_removed) override { + custom_dictionary_changed_called_ = true; + EXPECT_EQ(1u, words_removed.size()); + EXPECT_EQ(2u, words_added.size()); + } + + // Mocked RenderProcessHost. std::unique_ptr<content::MockRenderProcessHost> renderer_; // Not owned preferences service. PrefService* prefs_; + + // Binding to receive the SpellChecker request flow. + mojo::Binding<spellcheck::mojom::SpellChecker> binding_; + + // Quits the RunLoop on SpellChecker request flow completion. + base::OnceClosure quit_; + + // Used to verify the SpellChecker request flow. + bool bound_connection_closed_; + bool custom_dictionary_changed_called_; + bool initialize_spellcheck_called_; + bool spellcheck_enabled_state_; + + DISALLOW_COPY_AND_ASSIGN(SpellcheckServiceBrowserTest); }; // Removing a spellcheck language from accept languages should remove it from @@ -195,10 +252,10 @@ // spellcheck' message to the renderer. IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, StartWithSpellcheck) { InitSpellcheck(true, "", "en-US,fr"); - EXPECT_TRUE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_TRUE(GetEnableSpellcheckState()); EnableSpellcheck(false); - EXPECT_FALSE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_FALSE(GetEnableSpellcheckState(true)); } // Starting with only a single-language spellcheck setting should send the @@ -207,10 +264,10 @@ IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, StartWithSingularLanguagePreference) { InitSpellcheck(true, "en-US", ""); - EXPECT_TRUE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_TRUE(GetEnableSpellcheckState()); SetMultiLingualDictionaries(""); - EXPECT_FALSE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_FALSE(GetEnableSpellcheckState(true)); } // Starting with a multi-language spellcheck setting should send the 'enable @@ -219,10 +276,10 @@ IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, StartWithMultiLanguagePreference) { InitSpellcheck(true, "", "en-US,fr"); - EXPECT_TRUE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_TRUE(GetEnableSpellcheckState()); SetMultiLingualDictionaries(""); - EXPECT_FALSE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_FALSE(GetEnableSpellcheckState(true)); } // Starting with both single-language and multi-language spellcheck settings @@ -231,10 +288,10 @@ IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, StartWithBothLanguagePreferences) { InitSpellcheck(true, "en-US", "en-US,fr"); - EXPECT_TRUE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_TRUE(GetEnableSpellcheckState()); SetMultiLingualDictionaries(""); - EXPECT_FALSE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_FALSE(GetEnableSpellcheckState(true)); } // Starting without spellcheck languages should send the 'disable spellcheck' @@ -244,10 +301,10 @@ IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, DISABLED_StartWithoutLanguages) { InitSpellcheck(true, "", ""); - EXPECT_FALSE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_FALSE(GetEnableSpellcheckState(true)); SetMultiLingualDictionaries("en-US"); - EXPECT_TRUE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_TRUE(GetEnableSpellcheckState()); } // Starting with spellcheck disabled should send the 'disable spellcheck' @@ -255,10 +312,26 @@ // 'enable spellcheck' message to the renderer. IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, StartWithoutSpellcheck) { InitSpellcheck(false, "", "en-US,fr"); - EXPECT_FALSE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_FALSE(GetEnableSpellcheckState(true)); EnableSpellcheck(true); - EXPECT_TRUE(GetFirstEnableSpellcheckMessageParam()); + EXPECT_TRUE(GetEnableSpellcheckState()); +} + +// A custom dictionary state change should send a 'custom dictionary changed' +// message to the renderer, regardless of the spellcheck enabled state. +IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, CustomDictionaryChanged) { + InitSpellcheck(true, "en-US", ""); + EXPECT_TRUE(GetEnableSpellcheckState()); + + ChangeCustomDictionary(); + EXPECT_TRUE(GetCustomDictionaryChangedState()); + + EnableSpellcheck(false); + EXPECT_FALSE(GetEnableSpellcheckState(true)); + + ChangeCustomDictionary(); + EXPECT_TRUE(GetCustomDictionaryChangedState()); } // Tests that we can delete a corrupted BDICT file used by hunspell. We do not
diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc index 52eca33..af36969 100644 --- a/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
@@ -27,6 +27,7 @@ #include "content/public/common/content_switches.h" #include "extensions/common/switches.h" #include "google_apis/gaia/gaia_switches.h" +#include "media/base/media_switches.h" #include "media/media_features.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" @@ -90,6 +91,10 @@ // getting the user's permission. switches::kUseFakeUIForMediaStream, + // This flag allows sites to access protected media identifiers without + // getting the user's permission. + switches::kUnsafelyAllowProtectedMediaIdentifierForDomain, + NULL };
diff --git a/chrome/browser/ui/views/payments/shipping_address_editor_view_controller.cc b/chrome/browser/ui/views/payments/shipping_address_editor_view_controller.cc index a5f43f9..de7486c 100644 --- a/chrome/browser/ui/views/payments/shipping_address_editor_view_controller.cc +++ b/chrome/browser/ui/views/payments/shipping_address_editor_view_controller.cc
@@ -334,7 +334,7 @@ success = profile->SetInfo(autofill::AutofillType(field.second.type), field.first->text(), locale); } - DCHECK(success || ignore_errors) + LOG_IF(ERROR, success || ignore_errors) << "Can't setinfo(" << field.second.type << ", " << field.first->text(); if (!success && !ignore_errors) return false; @@ -356,9 +356,8 @@ combobox->GetTextForRow(combobox->selected_index()), locale); } } - DCHECK(success || ignore_errors) + LOG_IF(ERROR, success || ignore_errors) << "Can't setinfo(" << field.second.type << ", " - << combobox->GetTextForRow(combobox->selected_index()); if (!success && !ignore_errors) return false;
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc index b7361f37..f620dc4 100644 --- a/chrome/common/url_constants.cc +++ b/chrome/common/url_constants.cc
@@ -823,7 +823,7 @@ const char kBluetoothAdapterOffHelpURL[] = #if defined(OS_CHROMEOS) - "chrome://settings/search#Bluetooth"; + "chrome://settings/#Bluetooth"; #else "https://support.google.com/chrome?p=bluetooth"; #endif
diff --git a/chrome/renderer/extensions/app_bindings.cc b/chrome/renderer/extensions/app_bindings.cc index 2904e0a..cac2d72e 100644 --- a/chrome/renderer/extensions/app_bindings.cc +++ b/chrome/renderer/extensions/app_bindings.cc
@@ -6,13 +6,7 @@ #include <memory> -#include "base/command_line.h" -#include "base/macros.h" -#include "base/strings/string16.h" -#include "base/strings/string_util.h" -#include "base/strings/utf_string_conversions.h" #include "base/values.h" -#include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension_constants.h" #include "content/public/child/v8_value_converter.h" #include "content/public/renderer/render_frame.h" @@ -20,9 +14,7 @@ #include "extensions/common/extension_messages.h" #include "extensions/common/extension_set.h" #include "extensions/common/manifest.h" -#include "extensions/renderer/console.h" #include "extensions/renderer/dispatcher.h" -#include "extensions/renderer/extension_helper.h" #include "extensions/renderer/renderer_extension_registry.h" #include "extensions/renderer/script_context.h" #include "third_party/WebKit/public/web/WebDocument.h" @@ -34,12 +26,6 @@ namespace extensions { -namespace { - -const char kInvalidCallbackIdError[] = "Invalid callbackId"; - -} // namespace - AppBindings::AppBindings(Dispatcher* dispatcher, ScriptContext* context) : ObjectBackedNativeHandler(context), dispatcher_(dispatcher) { @@ -77,7 +63,7 @@ } v8::Local<v8::Value> AppBindings::GetDetailsImpl(blink::WebLocalFrame* frame) { - v8::Isolate* isolate = frame->MainWorldScriptContext()->GetIsolate(); + v8::Isolate* isolate = context()->isolate(); if (frame->GetDocument().GetSecurityOrigin().IsUnique()) return v8::Null(isolate); @@ -92,22 +78,15 @@ extension->manifest()->value()->DeepCopy()); manifest_copy->SetString("id", extension->id()); std::unique_ptr<V8ValueConverter> converter(V8ValueConverter::create()); - return converter->ToV8Value(manifest_copy.get(), - frame->MainWorldScriptContext()); + return converter->ToV8Value(manifest_copy.get(), context()->v8_context()); } void AppBindings::GetInstallState( const v8::FunctionCallbackInfo<v8::Value>& args) { // Get the callbackId. - int callback_id = 0; - if (args.Length() == 1) { - if (!args[0]->IsInt32()) { - context()->isolate()->ThrowException(v8::String::NewFromUtf8( - context()->isolate(), kInvalidCallbackIdError)); - return; - } - callback_id = args[0]->Int32Value(); - } + CHECK_EQ(1, args.Length()); + CHECK(args[0]->IsInt32()); + int callback_id = args[0]->Int32Value(); content::RenderFrame* render_frame = context()->GetRenderFrame(); CHECK(render_frame); @@ -119,16 +98,15 @@ void AppBindings::GetRunningState( const v8::FunctionCallbackInfo<v8::Value>& args) { + url::Origin top_origin = context()->web_frame()->Top()->GetSecurityOrigin(); + // To distinguish between ready_to_run and cannot_run states, we need the app // from the top frame. - blink::WebSecurityOrigin top_frame_security_origin = - context()->web_frame()->Top()->GetSecurityOrigin(); const RendererExtensionRegistry* extensions = RendererExtensionRegistry::Get(); // The app associated with the top level frame. - const Extension* top_app = extensions->GetHostedAppByURL( - GURL(top_frame_security_origin.ToString().Utf8())); + const Extension* top_app = extensions->GetHostedAppByURL(top_origin.GetURL()); // The app associated with this frame. const Extension* this_app = extensions->GetHostedAppByURL(
diff --git a/chrome/renderer/extensions/app_bindings.h b/chrome/renderer/extensions/app_bindings.h index 63b5996..9f1fead 100644 --- a/chrome/renderer/extensions/app_bindings.h +++ b/chrome/renderer/extensions/app_bindings.h
@@ -11,11 +11,13 @@ #ifndef CHROME_RENDERER_EXTENSIONS_APP_BINDINGS_H_ #define CHROME_RENDERER_EXTENSIONS_APP_BINDINGS_H_ -#include "base/compiler_specific.h" #include "base/macros.h" #include "chrome/renderer/extensions/chrome_v8_extension_handler.h" #include "extensions/renderer/object_backed_native_handler.h" -#include "third_party/WebKit/public/web/WebFrame.h" + +namespace blink { +class WebLocalFrame; +} namespace extensions { class Dispatcher;
diff --git a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc index 61b51afbd..c2c6ed2 100644 --- a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc +++ b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc
@@ -42,6 +42,7 @@ #include "extensions/renderer/script_context.h" #include "media/media_features.h" #include "third_party/WebKit/public/platform/WebString.h" +#include "third_party/WebKit/public/platform/WebURL.h" #include "third_party/WebKit/public/web/WebSecurityPolicy.h" #if BUILDFLAG(ENABLE_WEBRTC)
diff --git a/chrome/renderer/resources/extensions/app_custom_bindings.js b/chrome/renderer/resources/extensions/app_custom_bindings.js index 4d58054b..1ef181ca 100644 --- a/chrome/renderer/resources/extensions/app_custom_bindings.js +++ b/chrome/renderer/resources/extensions/app_custom_bindings.js
@@ -35,13 +35,21 @@ // // So, define it manually, and let the getIsInstalled function act as its // documentation. -app.__defineGetter__('isInstalled', wrapForLogging(appNatives.GetIsInstalled)); +var isInstalled = wrapForLogging(appNatives.GetIsInstalled); +$Object.defineProperty( + app, 'isInstalled', + { + __proto__: null, + configurable: true, + enumerable: true, + get: function() { return isInstalled(); }, + }); // Called by app_bindings.cc. function onInstallStateResponse(state, callbackId) { var callback = callbacks[callbackId]; delete callbacks[callbackId]; - if (typeof(callback) == 'function') { + if (typeof callback == 'function') { try { callback(state); } catch (e) { @@ -52,16 +60,24 @@ } // TODO(kalman): move this stuff to its own custom bindings. -var callbacks = {}; +var callbacks = { __proto__: null }; var nextCallbackId = 1; -app.installState = function getInstallState(callback) { +function getInstallState(callback) { var callbackId = nextCallbackId++; callbacks[callbackId] = callback; appNatives.GetInstallState(callbackId); -}; -if (extensionId) - app.installState = wrapForLogging(app.installState); +} + +$Object.defineProperty( + app, 'installState', + { + __proto__: null, + configurable: true, + enumerable: true, + value: wrapForLogging(getInstallState), + writable: true, + }); exports.$set('binding', app); exports.$set('onInstallStateResponse', onInstallStateResponse);
diff --git a/chrome/service/service_utility_process_host.cc b/chrome/service/service_utility_process_host.cc index d440ccf..77af2c7 100644 --- a/chrome/service/service_utility_process_host.cc +++ b/chrome/service/service_utility_process_host.cc
@@ -277,7 +277,8 @@ if (success) { broker_client_invitation_.Send( process_.Handle(), - mojo::edk::ConnectionParams(std::move(parent_handle))); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + std::move(parent_handle))); } return success;
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index fe4b390..d4c30117 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -4102,7 +4102,10 @@ "../browser/ui/input_method/input_method_engine_unittest.cc", ] } - if (!is_android && !is_chromeos) { + + if (is_android || is_chromeos) { + sources += [ "../browser/media/protected_media_identifier_permission_context_unittest.cc" ] + } else { sources += [ "../browser/net/disk_cache_dir_policy_handler_unittest.cc", "//chrome/browser/profiles/profile_list_desktop_unittest.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RenderUtils.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RenderUtils.java index 8543851..221f03c7 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RenderUtils.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RenderUtils.java
@@ -7,6 +7,7 @@ import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Color; import android.graphics.Point; import android.os.Build; import android.view.View; @@ -28,8 +29,12 @@ public class RenderUtils { private static final String TAG = "RenderUtils"; + private static final String DIFF_FOLDER_RELATIVE = "/diffs"; + private static final String FAILURE_FOLDER_RELATIVE = "/failures"; + private static final String GOLDEN_FOLDER_RELATIVE = "/goldens"; + /** * This is a list of devices that we maintain golden images for. If render tests are being run * on a device in this list, golden images should exist and their absence is a test failure. @@ -45,6 +50,11 @@ */ private static final boolean REPORT_ONLY_DO_NOT_FAIL = true; + /** + * How many pixels can be different in an image before counting the images as different. + */ + private static final int PIXEL_DIFF_THRESHOLD = 0; + private enum ComparisonResult { MATCH, MISMATCH, GOLDEN_NOT_FOUND } /** @@ -72,11 +82,19 @@ private final Activity mActivity; private final String mGoldenFolder; private final String mTestClass; + private String mOutputDirectory; public ViewRenderer(Activity activity, String goldenFolder, String testClass) { mActivity = activity; mGoldenFolder = goldenFolder; mTestClass = testClass; + + // Render test will output results to subdirectory of |goldenFolder| unless + // --render-test-output-dir is passed. + mOutputDirectory = CommandLine.getInstance().getSwitchValue("render-test-output-dir"); + if (mOutputDirectory == null) { + mOutputDirectory = UrlUtils.getIsolatedTestFilePath(mGoldenFolder); + } } /** @@ -93,20 +111,34 @@ */ public void renderAndCompare(final View view, String id) throws IOException { // Compare the image against the Golden. - Bitmap bitmap = ThreadUtils.runOnUiThreadBlockingNoException(new Callable<Bitmap>() { - @Override - public Bitmap call() throws Exception { - return UiUtils.generateScaledScreenshot(view, 0, Bitmap.Config.ARGB_8888); - } - }); + Bitmap testBitmap = + ThreadUtils.runOnUiThreadBlockingNoException(new Callable<Bitmap>() { + @Override + public Bitmap call() throws Exception { + return UiUtils.generateScaledScreenshot( + view, 0, Bitmap.Config.ARGB_8888); + } + }); String imagename = imageName(mActivity, mTestClass, id); - File goldenFile = createPath(mGoldenFolder, imagename); - ComparisonResult result = compareBmpToGolden(bitmap, goldenFile); - if (REPORT_ONLY_DO_NOT_FAIL && !isGenerateMode()) { - Log.d(TAG, "Image comparison for %s: %s", id, result.name()); - return; + File goldenFile = + createPath(UrlUtils.getIsolatedTestFilePath(mGoldenFolder), imagename); + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inPreferredConfig = testBitmap.getConfig(); + Bitmap goldenBitmap = BitmapFactory.decodeFile(goldenFile.getAbsolutePath(), options); + + Bitmap diffBitmap = null; + ComparisonResult result = null; + + if (goldenBitmap == null) { + result = ComparisonResult.GOLDEN_NOT_FOUND; + } else { + diffBitmap = Bitmap.createBitmap( + Math.max(testBitmap.getWidth(), goldenBitmap.getWidth()), + Math.max(testBitmap.getHeight(), goldenBitmap.getHeight()), + testBitmap.getConfig()); + result = compareBitmapToGolden(testBitmap, goldenBitmap, diffBitmap); } if (result == ComparisonResult.MATCH) { @@ -116,12 +148,28 @@ return; } - // Save the rendered View. - File failureFile = createPath(mGoldenFolder + FAILURE_FOLDER_RELATIVE, imagename); - saveBitmap(bitmap, failureFile); + File failureOutputFile = + createPath(mOutputDirectory + FAILURE_FOLDER_RELATIVE, imagename); + saveBitmap(testBitmap, failureOutputFile); + + if (result != ComparisonResult.GOLDEN_NOT_FOUND) { + File goldenOutputFile = + createPath(mOutputDirectory + GOLDEN_FOLDER_RELATIVE, imagename); + saveBitmap(goldenBitmap, goldenOutputFile); + + File diffOutputFile = + createPath(mOutputDirectory + DIFF_FOLDER_RELATIVE, imagename); + saveBitmap(diffBitmap, diffOutputFile); + } if (isGenerateMode()) { - Log.i(TAG, "%s - generated image saved to %s.", id, failureFile.getAbsolutePath()); + Log.i(TAG, "%s - generated image saved to %s.", id, + failureOutputFile.getAbsolutePath()); + return; + } + + if (REPORT_ONLY_DO_NOT_FAIL) { + Log.d(TAG, "Image comparison for %s: %s", id, result.name()); return; } @@ -137,8 +185,7 @@ } else if (result == ComparisonResult.MISMATCH) { throw new ImageMismatchException( String.format("Image comparison failed on %s. Failure image saved to %s.", - id, failureFile.getAbsolutePath())); - + id, failureOutputFile.getAbsolutePath())); } } } @@ -163,6 +210,9 @@ /** * Creates an image name combining the image description with details about the device * (eg model, current orientation). + * + * This function must be kept in sync with |RE_RENDER_IMAGE_NAME| from + * src/build/android/pylib/local/device/local_device_instrumentation_test_run.py. */ private static String imageName(Activity activity, String testClass, String desc) { Point outSize = new Point(); @@ -185,14 +235,13 @@ } /** - * Convenience method to create a File pointing to |filename| in |folder| in the external - * storage directory. + * Convenience method to create a File pointing to |filename| in |folder|. * @throws IOException */ private static File createPath(String folder, String filename) throws IOException { - File path = new File(UrlUtils.getIsolatedTestFilePath(folder)); + File path = new File(folder); if (!path.exists()) { - if (!path.mkdir()) { + if (!path.mkdirs()) { throw new IOException("Could not create " + path.getAbsolutePath()); } } @@ -202,12 +251,111 @@ /** * Returns whether the given |bitmap| is equal to the one stored in |file|. */ - private static ComparisonResult compareBmpToGolden(Bitmap bitmap, File file) { - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = bitmap.getConfig(); - Bitmap golden = BitmapFactory.decodeFile(file.getAbsolutePath(), options); + private static ComparisonResult compareBitmapToGolden(Bitmap test, Bitmap golden, Bitmap diff) { + int maxWidth = Math.max(test.getWidth(), golden.getWidth()); + int maxHeight = Math.max(test.getHeight(), golden.getHeight()); + int minWidth = Math.min(test.getWidth(), golden.getWidth()); + int minHeight = Math.min(test.getHeight(), golden.getHeight()); - if (golden == null) return ComparisonResult.GOLDEN_NOT_FOUND; - return bitmap.sameAs(golden) ? ComparisonResult.MATCH : ComparisonResult.MISMATCH; + int diffPixelsCount = comparePixels(test, golden, diff, 0, 0, minWidth, 0, minHeight) + + compareSizes(diff, minWidth, maxWidth, minHeight, maxHeight); + + if (diffPixelsCount > PIXEL_DIFF_THRESHOLD) { + return ComparisonResult.MISMATCH; + } + return ComparisonResult.MATCH; + } + + /** + * Compares two bitmaps pixel-wise. + * + * @param testImage Bitmap of test image. + * + * @param goldenImage Bitmap of golden image. + * + * @param diffImage This is an output argument. Function will set pixels in the |diffImage| to + * either transparent or red depending on whether that pixel differed in the golden and test + * bitmaps. diffImage should have its width and height be the max width and height of the + * golden and test bitmaps. + * + * @param diffThreshold Threshold for when to consider two color values as different. These + * values are 8 bit (256) so this threshold value should be in range 0-256. + * + * @param startWidth Start x-coord to start diffing the Bitmaps. + * + * @param endWidth End x-coord to start diffing the Bitmaps. + * + * @param startHeight Start y-coord to start diffing the Bitmaps. + * + * @param endHeight End x-coord to start diffing the Bitmaps. + * + * @return Returns number of pixels that differ between |goldenImage| and |testImage| + */ + private static int comparePixels(Bitmap testImage, Bitmap goldenImage, Bitmap diffImage, + int diffThreshold, int startWidth, int endWidth, int startHeight, int endHeight) { + int diffPixels = 0; + + for (int x = startWidth; x < endWidth; x++) { + for (int y = startHeight; y < endHeight; y++) { + int goldenImageColor = goldenImage.getPixel(x, y); + int testImageColor = testImage.getPixel(x, y); + + int redDiff = Math.abs(Color.red(goldenImageColor) - Color.red(testImageColor)); + int blueDiff = + Math.abs(Color.green(goldenImageColor) - Color.green(testImageColor)); + int greenDiff = Math.abs(Color.blue(goldenImageColor) - Color.blue(testImageColor)); + int alphaDiff = + Math.abs(Color.alpha(goldenImageColor) - Color.alpha(testImageColor)); + + if (redDiff > diffThreshold || blueDiff > diffThreshold || greenDiff > diffThreshold + || alphaDiff > diffThreshold) { + diffPixels++; + diffImage.setPixel(x, y, Color.RED); + } else { + diffImage.setPixel(x, y, Color.TRANSPARENT); + } + } + } + return diffPixels; + } + + /** + * Compares two bitmaps size. + * + * @param diffImage This is an output argument. Function will set pixels in the |diffImage| to + * either transparent or red depending on whether that pixel coordinate occurs in the + * dimensions of the golden and not the test bitmap or vice-versa. + * + * @param minWidth Min width of golden and test bitmaps. + * + * @param maxWidth Max width of golden and test bitmaps. + * + * @param minHeight Min height of golden and test bitmaps. + * + * @param maxHeight Max height of golden and test bitmaps. + * + * @return Returns number of pixels that differ between |goldenImage| and |testImage| due to + * their size. + */ + private static int compareSizes( + Bitmap diffImage, int minWidth, int maxWidth, int minHeight, int maxHeight) { + int diffPixels = 0; + if (maxWidth > minWidth) { + for (int x = minWidth; x < maxWidth; x++) { + for (int y = 0; y < maxHeight; y++) { + diffImage.setPixel(x, y, Color.RED); + } + } + diffPixels += (maxWidth - minWidth) * maxHeight; + } + if (maxHeight > minHeight) { + for (int x = 0; x < maxWidth; x++) { + for (int y = minHeight; y < maxHeight; y++) { + diffImage.setPixel(x, y, Color.RED); + } + } + diffPixels += (maxHeight - minHeight) * minWidth; + } + return diffPixels; } }
diff --git a/chrome/test/base/mojo_test_connector.cc b/chrome/test/base/mojo_test_connector.cc index fc2d968..ebfa5087 100644 --- a/chrome/test/base/mojo_test_connector.cc +++ b/chrome/test/base/mojo_test_connector.cc
@@ -86,7 +86,8 @@ platform_channel_->ChildProcessLaunched(); broker_client_invitation_.Send( handle, - mojo::edk::ConnectionParams(platform_channel_->PassServerHandle())); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + platform_channel_->PassServerHandle())); main_task_runner_->PostTask(FROM_HERE, base::Bind(&MojoTestState::SetupService,
diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py index 8919513..18da3110 100755 --- a/chrome/test/chromedriver/test/run_py_tests.py +++ b/chrome/test/chromedriver/test/run_py_tests.py
@@ -73,8 +73,6 @@ _VERSION_SPECIFIC_FILTER = {} _VERSION_SPECIFIC_FILTER['HEAD'] = [ - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1803 - 'ChromeDriverTest.testAlertHandlingOnPageUnload', ] _VERSION_SPECIFIC_FILTER['58'] = [ # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1673 @@ -173,8 +171,6 @@ 'ChromeDriverTest.testHoverOverElement', # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1478 'ChromeDriverTest.testShouldHandleNewWindowLoadingProperly', - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1803 - 'ChromeDriverTest.testAlertHandlingOnPageUnload', ] ) _ANDROID_NEGATIVE_FILTER['chromedriver_webview_shell'] = ( @@ -681,6 +677,7 @@ def testAlertHandlingOnPageUnload(self): self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html')) self._driver.ExecuteScript('window.onbeforeunload=function(){return true}') + self._driver.FindElement('tag name', 'body').Click() self._driver.GoBack() self.assertTrue(self._driver.IsAlertOpen()) self._driver.HandleAlert(True)
diff --git a/chrome/test/data/extensions/signin_screen_test_app/app/background.js b/chrome/test/data/extensions/signin_screen_test_app/app/background.js index bab4458..6683e241 100644 --- a/chrome/test/data/extensions/signin_screen_test_app/app/background.js +++ b/chrome/test/data/extensions/signin_screen_test_app/app/background.js
@@ -2,4 +2,358 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -console.log('The sign-in screen test app loaded'); +// The background script of the test app. +// +// The app exposes a certificate to Chrome via chrome.certificateProvider API. +// This allows to test that the app and the API work by initiating an SSL +// connection that requests the client certificate. The app also tests +// displaying of the PIN dialog. Note that the app does NOT implement the real +// signing operation, therefore it's expected that the SSL connections will fail +// to establish in the end. +// +// Note that the debug output from this app is printed to the JavaScript +// console, which on the login screen may only be accessed via remote debugging. +// For instructions, please refer to: +// * https://chromedevtools.github.io/devtools-protocol/#remote +// * https://www.chromium.org/developers/how-tos/run-chromium-with-flags#TOC-Setting-Flags-for-Chrome-OS + + +// Raw contents of the DER-encoded X.509 certificate. +// Generated using the following command (assuming that the certificate was +// bundled in the PKCS #12 archive <path_to_pkcs12_file>): +// openssl pkcs12 -in <path_to_pkcs12_file> -nodes | \ +// openssl x509 -outform der | xxd -i +// Current certificate expires on Dec 15, 2017. +// In case an update is required, please reach out to the managed-devices@ +// mailing list. +var TEST_CERTIFICATE = + (new Uint8Array([ + 0x30, 0x82, 0x06, 0x78, 0x30, 0x82, 0x05, 0x60, 0xa0, 0x03, 0x02, 0x01, + 0x02, 0x02, 0x0a, 0x17, 0xa5, 0x51, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, + 0x01, 0x0a, 0x30, 0x00, 0x30, 0x64, 0x31, 0x13, 0x30, 0x11, 0x06, 0x0a, + 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x01, 0x19, 0x16, 0x03, + 0x6e, 0x65, 0x74, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x0a, 0x09, 0x92, 0x26, + 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x01, 0x19, 0x16, 0x0b, 0x74, 0x6f, 0x74, + 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x31, 0x12, 0x30, 0x10, + 0x06, 0x0a, 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x01, 0x19, + 0x16, 0x02, 0x61, 0x64, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, + 0x03, 0x13, 0x13, 0x54, 0x6f, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, + 0x17, 0x0d, 0x31, 0x36, 0x31, 0x32, 0x31, 0x35, 0x31, 0x34, 0x34, 0x34, + 0x31, 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x31, 0x32, 0x31, 0x35, 0x31, + 0x34, 0x34, 0x34, 0x31, 0x39, 0x5a, 0x30, 0x81, 0x9e, 0x31, 0x13, 0x30, + 0x11, 0x06, 0x0a, 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x01, + 0x19, 0x16, 0x03, 0x6e, 0x65, 0x74, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x0a, + 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x01, 0x19, 0x16, 0x0b, + 0x74, 0x6f, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x31, + 0x12, 0x30, 0x10, 0x06, 0x0a, 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, + 0x64, 0x01, 0x19, 0x16, 0x02, 0x61, 0x64, 0x31, 0x0e, 0x30, 0x0c, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x13, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x31, + 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0a, 0x61, 0x64, + 0x66, 0x73, 0x20, 0x74, 0x65, 0x73, 0x74, 0x31, 0x31, 0x31, 0x30, 0x2f, + 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, + 0x22, 0x61, 0x64, 0x66, 0x73, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x31, 0x40, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x6d, 0x61, + 0x64, 0x69, 0x63, 0x66, 0x65, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, + 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, + 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, + 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdf, 0xf4, 0x9a, 0x94, + 0xad, 0x0f, 0xf4, 0xaf, 0xd6, 0x0e, 0xc5, 0x15, 0xf9, 0x20, 0x73, 0xa3, + 0x73, 0x04, 0xb7, 0x6a, 0x32, 0xec, 0xa6, 0x1a, 0x91, 0x1f, 0x80, 0x1f, + 0xc6, 0xfa, 0x33, 0x17, 0x1d, 0x9b, 0xb3, 0xd5, 0xe1, 0x2f, 0xcf, 0x1e, + 0xfb, 0xd7, 0x43, 0xe9, 0xe8, 0x5f, 0x8e, 0x9d, 0x9e, 0x83, 0x9b, 0x95, + 0x98, 0x5d, 0x21, 0xd2, 0xc9, 0x8a, 0x45, 0x5f, 0x0f, 0x98, 0x84, 0xfa, + 0xe8, 0x0a, 0x7d, 0x9c, 0xab, 0xe6, 0xbe, 0x03, 0x18, 0x05, 0x2a, 0x46, + 0xf0, 0x03, 0x2b, 0xf1, 0x36, 0xf6, 0x1f, 0x0a, 0xac, 0x04, 0xd6, 0x22, + 0x0a, 0xce, 0x2c, 0x3f, 0x2f, 0x25, 0xd5, 0xad, 0x84, 0xf4, 0x6b, 0xd9, + 0xbe, 0x77, 0x78, 0xcb, 0xa3, 0xe4, 0x8c, 0x2c, 0x8d, 0xdc, 0x83, 0x61, + 0x18, 0x00, 0x0f, 0x2e, 0x2c, 0x57, 0x6b, 0xfa, 0xfb, 0x1d, 0x19, 0xf7, + 0x8b, 0x2f, 0xdc, 0x3c, 0xb5, 0x69, 0x44, 0xfa, 0x81, 0x7d, 0x3d, 0x26, + 0x84, 0xad, 0xe5, 0xe6, 0xce, 0x0f, 0x1b, 0x13, 0xf6, 0x60, 0xd4, 0x5d, + 0x3f, 0xce, 0x09, 0x2d, 0x2f, 0x71, 0xda, 0x3f, 0x88, 0x51, 0xe1, 0x75, + 0xcd, 0xf0, 0xbf, 0x84, 0xa8, 0xc5, 0xb5, 0x4e, 0x26, 0x59, 0x92, 0x0a, + 0x3f, 0x5f, 0x5f, 0xcd, 0xa8, 0x67, 0x4b, 0xed, 0x22, 0xa0, 0x0d, 0x41, + 0x31, 0x0a, 0x73, 0x10, 0x42, 0xa0, 0x08, 0xe1, 0x94, 0x1b, 0xd5, 0x3e, + 0x97, 0x2b, 0x53, 0x9c, 0x65, 0xd3, 0xc8, 0x1d, 0x56, 0x0e, 0x0b, 0x4d, + 0x32, 0x6d, 0x54, 0xfc, 0x5a, 0xa8, 0x3b, 0x61, 0xc1, 0xe2, 0xf7, 0x79, + 0x16, 0xec, 0x9e, 0x81, 0x58, 0xf6, 0x9b, 0x13, 0xd9, 0x2f, 0x9b, 0x3c, + 0x5c, 0x47, 0x87, 0xff, 0x5b, 0x8d, 0xc0, 0xbe, 0x34, 0xaf, 0xd3, 0x23, + 0xeb, 0x67, 0x5a, 0xa1, 0xff, 0x9a, 0xb2, 0xf3, 0xea, 0x74, 0xbc, 0x89, + 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x02, 0xef, 0x30, 0x82, 0x02, + 0xeb, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, + 0xbe, 0x17, 0x87, 0x1f, 0xa6, 0x79, 0xe3, 0xa6, 0x50, 0x93, 0x97, 0xa8, + 0x11, 0x60, 0x09, 0x45, 0x85, 0xd4, 0x87, 0xad, 0x30, 0x1f, 0x06, 0x03, + 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd0, 0xd1, 0x3f, + 0x7c, 0xcd, 0xc8, 0xe5, 0xff, 0x3f, 0x17, 0xb2, 0xfb, 0xc7, 0x51, 0xf1, + 0xbd, 0x99, 0x5d, 0x27, 0xc0, 0x30, 0x82, 0x01, 0x72, 0x06, 0x03, 0x55, + 0x1d, 0x1f, 0x04, 0x82, 0x01, 0x69, 0x30, 0x82, 0x01, 0x65, 0x30, 0x82, + 0x01, 0x61, 0xa0, 0x82, 0x01, 0x5d, 0xa0, 0x82, 0x01, 0x59, 0x86, 0x81, + 0xd1, 0x6c, 0x64, 0x61, 0x70, 0x3a, 0x2f, 0x2f, 0x2f, 0x43, 0x4e, 0x3d, + 0x54, 0x6f, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x25, + 0x32, 0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43, 0x41, 0x2c, + 0x43, 0x4e, 0x3d, 0x77, 0x69, 0x6e, 0x2d, 0x70, 0x6b, 0x69, 0x2d, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x30, 0x31, 0x2c, 0x43, 0x4e, 0x3d, 0x43, + 0x44, 0x50, 0x2c, 0x43, 0x4e, 0x3d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x25, 0x32, 0x30, 0x4b, 0x65, 0x79, 0x25, 0x32, 0x30, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2c, 0x43, 0x4e, 0x3d, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2c, 0x43, 0x4e, 0x3d, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x44, + 0x43, 0x3d, 0x61, 0x64, 0x2c, 0x44, 0x43, 0x3d, 0x74, 0x6f, 0x74, 0x68, + 0x65, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x2c, 0x44, 0x43, 0x3d, 0x6e, + 0x65, 0x74, 0x3f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x3f, 0x62, 0x61, 0x73, 0x65, 0x3f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x63, 0x52, + 0x4c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x86, 0x41, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x70, 0x6b, 0x69, 0x2e, 0x74, 0x6f, 0x74, 0x68, 0x65, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x43, + 0x65, 0x72, 0x74, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x2f, 0x54, 0x6f, + 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x25, 0x32, 0x30, + 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, 0x30, 0x43, 0x41, 0x2e, 0x63, 0x72, + 0x6c, 0x86, 0x40, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x2f, 0x2f, 0x5c, 0x5c, + 0x77, 0x69, 0x6e, 0x2d, 0x70, 0x6b, 0x69, 0x2d, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x30, 0x31, 0x5c, 0x43, 0x65, 0x72, 0x74, 0x45, 0x6e, 0x72, + 0x6f, 0x6c, 0x6c, 0x5c, 0x54, 0x6f, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x73, 0x25, 0x32, 0x30, 0x52, 0x6f, 0x6f, 0x74, 0x25, 0x32, + 0x30, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x08, 0x2b, + 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2f, 0x30, 0x2d, 0x30, + 0x2b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, + 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x70, 0x6b, 0x69, 0x2e, + 0x74, 0x6f, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x2e, + 0x6e, 0x65, 0x74, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x30, 0x17, 0x06, 0x09, + 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, 0x04, 0x0a, 0x1e, + 0x08, 0x00, 0x55, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x30, 0x0e, 0x06, + 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x05, + 0xa0, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x22, 0x30, 0x20, + 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x0a, 0x03, 0x04, + 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x04, 0x06, 0x08, + 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x5c, 0x06, 0x03, + 0x55, 0x1d, 0x11, 0x04, 0x55, 0x30, 0x53, 0xa0, 0x2d, 0x06, 0x0a, 0x2b, + 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, 0x03, 0xa0, 0x1f, 0x0c, + 0x1d, 0x61, 0x64, 0x66, 0x73, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x31, 0x40, + 0x61, 0x64, 0x2e, 0x74, 0x6f, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x81, 0x22, 0x61, 0x64, 0x66, 0x73, + 0x2d, 0x74, 0x65, 0x73, 0x74, 0x31, 0x40, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x6e, 0x6f, 0x6d, 0x61, 0x64, 0x69, 0x63, 0x66, 0x65, + 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x44, 0x06, 0x09, 0x2a, 0x86, + 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x0f, 0x04, 0x37, 0x30, 0x35, 0x30, + 0x0e, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x03, 0x02, 0x02, + 0x02, 0x00, 0x80, 0x30, 0x0e, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, 0xf7, + 0x0d, 0x03, 0x04, 0x02, 0x02, 0x00, 0x80, 0x30, 0x07, 0x06, 0x05, 0x2b, + 0x0e, 0x03, 0x02, 0x07, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, + 0xf7, 0x0d, 0x03, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, + 0xf7, 0x0d, 0x01, 0x01, 0x0a, 0x30, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, + 0x2d, 0xb1, 0x92, 0xad, 0xc5, 0x3d, 0x4d, 0x41, 0x51, 0x7d, 0x38, 0xa0, + 0x7a, 0x9b, 0x67, 0x51, 0x7e, 0x5b, 0x8f, 0xd6, 0x2a, 0x6f, 0xb5, 0x67, + 0x58, 0xeb, 0x86, 0x1f, 0xf6, 0x9e, 0xfa, 0x06, 0x12, 0x5d, 0x3d, 0xce, + 0x61, 0xba, 0x8f, 0x23, 0x89, 0xba, 0xd4, 0x2a, 0x50, 0xee, 0x1d, 0xda, + 0x23, 0x7f, 0x19, 0x30, 0x10, 0xf6, 0xa4, 0xea, 0xbf, 0x0d, 0xbb, 0x4d, + 0x3d, 0x4b, 0x1c, 0x03, 0xd5, 0x85, 0xbc, 0x42, 0x69, 0x59, 0xed, 0xb2, + 0x0c, 0x68, 0x39, 0x7e, 0x8a, 0x00, 0xd0, 0x46, 0xe3, 0x59, 0xa4, 0xf5, + 0x99, 0x43, 0xb1, 0xdf, 0x36, 0xfa, 0x18, 0x3c, 0xef, 0xc2, 0x51, 0x96, + 0x55, 0x35, 0x79, 0xb6, 0x01, 0x1f, 0x54, 0xd1, 0xf0, 0xc5, 0x36, 0xe7, + 0x11, 0x6f, 0xe7, 0x33, 0x5c, 0x87, 0xb5, 0x23, 0x9b, 0xcd, 0x5c, 0x97, + 0x3e, 0x8c, 0x64, 0x43, 0xb3, 0xe0, 0x73, 0x1c, 0x89, 0xd5, 0x83, 0x60, + 0x8c, 0xa7, 0xc7, 0x57, 0x8f, 0xc1, 0x62, 0x0a, 0x65, 0x5e, 0x80, 0x66, + 0x76, 0xb8, 0x69, 0x71, 0x6a, 0x00, 0x3a, 0xda, 0x26, 0x07, 0x9e, 0x9e, + 0x9f, 0x39, 0x62, 0x98, 0x6f, 0x76, 0x84, 0xbc, 0x8b, 0xd0, 0x12, 0x41, + 0x2e, 0x1e, 0xca, 0x58, 0xae, 0x36, 0x9a, 0x1f, 0x10, 0x6b, 0x95, 0xda, + 0x93, 0x34, 0x41, 0xba, 0xc8, 0x02, 0x37, 0x91, 0xb7, 0x28, 0x2a, 0xc5, + 0x61, 0xc6, 0x2d, 0xd0, 0x27, 0xa2, 0xeb, 0xbc, 0x51, 0xe4, 0xf2, 0x79, + 0x14, 0x2f, 0x13, 0x0a, 0xb1, 0x77, 0x0f, 0x01, 0x9a, 0xf9, 0x92, 0x2a, + 0x98, 0xb7, 0x64, 0xf2, 0xef, 0x7d, 0xb8, 0x11, 0x25, 0x2d, 0xb9, 0xce, + 0x9b, 0xb2, 0x4c, 0xde, 0x5b, 0x1e, 0x33, 0x6e, 0xa9, 0x1b, 0xbf, 0x8b, + 0x1c, 0x9a, 0x00, 0x3b, 0x28, 0x13, 0x00, 0x5c, 0x3c, 0x3b, 0x69, 0x50, + 0x5e, 0xb6, 0xfd, 0x98 + ])).buffer; + +// Pretend to support all types of hashes (as documented at +// https://developer.chrome.com/extensions/certificateProvider#type-Hash). +var TEST_CERTIFICATE_SUPPORTED_HASHES = + ['MD5_SHA1', 'SHA1', 'SHA256', 'SHA384', 'SHA512']; + +// The expected PIN code. +var VALID_PIN = '1234'; + +// The number of wrong attempts after which requesting the PIN will be stopped. +var MAXIMUM_PIN_FAILED_ATTEMPT_COUNT = 3; + +// Data that is used as a response for the sign digest request. This data is +// random and invalid (as obtaining the real signature requires bundling the +// app with a private key and with a piece of cryptographic code). +var FAKE_SIGN_DIGEST_REQUEST_RESPONSE = (new Uint8Array([1, 2, 3])).buffer; + + +function log(message) { + console.log('[Sign-in Screen Test App] ' + message); +} + +function logError(message) { + console.error('[Sign-in Screen Test App] ' + message); +} + +function arrayBufferToByteArray(arrayBuffer) { + return Array.from(new Uint8Array(arrayBuffer)); +} + +// Returns the text dump of the array of objects of CertificateInfo type from +// the chrome.certificateProvider API. +function dumpCertificateInfos(certificateInfos) { + var transformedList = certificateInfos.map(function(certificateInfo) { + var transformedItem = Object.assign({}, certificateInfo); + transformedItem.certificate = arrayBufferToByteArray( + transformedItem.certificate); + return transformedItem; + }); + return JSON.stringify(transformedList); +} + +function dumpArrayBuffer(arrayBuffer) { + return JSON.stringify(arrayBufferToByteArray(arrayBuffer)); +} + +function dumpArrayBuffers(arrayBuffers) { + return JSON.stringify(arrayBuffers.map(function(arrayBuffer) { + return arrayBufferToByteArray(arrayBuffer); + })); +} + +function arrayBufferEquals(firstArrayBuffer, secondArrayBuffer) { + return dumpArrayBuffer(firstArrayBuffer) == + dumpArrayBuffer(secondArrayBuffer); +} + +// Listener for the chrome.certificateProvider.onCertificatesRequested event. +function certificatesRequestedListener(reportCallback) { + log('The onCertificatesRequested event received'); + var response = [{ + certificate: TEST_CERTIFICATE, + supportedHashes: TEST_CERTIFICATE_SUPPORTED_HASHES + }]; + log('Responding with ' + response.length + + ' certificate(s): ' + dumpCertificateInfos(response)); + reportCallback(response, function(rejectedCertificates) { + if (chrome.runtime.lastError) { + logError( + 'Failed to report the certificates: ' + + chrome.runtime.lastError.message); + return; + } + if (rejectedCertificates.length) { + logError( + rejectedCertificates.length + ' certificate(s) were rejected: ' + + dumpArrayBuffers(rejectedCertificates)); + return; + } + log('Successfully reported the certificates'); + }); +} + +// Listener for the chrome.certificateProvider.onSignDigestRequested event. +function signDigestRequestedListener(request, reportCallback) { + log('The onSignDigestRequested event received: signRequestId=' + + request.signRequestId + ', digest=' + dumpArrayBuffer(request.digest) + + ', hash="' + request.hash + + '", certificate=' + dumpArrayBuffer(request.certificate)); + if (!arrayBufferEquals(request.certificate, TEST_CERTIFICATE)) { + logError('The signing request refers to an unknown certificate'); + abandonSignRequest(request, reportCallback); + return; + } + inputPinAndProcessSignRequest( + 1 /* attemptNumber */, null /* errorType */, request, reportCallback); +} + +// Requests the PIN from the user and responds to the sign digest request - with +// some data if the PIN was entered successfully, or with an error otherwise. +function inputPinAndProcessSignRequest( + attemptNumber, errorType, signRequest, signRequestReportCallback) { + requestPin( + signRequest.signRequestId, attemptNumber, errorType, function(userInput) { + if (chrome.runtime.lastError) { + logError( + 'The PIN request failed: ' + chrome.runtime.lastError.message); + abandonSignRequest(signRequest, signRequestReportCallback); + return; + } + log('The PIN dialog returned "' + userInput + '"'); + if (userInput == VALID_PIN) { + log('The entered PIN is correct'); + stopPinRequest(null /* errorType */, signRequest.signRequestId); + processSignRequestWithValidPin( + signRequest, signRequestReportCallback); + } else if (attemptNumber < MAXIMUM_PIN_FAILED_ATTEMPT_COUNT) { + log('The entered PIN is wrong, showing the dialog again'); + inputPinAndProcessSignRequest( + attemptNumber + 1, 'INVALID_PIN', signRequest, + signRequestReportCallback); + } else { + log('The entered PIN is wrong, and no attempts left'); + stopPinRequest('MAX_ATTEMPTS_EXCEEDED', signRequest.signRequestId); + abandonSignRequest(signRequest, signRequestReportCallback); + } + }); +} + +// Requests the PIN from the user by displaying the PIN dialog. The passed +// callback will be called with the string entered by the user, or with null in +// case of an error. +function requestPin(signRequestId, attemptNumber, errorType, callback) { + var parameters = {signRequestId: signRequestId}; + if (errorType) { + parameters.errorType = errorType; + parameters.attemptsLeft = + MAXIMUM_PIN_FAILED_ATTEMPT_COUNT - attemptNumber + 1; + } + log('Requesting PIN with parameters ' + JSON.stringify(parameters)); + chrome.certificateProvider.requestPin(parameters, function(result) { + callback(result ? result.userInput : null); + }); +} + +// Stops the PIN request: if no error is passed (null), the PIN dialog is +// closed; if there is some, then the corresponding message will be displayed in +// the dialog that allows no further input. +function stopPinRequest(errorType, signRequestId) { + var parameters = {signRequestId: signRequestId}; + if (errorType) + parameters.errorType = errorType; + log('Stopping the PIN request with parameters ' + JSON.stringify(parameters)); + chrome.certificateProvider.stopPinRequest(parameters, function() { + if (chrome.runtime.lastError) { + logError( + 'Failed to stop the PIN request: ' + + chrome.runtime.lastError.message); + return; + } + log('Successfully stopped the PIN request'); + }); +} + +// Responds to the signing request after the PIN was entered correctly. +function processSignRequestWithValidPin( + signRequest, signRequestReportCallback) { + log('Responding to the signing request with a fake data'); + signRequestReportCallback(FAKE_SIGN_DIGEST_REQUEST_RESPONSE); +} + +// Responds to the signing request with an error, which unblocks Chrome from +// waiting for the response from this extension. +function abandonSignRequest(signRequest, signRequestReportCallback) { + log('Responding to the signing request with an error'); + signRequestReportCallback(); +} + + +log('Loaded'); +if (chrome.certificateProvider) { + chrome.certificateProvider.onCertificatesRequested.addListener( + certificatesRequestedListener); + chrome.certificateProvider.onSignDigestRequested.addListener( + signDigestRequestedListener); + log('Successfully set up listeners for the certificateProvider API'); +} else { + logError('The certificateProvider API is unavailable'); +}
diff --git a/chrome/test/data/extensions/signin_screen_test_app/app/manifest.json b/chrome/test/data/extensions/signin_screen_test_app/app/manifest.json index d331322..45bf15c 100644 --- a/chrome/test/data/extensions/signin_screen_test_app/app/manifest.json +++ b/chrome/test/data/extensions/signin_screen_test_app/app/manifest.json
@@ -2,10 +2,11 @@ "manifest_version": 2, "name": "Sign-in Screen Test App", "description": "The app for testing the apps installation in the Chrome OS sign-in profile", - "version": "2.0", + "version": "3.0", "app": { "background": { "scripts": ["background.js"] } - } + }, + "permissions": ["certificateProvider"] }
diff --git a/chrome/utility/importer/firefox_importer_unittest_utils_mac.cc b/chrome/utility/importer/firefox_importer_unittest_utils_mac.cc index 94abd24..ac22dfe 100644 --- a/chrome/utility/importer/firefox_importer_unittest_utils_mac.cc +++ b/chrome/utility/importer/firefox_importer_unittest_utils_mac.cc
@@ -160,10 +160,12 @@ mojo::edk::PlatformChannelPair channel_pair; child_process_ = LaunchNSSDecrypterChildProcess( nss_path, channel_pair.PassClientHandle(), token); - if (child_process_.IsValid()) + if (child_process_.IsValid()) { invitation.Send( child_process_.Handle(), - mojo::edk::ConnectionParams(channel_pair.PassServerHandle())); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + channel_pair.PassServerHandle())); + } return child_process_.IsValid(); }
diff --git a/components/arc/arc_session.cc b/components/arc/arc_session.cc index 87c89272..b27415a 100644 --- a/components/arc/arc_session.cc +++ b/components/arc/arc_session.cc
@@ -452,8 +452,10 @@ std::string token = mojo::edk::GenerateRandomToken(); mojo::ScopedMessagePipeHandle pipe = invitation.AttachMessagePipe(token); - invitation.Send(kUnusedChildProcessHandle, - mojo::edk::ConnectionParams(channel_pair.PassServerHandle())); + invitation.Send( + kUnusedChildProcessHandle, + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + channel_pair.PassServerHandle())); mojo::edk::ScopedPlatformHandleVectorPtr handles( new mojo::edk::PlatformHandleVector{
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc index 6e464cb..7a5f5dc 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
@@ -292,6 +292,8 @@ data = DataReductionProxyData::GetDataAndCreateIfNecessary(request); if (data) data->set_used_data_reduction_proxy(true); + + headers->RemoveHeader(chrome_proxy_header()); VerifyHttpRequestHeaders(false, *headers); return; } @@ -319,6 +321,7 @@ lofi_decider->RemoveAcceptTransformHeader(headers); } RemoveChromeProxyECTHeader(headers); + headers->RemoveHeader(chrome_proxy_header()); VerifyHttpRequestHeaders(false, *headers); return; }
diff --git a/components/feature_engagement_tracker/DEPS b/components/feature_engagement_tracker/DEPS index 13473986..925a7c7 100644 --- a/components/feature_engagement_tracker/DEPS +++ b/components/feature_engagement_tracker/DEPS
@@ -2,4 +2,5 @@ "-content", "+jni", "+components/keyed_service", + "+components/leveldb_proto", ]
diff --git a/components/feature_engagement_tracker/components_unittests.filter b/components/feature_engagement_tracker/components_unittests.filter index f11d8c8..8b84948 100644 --- a/components/feature_engagement_tracker/components_unittests.filter +++ b/components/feature_engagement_tracker/components_unittests.filter
@@ -10,5 +10,6 @@ ModelImplTest.* NeverConditionValidatorTest.* OnceConditionValidatorTest.* +PersistentStoreTest.* SingleInvalidConfigurationTest.* SystemTimeProviderTest.*
diff --git a/components/feature_engagement_tracker/internal/BUILD.gn b/components/feature_engagement_tracker/internal/BUILD.gn index 910256a..566d3103 100644 --- a/components/feature_engagement_tracker/internal/BUILD.gn +++ b/components/feature_engagement_tracker/internal/BUILD.gn
@@ -37,6 +37,8 @@ "never_storage_validator.h", "once_condition_validator.cc", "once_condition_validator.h", + "persistent_store.cc", + "persistent_store.h", "single_invalid_configuration.cc", "single_invalid_configuration.h", "storage_validator.h", @@ -54,6 +56,7 @@ "//base", "//components/feature_engagement_tracker/public", "//components/keyed_service/core", + "//components/leveldb_proto", ] if (is_android) { @@ -86,6 +89,7 @@ "never_condition_validator_unittest.cc", "never_storage_validator_unittest.cc", "once_condition_validator_unittest.cc", + "persistent_store_unittest.cc", "single_invalid_configuration_unittest.cc", "system_time_provider_unittest.cc", ] @@ -93,6 +97,8 @@ deps = [ ":internal", "//base/test:test_support", + "//components/feature_engagement_tracker/internal/test:test_support", + "//components/leveldb_proto:test_support", "//testing/gtest", ] }
diff --git a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc index 244938e..2c93fa2c 100644 --- a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc +++ b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc
@@ -14,10 +14,12 @@ #include "components/feature_engagement_tracker/internal/never_condition_validator.h" #include "components/feature_engagement_tracker/internal/never_storage_validator.h" #include "components/feature_engagement_tracker/internal/once_condition_validator.h" +#include "components/feature_engagement_tracker/internal/persistent_store.h" #include "components/feature_engagement_tracker/internal/single_invalid_configuration.h" #include "components/feature_engagement_tracker/internal/system_time_provider.h" #include "components/feature_engagement_tracker/public/feature_constants.h" #include "components/feature_engagement_tracker/public/feature_list.h" +#include "components/leveldb_proto/proto_database_impl.h" namespace feature_engagement_tracker { @@ -53,11 +55,16 @@ // static FeatureEngagementTracker* FeatureEngagementTracker::Create( const base::FilePath& storage_dir, - const scoped_refptr<base::SequencedTaskRunner>& background__task_runner) { + const scoped_refptr<base::SequencedTaskRunner>& background_task_runner) { if (base::FeatureList::IsEnabled(kIPHDemoMode)) return CreateDemoModeFeatureEngagementTracker().release(); - std::unique_ptr<Store> store = base::MakeUnique<InMemoryStore>(); + std::unique_ptr<leveldb_proto::ProtoDatabase<Event>> db = + base::MakeUnique<leveldb_proto::ProtoDatabaseImpl<Event>>( + background_task_runner); + + std::unique_ptr<Store> store = + base::MakeUnique<PersistentStore>(storage_dir, std::move(db)); std::unique_ptr<Configuration> configuration = base::MakeUnique<SingleInvalidConfiguration>(); std::unique_ptr<ConditionValidator> condition_validator =
diff --git a/components/feature_engagement_tracker/internal/model_impl_unittest.cc b/components/feature_engagement_tracker/internal/model_impl_unittest.cc index fff5e72e1..b94d2a4 100644 --- a/components/feature_engagement_tracker/internal/model_impl_unittest.cc +++ b/components/feature_engagement_tracker/internal/model_impl_unittest.cc
@@ -18,6 +18,7 @@ #include "components/feature_engagement_tracker/internal/in_memory_store.h" #include "components/feature_engagement_tracker/internal/never_storage_validator.h" #include "components/feature_engagement_tracker/internal/proto/event.pb.h" +#include "components/feature_engagement_tracker/internal/test/event_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace feature_engagement_tracker { @@ -37,42 +38,6 @@ configuration->SetConfiguration(&feature, config); } -void SetEventCountForDay(Event* event, uint32_t day, uint32_t count) { - Event_Count* event_count = event->add_events(); - event_count->set_day(day); - event_count->set_count(count); -} - -// Verifies that the given |event| contains a |day| with the correct |count|, -// and that the day only exists a single time. -void VerifyEventCount(const Event* event, uint32_t day, uint32_t count) { - bool found_day = false; - for (int i = 0; i < event->events_size(); ++i) { - Event_Count event_count = event->events(i); - if (event_count.day() == day) { - EXPECT_FALSE(found_day); - found_day = true; - EXPECT_EQ(count, event_count.count()); - } - } - EXPECT_TRUE(found_day); -} - -// Verifies that the event |a| and |b| contain the exact same data. -void VerifyEqual(const Event* a, const Event* b) { - if (!a || !b) { - // If one of the events are nullptr, both should be nullptr. - ASSERT_EQ(a, b); - return; - } - - EXPECT_EQ(a->name(), b->name()); - EXPECT_EQ(a->events_size(), b->events_size()); - for (int i = 0; i < a->events_size(); ++i) { - VerifyEventCount(b, a->events(i).day(), a->events(i).count()); - } -} - // A test-only implementation of InMemoryStore that tracks calls to // WriteEvent(...). class TestInMemoryStore : public InMemoryStore { @@ -108,21 +73,21 @@ Event foo; foo.set_name("foo"); - SetEventCountForDay(&foo, 1, 1); + test::SetEventCountForDay(&foo, 1, 1); events->push_back(foo); Event bar; bar.set_name("bar"); - SetEventCountForDay(&bar, 1, 3); - SetEventCountForDay(&bar, 2, 3); - SetEventCountForDay(&bar, 5, 5); + test::SetEventCountForDay(&bar, 1, 3); + test::SetEventCountForDay(&bar, 2, 3); + test::SetEventCountForDay(&bar, 5, 5); events->push_back(bar); Event qux; qux.set_name("qux"); - SetEventCountForDay(&qux, 1, 5); - SetEventCountForDay(&qux, 2, 1); - SetEventCountForDay(&qux, 3, 2); + test::SetEventCountForDay(&qux, 1, 5); + test::SetEventCountForDay(&qux, 2, 1); + test::SetEventCountForDay(&qux, 3, 2); events->push_back(qux); return base::MakeUnique<TestInMemoryStore>(std::move(events), true); @@ -195,21 +160,21 @@ const Event* foo_event = model_->GetEvent("foo"); EXPECT_EQ("foo", foo_event->name()); EXPECT_EQ(1, foo_event->events_size()); - VerifyEventCount(foo_event, 1u, 1u); + test::VerifyEventCount(foo_event, 1u, 1u); const Event* bar_event = model_->GetEvent("bar"); EXPECT_EQ("bar", bar_event->name()); EXPECT_EQ(3, bar_event->events_size()); - VerifyEventCount(bar_event, 1u, 3u); - VerifyEventCount(bar_event, 2u, 3u); - VerifyEventCount(bar_event, 5u, 5u); + test::VerifyEventCount(bar_event, 1u, 3u); + test::VerifyEventCount(bar_event, 2u, 3u); + test::VerifyEventCount(bar_event, 5u, 5u); const Event* qux_event = model_->GetEvent("qux"); EXPECT_EQ("qux", qux_event->name()); EXPECT_EQ(3, qux_event->events_size()); - VerifyEventCount(qux_event, 1u, 5u); - VerifyEventCount(qux_event, 2u, 1u); - VerifyEventCount(qux_event, 3u, 2u); + test::VerifyEventCount(qux_event, 1u, 5u); + test::VerifyEventCount(qux_event, 2u, 1u); + test::VerifyEventCount(qux_event, 3u, 2u); } TEST_F(ModelImplTest, RetrievingNewEventsShouldYieldNullptr) { @@ -220,7 +185,7 @@ const Event* no_event = model_->GetEvent("no"); EXPECT_EQ(nullptr, no_event); - VerifyEqual(nullptr, store_->GetLastWrittenEvent()); + test::VerifyEventsEqual(nullptr, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, IncrementingNonExistingEvent) { @@ -234,8 +199,8 @@ const Event* event1 = model_->GetEvent("nonexisting"); EXPECT_EQ("nonexisting", event1->name()); EXPECT_EQ(1, event1->events_size()); - VerifyEventCount(event1, 1u, 1u); - VerifyEqual(event1, store_->GetLastWrittenEvent()); + test::VerifyEventCount(event1, 1u, 1u); + test::VerifyEventsEqual(event1, store_->GetLastWrittenEvent()); // Incrementing the event after it has been initialized to 1, it should now // have a count of 2 for the given day. @@ -243,8 +208,8 @@ const Event* event2 = model_->GetEvent("nonexisting"); Event_Count event2_count = event2->events(0); EXPECT_EQ(1, event2->events_size()); - VerifyEventCount(event2, 1u, 2u); - VerifyEqual(event2, store_->GetLastWrittenEvent()); + test::VerifyEventCount(event2, 1u, 2u); + test::VerifyEventsEqual(event2, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, IncrementingNonExistingEventMultipleDays) { @@ -259,10 +224,10 @@ model_->IncrementEvent("nonexisting", 3u); const Event* event = model_->GetEvent("nonexisting"); EXPECT_EQ(3, event->events_size()); - VerifyEventCount(event, 1u, 1u); - VerifyEventCount(event, 2u, 2u); - VerifyEventCount(event, 3u, 1u); - VerifyEqual(event, store_->GetLastWrittenEvent()); + test::VerifyEventCount(event, 1u, 1u); + test::VerifyEventCount(event, 2u, 2u); + test::VerifyEventCount(event, 3u, 1u); + test::VerifyEventsEqual(event, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, IncrementingSingleDayExistingEvent) { @@ -275,14 +240,14 @@ const Event* foo_event = model_->GetEvent("foo"); EXPECT_EQ("foo", foo_event->name()); EXPECT_EQ(1, foo_event->events_size()); - VerifyEventCount(foo_event, 1u, 1u); + test::VerifyEventCount(foo_event, 1u, 1u); // Incrementing |foo| should change count to 2. model_->IncrementEvent("foo", 1u); const Event* foo_event2 = model_->GetEvent("foo"); EXPECT_EQ(1, foo_event2->events_size()); - VerifyEventCount(foo_event2, 1u, 2u); - VerifyEqual(foo_event2, store_->GetLastWrittenEvent()); + test::VerifyEventCount(foo_event2, 1u, 2u); + test::VerifyEventsEqual(foo_event2, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, IncrementingSingleDayExistingEventTwice) { @@ -297,8 +262,8 @@ model_->IncrementEvent("foo", 1u); const Event* foo_event = model_->GetEvent("foo"); EXPECT_EQ(1, foo_event->events_size()); - VerifyEventCount(foo_event, 1u, 3u); - VerifyEqual(foo_event, store_->GetLastWrittenEvent()); + test::VerifyEventCount(foo_event, 1u, 3u); + test::VerifyEventsEqual(foo_event, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, IncrementingExistingMultiDayEvent) { @@ -310,11 +275,11 @@ // |bar| is inserted into the store with a count of 3 at day 2. Incrementing // that day should lead to a count of 4. const Event* bar_event = model_->GetEvent("bar"); - VerifyEventCount(bar_event, 2u, 3u); + test::VerifyEventCount(bar_event, 2u, 3u); model_->IncrementEvent("bar", 2u); const Event* bar_event2 = model_->GetEvent("bar"); - VerifyEventCount(bar_event2, 2u, 4u); - VerifyEqual(bar_event2, store_->GetLastWrittenEvent()); + test::VerifyEventCount(bar_event2, 2u, 4u); + test::VerifyEventsEqual(bar_event2, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, IncrementingExistingMultiDayEventNewDay) { @@ -327,12 +292,12 @@ // the day. model_->IncrementEvent("bar", 10u); const Event* bar_event = model_->GetEvent("bar"); - VerifyEventCount(bar_event, 10u, 1u); - VerifyEqual(bar_event, store_->GetLastWrittenEvent()); + test::VerifyEventCount(bar_event, 10u, 1u); + test::VerifyEventsEqual(bar_event, store_->GetLastWrittenEvent()); model_->IncrementEvent("bar", 10u); const Event* bar_event2 = model_->GetEvent("bar"); - VerifyEventCount(bar_event2, 10u, 2u); - VerifyEqual(bar_event2, store_->GetLastWrittenEvent()); + test::VerifyEventCount(bar_event2, 10u, 2u); + test::VerifyEventsEqual(bar_event2, store_->GetLastWrittenEvent()); } TEST_F(ModelImplTest, ShowState) {
diff --git a/components/feature_engagement_tracker/internal/persistent_store.cc b/components/feature_engagement_tracker/internal/persistent_store.cc new file mode 100644 index 0000000..8841e05a --- /dev/null +++ b/components/feature_engagement_tracker/internal/persistent_store.cc
@@ -0,0 +1,76 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/persistent_store.h" + +#include <vector> + +#include "base/bind.h" +#include "base/memory/ptr_util.h" + +namespace feature_engagement_tracker { +namespace { +// Corresponds to a UMA suffix "LevelDBOpenResults" in histograms.xml. +// Please do not change. +const char kDatabaseUMAName[] = "FeatureEngagementTrackerStore"; + +using KeyEventPair = std::pair<std::string, Event>; +using KeyEventList = std::vector<KeyEventPair>; + +void NoopUpdateCallback(bool success) {} +} // namespace + +PersistentStore::PersistentStore( + const base::FilePath& storage_dir, + std::unique_ptr<leveldb_proto::ProtoDatabase<Event>> db) + : storage_dir_(storage_dir), + db_(std::move(db)), + ready_(false), + weak_ptr_factory_(this) {} + +PersistentStore::~PersistentStore() = default; + +void PersistentStore::Load(const OnLoadedCallback& callback) { + DCHECK(!ready_); + + db_->Init(kDatabaseUMAName, storage_dir_, + base::Bind(&PersistentStore::OnInitComplete, + weak_ptr_factory_.GetWeakPtr(), callback)); +} + +bool PersistentStore::IsReady() const { + return ready_; +} + +void PersistentStore::WriteEvent(const Event& event) { + DCHECK(IsReady()); + std::unique_ptr<KeyEventList> entries = base::MakeUnique<KeyEventList>(); + entries->push_back(KeyEventPair(event.name(), event)); + + // TODO(dtrainor, nyquist): Consider tracking failures here and storing UMA. + db_->UpdateEntries(std::move(entries), + base::MakeUnique<std::vector<std::string>>(), + base::Bind(&NoopUpdateCallback)); +} + +void PersistentStore::OnInitComplete(const OnLoadedCallback& callback, + bool success) { + if (!success) { + callback.Run(false, base::MakeUnique<std::vector<Event>>()); + return; + } + + db_->LoadEntries(base::Bind(&PersistentStore::OnLoadComplete, + weak_ptr_factory_.GetWeakPtr(), callback)); +} + +void PersistentStore::OnLoadComplete( + const OnLoadedCallback& callback, + bool success, + std::unique_ptr<std::vector<Event>> entries) { + ready_ = success; + callback.Run(success, std::move(entries)); +} + +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/persistent_store.h b/components/feature_engagement_tracker/internal/persistent_store.h new file mode 100644 index 0000000..3e259f0 --- /dev/null +++ b/components/feature_engagement_tracker/internal/persistent_store.h
@@ -0,0 +1,58 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_PERSISTENT_STORE_H_ +#define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_PERSISTENT_STORE_H_ + +#include <memory> +#include <vector> + +#include "base/files/file_path.h" +#include "base/macros.h" +#include "base/memory/weak_ptr.h" +#include "components/feature_engagement_tracker/internal/proto/event.pb.h" +#include "components/feature_engagement_tracker/internal/store.h" +#include "components/leveldb_proto/proto_database.h" + +namespace feature_engagement_tracker { + +// A PersistentStore provides a DB layer that persists the data to disk. The +// data is retrieved once during the load process and after that this store is +// write only. Data will be persisted asynchronously so it is not guaranteed to +// always save every write during shutdown. +class PersistentStore : public Store { + public: + // Builds a PersistentStore backed by the ProtoDatabase |db|. The database + // will be loaded and/or created at |storage_dir|. + PersistentStore(const base::FilePath& storage_dir, + std::unique_ptr<leveldb_proto::ProtoDatabase<Event>> db); + ~PersistentStore() override; + + // Store implementation. + void Load(const OnLoadedCallback& callback) override; + bool IsReady() const override; + void WriteEvent(const Event& event) override; + + private: + void OnInitComplete(const OnLoadedCallback& callback, bool success); + void OnLoadComplete(const OnLoadedCallback& callback, + bool success, + std::unique_ptr<std::vector<Event>> entries); + + const base::FilePath storage_dir_; + std::unique_ptr<leveldb_proto::ProtoDatabase<Event>> db_; + + // Whether or not the underlying ProtoDatabase is ready. This will be false + // until the OnLoadedCallback is broadcast. It will also be false if loading + // fails. + bool ready_; + + base::WeakPtrFactory<PersistentStore> weak_ptr_factory_; + + DISALLOW_COPY_AND_ASSIGN(PersistentStore); +}; + +} // namespace feature_engagement_tracker + +#endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_PERSISTENT_STORE_H_
diff --git a/components/feature_engagement_tracker/internal/persistent_store_unittest.cc b/components/feature_engagement_tracker/internal/persistent_store_unittest.cc new file mode 100644 index 0000000..4068662 --- /dev/null +++ b/components/feature_engagement_tracker/internal/persistent_store_unittest.cc
@@ -0,0 +1,193 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/persistent_store.h" + +#include <map> + +#include "base/files/file_path.h" +#include "base/memory/ptr_util.h" +#include "base/optional.h" +#include "components/feature_engagement_tracker/internal/proto/event.pb.h" +#include "components/feature_engagement_tracker/internal/test/event_util.h" +#include "components/leveldb_proto/proto_database.h" +#include "components/leveldb_proto/testing/fake_db.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace feature_engagement_tracker { + +namespace { + +void VerifyEventsInListAndMap(const std::map<std::string, Event>& map, + const std::vector<Event>& list) { + ASSERT_EQ(map.size(), list.size()); + + for (const auto& event : list) { + const auto& it = map.find(event.name()); + ASSERT_NE(map.end(), it); + test::VerifyEventsEqual(&event, &it->second); + } +} + +class PersistentStoreTest : public ::testing::Test { + public: + PersistentStoreTest() + : db_(nullptr), + storage_dir_(FILE_PATH_LITERAL("/persistent/store/lalala")) { + load_callback_ = + base::Bind(&PersistentStoreTest::LoadCallback, base::Unretained(this)); + } + + void TearDown() override { + db_events_.clear(); + db_ = nullptr; + store_.reset(); + } + + protected: + void SetUpDB() { + DCHECK(!db_); + DCHECK(!store_); + + auto db = base::MakeUnique<leveldb_proto::test::FakeDB<Event>>(&db_events_); + db_ = db.get(); + store_.reset(new PersistentStore(storage_dir_, std::move(db))); + } + + void LoadCallback(bool success, std::unique_ptr<std::vector<Event>> events) { + load_successful_ = success; + load_results_ = std::move(events); + } + + // Callback results. + base::Optional<bool> load_successful_; + std::unique_ptr<std::vector<Event>> load_results_; + + Store::OnLoadedCallback load_callback_; + std::map<std::string, Event> db_events_; + leveldb_proto::test::FakeDB<Event>* db_; + std::unique_ptr<Store> store_; + + // Constant test data. + base::FilePath storage_dir_; +}; + +} // namespace + +TEST_F(PersistentStoreTest, StorageDirectory) { + SetUpDB(); + store_->Load(load_callback_); + EXPECT_EQ(storage_dir_, db_->GetDirectory()); +} + +TEST_F(PersistentStoreTest, SuccessfulInitAndLoadEmptyStore) { + SetUpDB(); + + store_->Load(load_callback_); + + // The initialize should not trigger a response to the callback. + db_->InitCallback(true); + EXPECT_FALSE(load_successful_.has_value()); + + // The load should trigger a response to the callback. + db_->LoadCallback(true); + EXPECT_TRUE(load_successful_.value()); + + // Validate that we have no entries. + EXPECT_NE(nullptr, load_results_); + EXPECT_TRUE(load_results_->empty()); +} + +TEST_F(PersistentStoreTest, SuccessfulInitAndLoadWithEvents) { + // Populate fake Event entries. + Event event1; + event1.set_name("event1"); + test::SetEventCountForDay(&event1, 1, 1); + + Event event2; + event2.set_name("event2"); + test::SetEventCountForDay(&event2, 1, 3); + test::SetEventCountForDay(&event2, 2, 5); + + db_events_.insert(std::pair<std::string, Event>(event1.name(), event1)); + db_events_.insert(std::pair<std::string, Event>(event2.name(), event2)); + + SetUpDB(); + + // The initialize should not trigger a response to the callback. + store_->Load(load_callback_); + db_->InitCallback(true); + EXPECT_FALSE(load_successful_.has_value()); + + // The load should trigger a response to the callback. + db_->LoadCallback(true); + EXPECT_TRUE(load_successful_.value()); + EXPECT_NE(nullptr, load_results_); + + // Validate that we have the two events that we expect. + VerifyEventsInListAndMap(db_events_, *load_results_); +} + +TEST_F(PersistentStoreTest, SuccessfulInitBadLoad) { + SetUpDB(); + + store_->Load(load_callback_); + + // The initialize should not trigger a response to the callback. + db_->InitCallback(true); + EXPECT_FALSE(load_successful_.has_value()); + + // The load will fail and should trigger the callback. + db_->LoadCallback(false); + EXPECT_FALSE(load_successful_.value()); + EXPECT_FALSE(store_->IsReady()); +} + +TEST_F(PersistentStoreTest, BadInit) { + SetUpDB(); + + store_->Load(load_callback_); + + // The initialize will fail and should trigger the callback. + db_->InitCallback(false); + EXPECT_FALSE(load_successful_.value()); + EXPECT_FALSE(store_->IsReady()); +} + +TEST_F(PersistentStoreTest, IsReady) { + SetUpDB(); + EXPECT_FALSE(store_->IsReady()); + + store_->Load(load_callback_); + EXPECT_FALSE(store_->IsReady()); + + db_->InitCallback(true); + EXPECT_FALSE(store_->IsReady()); + + db_->LoadCallback(true); + EXPECT_TRUE(store_->IsReady()); +} + +TEST_F(PersistentStoreTest, WriteEvent) { + SetUpDB(); + + store_->Load(load_callback_); + db_->InitCallback(true); + db_->LoadCallback(true); + + Event event; + event.set_name("event"); + test::SetEventCountForDay(&event, 1, 2); + + store_->WriteEvent(event); + db_->UpdateCallback(true); + + EXPECT_EQ(1U, db_events_.size()); + + const auto& it = db_events_.find("event"); + EXPECT_NE(db_events_.end(), it); + test::VerifyEventsEqual(&event, &it->second); +} + +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/test/BUILD.gn b/components/feature_engagement_tracker/internal/test/BUILD.gn new file mode 100644 index 0000000..8300138 --- /dev/null +++ b/components/feature_engagement_tracker/internal/test/BUILD.gn
@@ -0,0 +1,19 @@ +# Copyright 2017 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("test_support") { + testonly = true + + visibility = [ "//components/feature_engagement_tracker/internal:unit_tests" ] + + sources = [ + "event_util.cc", + "event_util.h", + ] + + deps = [ + "//components/feature_engagement_tracker/internal/proto", + "//testing/gtest", + ] +}
diff --git a/components/feature_engagement_tracker/internal/test/event_util.cc b/components/feature_engagement_tracker/internal/test/event_util.cc new file mode 100644 index 0000000..af6a351 --- /dev/null +++ b/components/feature_engagement_tracker/internal/test/event_util.cc
@@ -0,0 +1,46 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/test/event_util.h" + +#include "components/feature_engagement_tracker/internal/proto/event.pb.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace feature_engagement_tracker { +namespace test { + +void SetEventCountForDay(Event* event, uint32_t day, uint32_t count) { + Event_Count* event_count = event->add_events(); + event_count->set_day(day); + event_count->set_count(count); +} + +void VerifyEventCount(const Event* event, uint32_t day, uint32_t count) { + bool found_day = false; + for (const auto& event_count : event->events()) { + if (event_count.day() == day) { + EXPECT_FALSE(found_day); + found_day = true; + EXPECT_EQ(count, event_count.count()); + } + } + EXPECT_TRUE(found_day); +} + +void VerifyEventsEqual(const Event* a, const Event* b) { + if (!a || !b) { + // If one of the events are nullptr, both should be nullptr. + ASSERT_EQ(a, b); + return; + } + + EXPECT_EQ(a->name(), b->name()); + EXPECT_EQ(a->events_size(), b->events_size()); + for (int i = 0; i < a->events_size(); ++i) { + VerifyEventCount(b, a->events(i).day(), a->events(i).count()); + } +} + +} // namespace test +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/test/event_util.h b/components/feature_engagement_tracker/internal/test/event_util.h new file mode 100644 index 0000000..f4cc90ad --- /dev/null +++ b/components/feature_engagement_tracker/internal/test/event_util.h
@@ -0,0 +1,29 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_TEST_EVENT_UTIL_H_ +#define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_TEST_EVENT_UTIL_H_ + +#include <stdint.h> + +namespace feature_engagement_tracker { + +class Event; + +namespace test { + +// Adds an Event count entry for |event|. +void SetEventCountForDay(Event* event, uint32_t day, uint32_t count); + +// Verifies that the given |event| contains a |day| with the correct |count|, +// and that the day only exists a single time. +void VerifyEventCount(const Event* event, uint32_t day, uint32_t count); + +// Verifies that the event |a| and |b| contain the exact same data. +void VerifyEventsEqual(const Event* a, const Event* b); + +} // namespace test +} // namespace feature_engagement_tracker + +#endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_TEST_EVENT_UTIL_H_
diff --git a/components/nacl/broker/nacl_broker_listener.cc b/components/nacl/broker/nacl_broker_listener.cc index bab6db6..24ac3c8 100644 --- a/components/nacl/broker/nacl_broker_listener.cc +++ b/components/nacl/broker/nacl_broker_listener.cc
@@ -133,8 +133,10 @@ this, cmd_line, handles, &loader_process); if (result == sandbox::SBOX_ALL_OK) { - invitation.Send(loader_process.Handle(), - mojo::edk::ConnectionParams(std::move(parent_handle))); + invitation.Send( + loader_process.Handle(), + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + std::move(parent_handle))); // Note: PROCESS_DUP_HANDLE is necessary here, because: // 1) The current process is the broker, which is the loader's parent.
diff --git a/components/prefs/overlay_user_pref_store.cc b/components/prefs/overlay_user_pref_store.cc index ddc47c8..48271fb0 100644 --- a/components/prefs/overlay_user_pref_store.cc +++ b/components/prefs/overlay_user_pref_store.cc
@@ -44,22 +44,17 @@ if (overlay_.GetValue(key, result)) return true; - return underlay_->GetValue(GetUnderlayKey(key), result); + return underlay_->GetValue(key, result); } std::unique_ptr<base::DictionaryValue> OverlayUserPrefStore::GetValues() const { auto values = underlay_->GetValues(); auto overlay_values = overlay_.AsDictionaryValue(); - for (const auto& overlay_mapping : overlay_to_underlay_names_map_) { - const std::string& overlay_key = overlay_mapping.first; - const std::string& underlay_key = overlay_mapping.second; + for (const auto& key : overlay_names_set_) { std::unique_ptr<base::Value> out_value; - if (overlay_key != underlay_key) { - values->Remove(underlay_key, &out_value); - } - overlay_values->Remove(overlay_key, &out_value); + overlay_values->Remove(key, &out_value); if (out_value) { - values->Set(overlay_key, std::move(out_value)); + values->Set(key, std::move(out_value)); } } return values; @@ -68,14 +63,14 @@ bool OverlayUserPrefStore::GetMutableValue(const std::string& key, base::Value** result) { if (!ShallBeStoredInOverlay(key)) - return underlay_->GetMutableValue(GetUnderlayKey(key), result); + return underlay_->GetMutableValue(key, result); if (overlay_.GetValue(key, result)) return true; // Try to create copy of underlay if the overlay does not contain a value. base::Value* underlay_value = NULL; - if (!underlay_->GetMutableValue(GetUnderlayKey(key), &underlay_value)) + if (!underlay_->GetMutableValue(key, &underlay_value)) return false; *result = underlay_value->DeepCopy(); @@ -87,7 +82,7 @@ std::unique_ptr<base::Value> value, uint32_t flags) { if (!ShallBeStoredInOverlay(key)) { - underlay_->SetValue(GetUnderlayKey(key), std::move(value), flags); + underlay_->SetValue(key, std::move(value), flags); return; } @@ -99,7 +94,7 @@ std::unique_ptr<base::Value> value, uint32_t flags) { if (!ShallBeStoredInOverlay(key)) { - underlay_->SetValueSilently(GetUnderlayKey(key), std::move(value), flags); + underlay_->SetValueSilently(key, std::move(value), flags); return; } @@ -108,7 +103,7 @@ void OverlayUserPrefStore::RemoveValue(const std::string& key, uint32_t flags) { if (!ShallBeStoredInOverlay(key)) { - underlay_->RemoveValue(GetUnderlayKey(key), flags); + underlay_->RemoveValue(key, flags); return; } @@ -153,8 +148,8 @@ } void OverlayUserPrefStore::OnPrefValueChanged(const std::string& key) { - if (!overlay_.GetValue(GetOverlayKey(key), NULL)) - ReportValueChanged(GetOverlayKey(key), DEFAULT_PREF_WRITE_FLAGS); + if (!overlay_.GetValue(key, NULL)) + ReportValueChanged(key, DEFAULT_PREF_WRITE_FLAGS); } void OverlayUserPrefStore::OnInitializationCompleted(bool succeeded) { @@ -163,22 +158,10 @@ } void OverlayUserPrefStore::RegisterOverlayPref(const std::string& key) { - RegisterOverlayPref(key, key); -} - -void OverlayUserPrefStore::RegisterOverlayPref( - const std::string& overlay_key, - const std::string& underlay_key) { - DCHECK(!overlay_key.empty()) << "Overlay key is empty"; - DCHECK(overlay_to_underlay_names_map_.find(overlay_key) == - overlay_to_underlay_names_map_.end()) << - "Overlay key already registered"; - DCHECK(!underlay_key.empty()) << "Underlay key is empty"; - DCHECK(underlay_to_overlay_names_map_.find(underlay_key) == - underlay_to_overlay_names_map_.end()) << - "Underlay key already registered"; - overlay_to_underlay_names_map_[overlay_key] = underlay_key; - underlay_to_overlay_names_map_[underlay_key] = overlay_key; + DCHECK(!key.empty()) << "Key is empty"; + DCHECK(overlay_names_set_.find(key) == overlay_names_set_.end()) + << "Key already registered"; + overlay_names_set_.insert(key); } void OverlayUserPrefStore::ClearMutableValues() { @@ -189,22 +172,7 @@ underlay_->RemoveObserver(this); } -const std::string& OverlayUserPrefStore::GetOverlayKey( - const std::string& underlay_key) const { - NamesMap::const_iterator i = - underlay_to_overlay_names_map_.find(underlay_key); - return i != underlay_to_overlay_names_map_.end() ? i->second : underlay_key; -} - -const std::string& OverlayUserPrefStore::GetUnderlayKey( - const std::string& overlay_key) const { - NamesMap::const_iterator i = - overlay_to_underlay_names_map_.find(overlay_key); - return i != overlay_to_underlay_names_map_.end() ? i->second : overlay_key; -} - bool OverlayUserPrefStore::ShallBeStoredInOverlay( const std::string& key) const { - return overlay_to_underlay_names_map_.find(key) != - overlay_to_underlay_names_map_.end(); + return overlay_names_set_.find(key) != overlay_names_set_.end(); }
diff --git a/components/prefs/overlay_user_pref_store.h b/components/prefs/overlay_user_pref_store.h index 7d9eb307..7766dcd 100644 --- a/components/prefs/overlay_user_pref_store.h +++ b/components/prefs/overlay_user_pref_store.h
@@ -62,8 +62,6 @@ void OnInitializationCompleted(bool succeeded) override; void RegisterOverlayPref(const std::string& key); - void RegisterOverlayPref(const std::string& overlay_key, - const std::string& underlay_key); void ClearMutableValues() override; @@ -71,10 +69,7 @@ ~OverlayUserPrefStore() override; private: - typedef std::map<std::string, std::string> NamesMap; - - const std::string& GetOverlayKey(const std::string& underlay_key) const; - const std::string& GetUnderlayKey(const std::string& overlay_key) const; + typedef std::set<std::string> NamesSet; // Returns true if |key| corresponds to a preference that shall be stored in // an in-memory PrefStore that is not persisted to disk. @@ -83,8 +78,7 @@ base::ObserverList<PrefStore::Observer, true> observers_; PrefValueMap overlay_; scoped_refptr<PersistentPrefStore> underlay_; - NamesMap overlay_to_underlay_names_map_; - NamesMap underlay_to_overlay_names_map_; + NamesSet overlay_names_set_; DISALLOW_COPY_AND_ASSIGN(OverlayUserPrefStore); };
diff --git a/components/prefs/overlay_user_pref_store_unittest.cc b/components/prefs/overlay_user_pref_store_unittest.cc index 5dded13..e32bf1e 100644 --- a/components/prefs/overlay_user_pref_store_unittest.cc +++ b/components/prefs/overlay_user_pref_store_unittest.cc
@@ -24,10 +24,6 @@ const char* const overlay_key = kBrowserWindowPlacement; const char* const regular_key = kShowBookmarkBar; const char* const shared_key = kSharedKey; -// With the removal of the kWebKitGlobalXXX prefs, we'll no longer have real -// prefs using the overlay pref store, so make up keys here. -const char mapped_overlay_key[] = "test.per_tab.javascript_enabled"; -const char mapped_underlay_key[] = "test.per_profile.javascript_enabled"; } // namespace @@ -38,7 +34,6 @@ overlay_(new OverlayUserPrefStore(underlay_.get())) { overlay_->RegisterOverlayPref(overlay_key); overlay_->RegisterOverlayPref(shared_key); - overlay_->RegisterOverlayPref(mapped_overlay_key, mapped_underlay_key); } ~OverlayUserPrefStoreTest() override {} @@ -211,80 +206,6 @@ EXPECT_TRUE(obs.changed_keys.empty()); } -// Check that names mapping works correctly. -TEST_F(OverlayUserPrefStoreTest, NamesMapping) { - PrefStoreObserverMock obs; - overlay_->AddObserver(&obs); - - const Value* value = NULL; - - // Check that if there is no override in the overlay, changing underlay value - // is reported as changing an overlay value. - underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(42)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - obs.VerifyAndResetChangedKey(mapped_overlay_key); - - // Check that underlay overwriting is reported. - underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(43)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - obs.VerifyAndResetChangedKey(mapped_overlay_key); - - // Check that we get this value from the overlay with both keys - EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); - EXPECT_TRUE(base::Value(43).Equals(value)); - // In this case, overlay reads directly from the underlay. - EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); - EXPECT_TRUE(base::Value(43).Equals(value)); - - // Check that overwriting change in overlay is reported. - overlay_->SetValue(mapped_overlay_key, base::WrapUnique(new Value(44)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - obs.VerifyAndResetChangedKey(mapped_overlay_key); - - // Check that we get an overriden value from overlay, while reading the - // value from underlay still holds an old value. - EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); - EXPECT_TRUE(base::Value(44).Equals(value)); - EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); - EXPECT_TRUE(base::Value(43).Equals(value)); - EXPECT_TRUE(underlay_->GetValue(mapped_underlay_key, &value)); - EXPECT_TRUE(base::Value(43).Equals(value)); - - // Check that hidden underlay change is not reported. - underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(45)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - EXPECT_TRUE(obs.changed_keys.empty()); - - // Check that overlay remove is reported. - overlay_->RemoveValue(mapped_overlay_key, - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - obs.VerifyAndResetChangedKey(mapped_overlay_key); - - // Check that underlay remove is reported. - underlay_->RemoveValue(mapped_underlay_key, - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - obs.VerifyAndResetChangedKey(mapped_overlay_key); - - // Check that value was removed. - EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value)); - EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value)); - - // Check respecting of silence. - overlay_->SetValueSilently(mapped_overlay_key, - base::WrapUnique(new Value(46)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - EXPECT_TRUE(obs.changed_keys.empty()); - - overlay_->RemoveObserver(&obs); - - // Check successful unsubscription. - underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(47)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - overlay_->SetValue(mapped_overlay_key, base::WrapUnique(new Value(48)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - EXPECT_TRUE(obs.changed_keys.empty()); -} - // Check that mutable values are removed correctly. TEST_F(OverlayUserPrefStoreTest, ClearMutableValues) { // Set in overlay and underlay the same preference. @@ -315,10 +236,6 @@ WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); overlay_->SetValue(shared_key, base::WrapUnique(new Value(43)), WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(42)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); - overlay_->SetValue(mapped_overlay_key, base::WrapUnique(new Value(43)), - WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); auto values = overlay_->GetValues(); const Value* value = nullptr; @@ -333,11 +250,6 @@ // Check that the overlay is preferred. ASSERT_TRUE(values->Get(shared_key, &value)); EXPECT_TRUE(base::Value(43).Equals(value)); - - // Check that mapping works. - ASSERT_TRUE(values->Get(mapped_overlay_key, &value)); - EXPECT_TRUE(base::Value(43).Equals(value)); - EXPECT_FALSE(values->Get(mapped_underlay_key, &value)); } } // namespace base
diff --git a/components/spellcheck/common/BUILD.gn b/components/spellcheck/common/BUILD.gn index 69d4d0c..4806ceef 100644 --- a/components/spellcheck/common/BUILD.gn +++ b/components/spellcheck/common/BUILD.gn
@@ -2,9 +2,10 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//mojo/public/tools/bindings/mojom.gni") + source_set("common") { sources = [ - "spellcheck_bdict_language.h", "spellcheck_common.cc", "spellcheck_common.h", "spellcheck_features.cc", @@ -18,11 +19,23 @@ ] public_deps = [ + ":interfaces", "//components/spellcheck:build_features", ] + deps = [ "//base:i18n", "//ipc", "//third_party/icu", ] } + +mojom("interfaces") { + sources = [ + "spellcheck.mojom", + ] + + public_deps = [ + "//mojo/common:common_custom_types", + ] +}
diff --git a/components/spellcheck/common/OWNERS b/components/spellcheck/common/OWNERS index 42444bc..ef88cc7 100644 --- a/components/spellcheck/common/OWNERS +++ b/components/spellcheck/common/OWNERS
@@ -1,2 +1,4 @@ per-file *_messages*.h=set noparent per-file *_messages*.h=file://ipc/SECURITY_OWNERS +per-file *.mojom=set noparent +per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/components/spellcheck/common/spellcheck.mojom b/components/spellcheck/common/spellcheck.mojom new file mode 100644 index 0000000..9195261 --- /dev/null +++ b/components/spellcheck/common/spellcheck.mojom
@@ -0,0 +1,28 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +module spellcheck.mojom; + +import "mojo/common/file.mojom"; + +// Render process interface exposed to the browser for receiving process- +// wide spellcheck control and updates from the browser process. +// +interface SpellChecker { + // Initialize the render process spellchecker. Called after startup and + // also in response to a render process RequestDictionary request. + Initialize(array<SpellCheckBDictLanguage> dictionaries, + array<string> custom_words, + bool enable); + + // Custom dictionary words have been added or removed: update the local + // custom word list. + CustomDictionaryChanged(array<string> words_added, + array<string> words_removed); +}; + +struct SpellCheckBDictLanguage { + mojo.common.mojom.File? file; + string language; +};
diff --git a/components/spellcheck/common/spellcheck_bdict_language.h b/components/spellcheck/common/spellcheck_bdict_language.h deleted file mode 100644 index 95022944..0000000 --- a/components/spellcheck/common/spellcheck_bdict_language.h +++ /dev/null
@@ -1,17 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_BDICT_LANGUAGE_H_ -#define COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_BDICT_LANGUAGE_H_ - -#include <string> - -#include "ipc/ipc_platform_file.h" - -struct SpellCheckBDictLanguage { - IPC::PlatformFileForTransit file; - std::string language; -}; - -#endif // COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_BDICT_LANGUAGE_H_
diff --git a/components/spellcheck/common/spellcheck_messages.h b/components/spellcheck/common/spellcheck_messages.h index c36a6c83..e8e83a8 100644 --- a/components/spellcheck/common/spellcheck_messages.h +++ b/components/spellcheck/common/spellcheck_messages.h
@@ -7,11 +7,9 @@ #include <stdint.h> -#include "components/spellcheck/common/spellcheck_bdict_language.h" #include "components/spellcheck/common/spellcheck_result.h" #include "components/spellcheck/spellcheck_build_features.h" #include "ipc/ipc_message_macros.h" -#include "ipc/ipc_platform_file.h" #if !BUILDFLAG(ENABLE_SPELLCHECK) #error "Spellcheck should be enabled" @@ -28,28 +26,8 @@ IPC_STRUCT_TRAITS_MEMBER(replacement) IPC_STRUCT_TRAITS_END() -IPC_STRUCT_TRAITS_BEGIN(SpellCheckBDictLanguage) - IPC_STRUCT_TRAITS_MEMBER(file) - IPC_STRUCT_TRAITS_MEMBER(language) -IPC_STRUCT_TRAITS_END() - // Messages sent from the browser to the renderer. -IPC_MESSAGE_CONTROL1(SpellCheckMsg_EnableSpellCheck, bool) - -// Passes some initialization params from the browser to the renderer's -// spellchecker. This can be called directly after startup or in (async) -// response to a RequestDictionary ViewHost message. -IPC_MESSAGE_CONTROL2(SpellCheckMsg_Init, - std::vector<SpellCheckBDictLanguage> /* bdict_languages */, - std::set<std::string> /* custom_dict_words */) - -// Words have been added and removed in the custom dictionary; update the local -// custom word list. -IPC_MESSAGE_CONTROL2(SpellCheckMsg_CustomDictionaryChanged, - std::set<std::string> /* words_added */, - std::set<std::string> /* words_removed */) - #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER) // Sends text-check results from the Spelling service when the service finishes // checking text received by a SpellCheckHostMsg_CallSpellingService message.
diff --git a/components/spellcheck/renderer/BUILD.gn b/components/spellcheck/renderer/BUILD.gn index 2af3945f..96c1cb9 100644 --- a/components/spellcheck/renderer/BUILD.gn +++ b/components/spellcheck/renderer/BUILD.gn
@@ -46,8 +46,10 @@ deps = [ "//base:i18n", "//components/spellcheck/common", + "//content/public/common", "//content/public/renderer", "//ipc", + "//services/service_manager/public/cpp", "//third_party/WebKit/public:blink", "//third_party/icu", ]
diff --git a/components/spellcheck/renderer/DEPS b/components/spellcheck/renderer/DEPS index 16305c7..5911cd86 100644 --- a/components/spellcheck/renderer/DEPS +++ b/components/spellcheck/renderer/DEPS
@@ -1,6 +1,9 @@ include_rules = [ + "+content/public/common", "+content/public/renderer", "+ipc", - "+third_party/WebKit/public", + "+mojo/public/cpp/bindings", + "+services/service_manager/public/cpp", "+third_party/hunspell", + "+third_party/WebKit/public", ]
diff --git a/components/spellcheck/renderer/spellcheck.cc b/components/spellcheck/renderer/spellcheck.cc index cc9b2382..4ef53a06 100644 --- a/components/spellcheck/renderer/spellcheck.cc +++ b/components/spellcheck/renderer/spellcheck.cc
@@ -20,16 +20,18 @@ #include "build/build_config.h" #include "components/spellcheck/common/spellcheck_common.h" #include "components/spellcheck/common/spellcheck_features.h" -#include "components/spellcheck/common/spellcheck_messages.h" #include "components/spellcheck/common/spellcheck_result.h" #include "components/spellcheck/common/spellcheck_switches.h" #include "components/spellcheck/renderer/spellcheck_language.h" #include "components/spellcheck/renderer/spellcheck_provider.h" #include "components/spellcheck/spellcheck_build_features.h" +#include "content/public/common/service_manager_connection.h" +#include "content/public/common/simple_connection_filter.h" #include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_frame_visitor.h" #include "content/public/renderer/render_thread.h" -#include "ipc/ipc_platform_file.h" +#include "services/service_manager/public/cpp/bind_source_info.h" +#include "services/service_manager/public/cpp/binder_registry.h" #include "third_party/WebKit/public/platform/WebString.h" #include "third_party/WebKit/public/platform/WebVector.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" @@ -149,7 +151,22 @@ // and as such the SpellCheckProviders will never be notified of different // values. // TODO(groby): Simplify this. -SpellCheck::SpellCheck() : spellcheck_enabled_(true) {} +SpellCheck::SpellCheck() : spellcheck_enabled_(true) { + if (!content::ChildThread::Get()) + return; // Can be NULL in tests. + + auto* service_manager_connection = + content::ChildThread::Get()->GetServiceManagerConnection(); + DCHECK(service_manager_connection); + + auto registry = base::MakeUnique<service_manager::BinderRegistry>(); + registry->AddInterface( + base::Bind(&SpellCheck::SpellCheckerRequest, base::Unretained(this)), + base::ThreadTaskRunnerHandle::Get()); + + service_manager_connection->AddConnectionFilter( + base::MakeUnique<content::SimpleConnectionFilter>(std::move(registry))); +} SpellCheck::~SpellCheck() { } @@ -183,51 +200,46 @@ } } -bool SpellCheck::OnControlMessageReceived(const IPC::Message& message) { - bool handled = true; - IPC_BEGIN_MESSAGE_MAP(SpellCheck, message) - IPC_MESSAGE_HANDLER(SpellCheckMsg_Init, OnInit) - IPC_MESSAGE_HANDLER(SpellCheckMsg_CustomDictionaryChanged, - OnCustomDictionaryChanged) - IPC_MESSAGE_HANDLER(SpellCheckMsg_EnableSpellCheck, OnEnableSpellCheck) - IPC_MESSAGE_UNHANDLED(handled = false) - IPC_END_MESSAGE_MAP() - - return handled; +void SpellCheck::SpellCheckerRequest( + const service_manager::BindSourceInfo& source_info, + spellcheck::mojom::SpellCheckerRequest request) { + spellchecker_bindings_.AddBinding(this, std::move(request)); } -void SpellCheck::OnInit( - const std::vector<SpellCheckBDictLanguage>& bdict_languages, - const std::set<std::string>& custom_words) { +void SpellCheck::Initialize( + std::vector<spellcheck::mojom::SpellCheckBDictLanguagePtr> dictionaries, + const std::vector<std::string>& custom_words, + bool enable) { languages_.clear(); - for (const auto& bdict_language : bdict_languages) { - AddSpellcheckLanguage( - IPC::PlatformFileForTransitToFile(bdict_language.file), - bdict_language.language); - } - custom_dictionary_.Init(custom_words); + for (const auto& dictionary : dictionaries) + AddSpellcheckLanguage(std::move(dictionary->file), dictionary->language); + + custom_dictionary_.Init( + std::set<std::string>(custom_words.begin(), custom_words.end())); #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER) PostDelayedSpellCheckTask(pending_request_param_.release()); #endif -} -void SpellCheck::OnCustomDictionaryChanged( - const std::set<std::string>& words_added, - const std::set<std::string>& words_removed) { - custom_dictionary_.OnCustomDictionaryChanged(words_added, words_removed); - if (words_added.empty()) - return; - DocumentMarkersRemover markersRemover(words_added); - content::RenderFrame::ForEach(&markersRemover); -} - -void SpellCheck::OnEnableSpellCheck(bool enable) { spellcheck_enabled_ = enable; UpdateSpellcheckEnabled updater(enable); content::RenderFrame::ForEach(&updater); } +void SpellCheck::CustomDictionaryChanged( + const std::vector<std::string>& words_added, + const std::vector<std::string>& words_removed) { + const std::set<std::string> added(words_added.begin(), words_added.end()); + + custom_dictionary_.OnCustomDictionaryChanged( + added, std::set<std::string>(words_removed.begin(), words_removed.end())); + if (added.empty()) + return; + + DocumentMarkersRemover markersRemover(added); + content::RenderFrame::ForEach(&markersRemover); +} + // TODO(groby): Make sure we always have a spelling engine, even before // AddSpellcheckLanguage() is called. void SpellCheck::AddSpellcheckLanguage(base::File file,
diff --git a/components/spellcheck/renderer/spellcheck.h b/components/spellcheck/renderer/spellcheck.h index 4e85825..c5a839f7 100644 --- a/components/spellcheck/renderer/spellcheck.h +++ b/components/spellcheck/renderer/spellcheck.h
@@ -15,11 +15,12 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/strings/string16.h" +#include "components/spellcheck/common/spellcheck.mojom.h" #include "components/spellcheck/renderer/custom_dictionary_engine.h" #include "components/spellcheck/spellcheck_build_features.h" #include "content/public/renderer/render_thread_observer.h" +#include "mojo/public/cpp/bindings/binding_set.h" -struct SpellCheckBDictLanguage; class SpellcheckLanguage; struct SpellCheckResult; @@ -29,8 +30,8 @@ template <typename T> class WebVector; } -namespace IPC { -class Message; +namespace service_manager { +struct BindSourceInfo; } // TODO(morrita): Needs reorg with SpellCheckProvider. @@ -38,7 +39,8 @@ // Shared spellchecking logic/data for a RenderProcess. All RenderViews use // this object to perform spellchecking tasks. class SpellCheck : public content::RenderThreadObserver, - public base::SupportsWeakPtr<SpellCheck> { + public base::SupportsWeakPtr<SpellCheck>, + public spellcheck::mojom::SpellChecker { public: // TODO(groby): I wonder if this can be private, non-mac only. class SpellcheckRequest; @@ -121,15 +123,18 @@ const std::vector<std::vector<base::string16>>& suggestions_list, std::vector<base::string16>* optional_suggestions); - // RenderThreadObserver implementation: - bool OnControlMessageReceived(const IPC::Message& message) override; + // Binds requests for the SpellChecker interface. + void SpellCheckerRequest(const service_manager::BindSourceInfo& source_info, + spellcheck::mojom::SpellCheckerRequest request); - // Message handlers. - void OnInit(const std::vector<SpellCheckBDictLanguage>& bdict_languages, - const std::set<std::string>& custom_words); - void OnCustomDictionaryChanged(const std::set<std::string>& words_added, - const std::set<std::string>& words_removed); - void OnEnableSpellCheck(bool enable); + // spellcheck::mojom::SpellChecker: + void Initialize( + std::vector<spellcheck::mojom::SpellCheckBDictLanguagePtr> dictionaries, + const std::vector<std::string>& custom_words, + bool enable) override; + void CustomDictionaryChanged( + const std::vector<std::string>& words_added, + const std::vector<std::string>& words_removed) override; #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER) // Posts delayed spellcheck task and clear it if any. @@ -147,6 +152,9 @@ std::unique_ptr<SpellcheckRequest> pending_request_param_; #endif + // Bindings for SpellChecker clients. + mojo::BindingSet<spellcheck::mojom::SpellChecker> spellchecker_bindings_; + // A vector of objects used to actually check spelling, one for each enabled // language. std::vector<std::unique_ptr<SpellcheckLanguage>> languages_;
diff --git a/components/translate/core/browser/translate_ranker_impl.cc b/components/translate/core/browser/translate_ranker_impl.cc index b68c27f..1a4bcc1 100644 --- a/components/translate/core/browser/translate_ranker_impl.cc +++ b/components/translate/core/browser/translate_ranker_impl.cc
@@ -152,8 +152,6 @@ base::Bind(&TranslateRankerImpl::OnModelAvailable, weak_ptr_factory_.GetWeakPtr()), model_path, model_url, kUmaPrefix); - // Kick off the initial load from cache. - model_loader_->NotifyOfRankerActivity(); } }
diff --git a/components/ukm/debug_page/BUILD.gn b/components/ukm/debug_page/BUILD.gn new file mode 100644 index 0000000..9fa0912 --- /dev/null +++ b/components/ukm/debug_page/BUILD.gn
@@ -0,0 +1,17 @@ +# Copyright 2017 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +static_library("debug_page") { + sources = [ + "debug_page.cc", + "debug_page.h", + ] + + deps = [ + "//base", + "//components/ukm", + "//content/public/browser", + "//url", + ] +}
diff --git a/components/ukm/debug_page/DEPS b/components/ukm/debug_page/DEPS new file mode 100644 index 0000000..fe7bb13 --- /dev/null +++ b/components/ukm/debug_page/DEPS
@@ -0,0 +1,3 @@ +include_rules = [ + "+content/public", +]
diff --git a/components/ukm/debug_page/debug_page.cc b/components/ukm/debug_page/debug_page.cc new file mode 100644 index 0000000..c3fb9e8d8 --- /dev/null +++ b/components/ukm/debug_page/debug_page.cc
@@ -0,0 +1,85 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/ukm/debug_page/debug_page.h" + +#include <inttypes.h> + +#include "base/memory/ref_counted_memory.h" +#include "base/strings/stringprintf.h" +#include "components/ukm/ukm_entry.h" +#include "components/ukm/ukm_service.h" +#include "components/ukm/ukm_source.h" +#include "url/gurl.h" + +namespace ukm { +namespace debug { + +DebugPage::DebugPage(ServiceGetter service_getter) + : service_getter_(service_getter) {} + +DebugPage::~DebugPage() {} + +std::string DebugPage::GetSource() const { + return "ukm"; +} + +std::string DebugPage::GetMimeType(const std::string& path) const { + return "text/html"; +} + +void DebugPage::StartDataRequest( + const std::string& path, + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, + const content::URLDataSource::GotDataCallback& callback) { + std::string data; + data.append(R"""(<!DOCTYPE html> + <html> + <head> + <meta http-equiv="Content-Security-Policy" + content="object-src 'none'; script-src 'none'"> + <title>UKM Debug</title> + </head> + <body> + <h1>UKM Debug page</h1> + )"""); + UkmService* ukm_service = service_getter_.Run(); + if (ukm_service) { + data.append( + base::StringPrintf("<p>IsEnabled:%s</p>", + ukm_service->recording_enabled_ ? "True" : "False")); + data.append(base::StringPrintf("<p>ClientId:%" PRIu64 "</p>", + ukm_service->client_id_)); + data.append( + base::StringPrintf("<p>SessionId:%d</p>", ukm_service->session_id_)); + + data.append("<h2>Sources</h2>"); + for (const auto& kv : ukm_service->sources_) { + const auto* src = kv.second.get(); + data.append(base::StringPrintf("<p>Id:%d Url:%s</p>", src->id(), + src->url().spec().c_str())); + } + + data.append("<h2>Entries</h2>"); + for (const auto& v : ukm_service->entries_) { + const auto* entry = v.get(); + data.append(base::StringPrintf("<h3>Id:%d Hash:%" PRIu64 "</h3>", + entry->source_id(), entry->event_hash())); + } + } + + data.append(R"""( + </body> + </html> + )"""); + + callback.Run(base::RefCountedString::TakeString(&data)); +} + +bool DebugPage::AllowCaching() const { + return false; +} + +} // namespace debug +} // namespace ukm
diff --git a/components/ukm/debug_page/debug_page.h b/components/ukm/debug_page/debug_page.h new file mode 100644 index 0000000..52ae7a1 --- /dev/null +++ b/components/ukm/debug_page/debug_page.h
@@ -0,0 +1,47 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_UKM_DEBUG_PAGE_REQUEST_JOB_H_ +#define COMPONENTS_UKM_DEBUG_PAGE_REQUEST_JOB_H_ + +#include <string> + +#include "base/callback.h" +#include "base/macros.h" +#include "content/public/browser/url_data_source.h" + +namespace ukm { + +class UkmService; + +namespace debug { + +// Implements the chrome://ukm page for debugging UKM state. +class DebugPage : public content::URLDataSource { + public: + typedef base::Callback<UkmService*()> ServiceGetter; + + explicit DebugPage(ServiceGetter service_getter); + + // content::URLDataSource: + std::string GetSource() const override; + std::string GetMimeType(const std::string& path) const override; + void StartDataRequest( + const std::string& path, + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, + const content::URLDataSource::GotDataCallback& callback) override; + bool AllowCaching() const override; + + private: + ~DebugPage() override; + + ServiceGetter service_getter_; + + DISALLOW_IMPLICIT_CONSTRUCTORS(DebugPage); +}; + +} // namespace debug +} // namespace ukm + +#endif // COMPONENTS_UKM_DEBUG_PAGE_REQUEST_JOB_H_
diff --git a/components/ukm/ukm_service.h b/components/ukm/ukm_service.h index 9b493a2a..584be39f9 100644 --- a/components/ukm/ukm_service.h +++ b/components/ukm/ukm_service.h
@@ -47,6 +47,10 @@ class UkmEntryBuilder; class UkmSource; +namespace debug { +class DebugPage; +} + // This feature controls whether UkmService should be created. extern const base::Feature kUkmFeature; @@ -117,6 +121,7 @@ } private: + friend ::ukm::debug::DebugPage; friend autofill::AutofillMetrics; friend payments::JourneyLogger; friend PluginInfoMessageFilter;
diff --git a/components/viz/frame_sinks/gpu_compositor_frame_sink.cc b/components/viz/frame_sinks/gpu_compositor_frame_sink.cc index 683374f..81acb03 100644 --- a/components/viz/frame_sinks/gpu_compositor_frame_sink.cc +++ b/components/viz/frame_sinks/gpu_compositor_frame_sink.cc
@@ -36,8 +36,8 @@ GpuCompositorFrameSink::~GpuCompositorFrameSink() {} -void GpuCompositorFrameSink::EvictFrame() { - support_->EvictFrame(); +void GpuCompositorFrameSink::EvictCurrentSurface() { + support_->EvictCurrentSurface(); } void GpuCompositorFrameSink::SetNeedsBeginFrame(bool needs_begin_frame) {
diff --git a/components/viz/frame_sinks/gpu_compositor_frame_sink.h b/components/viz/frame_sinks/gpu_compositor_frame_sink.h index beb2bd2..1d0e0433 100644 --- a/components/viz/frame_sinks/gpu_compositor_frame_sink.h +++ b/components/viz/frame_sinks/gpu_compositor_frame_sink.h
@@ -37,7 +37,7 @@ ~GpuCompositorFrameSink() override; // cc::mojom::MojoCompositorFrameSink: - void EvictFrame() override; + void EvictCurrentSurface() override; void SetNeedsBeginFrame(bool needs_begin_frame) override; void SubmitCompositorFrame(const cc::LocalSurfaceId& local_surface_id, cc::CompositorFrame frame) override;
diff --git a/components/viz/frame_sinks/gpu_root_compositor_frame_sink.cc b/components/viz/frame_sinks/gpu_root_compositor_frame_sink.cc index 5aa6bad..b614fe8 100644 --- a/components/viz/frame_sinks/gpu_root_compositor_frame_sink.cc +++ b/components/viz/frame_sinks/gpu_root_compositor_frame_sink.cc
@@ -75,8 +75,8 @@ display_->SetLocalSurfaceId(local_surface_id, scale_factor); } -void GpuRootCompositorFrameSink::EvictFrame() { - support_->EvictFrame(); +void GpuRootCompositorFrameSink::EvictCurrentSurface() { + support_->EvictCurrentSurface(); } void GpuRootCompositorFrameSink::SetNeedsBeginFrame(bool needs_begin_frame) {
diff --git a/components/viz/frame_sinks/gpu_root_compositor_frame_sink.h b/components/viz/frame_sinks/gpu_root_compositor_frame_sink.h index 5dceef59..dc973c2 100644 --- a/components/viz/frame_sinks/gpu_root_compositor_frame_sink.h +++ b/components/viz/frame_sinks/gpu_root_compositor_frame_sink.h
@@ -55,7 +55,7 @@ float scale_factor) override; // cc::mojom::MojoCompositorFrameSink: - void EvictFrame() override; + void EvictCurrentSurface() override; void SetNeedsBeginFrame(bool needs_begin_frame) override; void SubmitCompositorFrame(const cc::LocalSurfaceId& local_surface_id, cc::CompositorFrame frame) override;
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 8b8f8b33..4503ca0 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -323,6 +323,8 @@ "appcache/appcache_navigation_handle.h", "appcache/appcache_navigation_handle_core.cc", "appcache/appcache_navigation_handle_core.h", + "appcache/appcache_network_service_handler.cc", + "appcache/appcache_network_service_handler.h", "appcache/appcache_policy.h", "appcache/appcache_quota_client.cc", "appcache/appcache_quota_client.h",
diff --git a/content/browser/accessibility/browser_accessibility_manager.cc b/content/browser/accessibility/browser_accessibility_manager.cc index cb926b1..264a86b 100644 --- a/content/browser/accessibility/browser_accessibility_manager.cc +++ b/content/browser/accessibility/browser_accessibility_manager.cc
@@ -387,6 +387,13 @@ connected_to_parent_tree_node_ = false; } + // Fire any events related to changes to the tree. + for (auto& event : tree_events_) { + NotifyAccessibilityEvent(BrowserAccessibilityEvent::FromTreeChange, + event.first, event.second); + } + tree_events_.clear(); + // Based on the changes to the tree, first fire focus events if needed. // Screen readers might not do the right thing if they're not aware of what // has focus, so always try that first. Nothing will be fired if the window @@ -394,8 +401,8 @@ GetRootManager()->FireFocusEventsIfNeeded( BrowserAccessibilityEvent::FromBlink); - // Now iterate over the events again and fire the events other than focus - // events. + // Now iterate over the events from the renderer and fire the events + // other than focus events. for (uint32_t index = 0; index < details.size(); index++) { const AXEventNotificationDetails& detail = details[index]; @@ -1184,11 +1191,10 @@ BrowserAccessibility* object = GetFromAXNode(created_node); if (object && object->HasStringAttribute(ui::AX_ATTR_LIVE_STATUS)) { if (object->GetRole() == ui::AX_ROLE_ALERT) { - NotifyAccessibilityEvent(BrowserAccessibilityEvent::FromTreeChange, - ui::AX_EVENT_ALERT, object); + tree_events_.push_back(std::make_pair(ui::AX_EVENT_ALERT, object)); } else { - NotifyAccessibilityEvent(BrowserAccessibilityEvent::FromTreeChange, - ui::AX_EVENT_LIVE_REGION_CREATED, object); + tree_events_.push_back( + std::make_pair(ui::AX_EVENT_LIVE_REGION_CREATED, object)); } } }
diff --git a/content/browser/accessibility/browser_accessibility_manager.h b/content/browser/accessibility/browser_accessibility_manager.h index a0bb255..6bd0d1b 100644 --- a/content/browser/accessibility/browser_accessibility_manager.h +++ b/content/browser/accessibility/browser_accessibility_manager.h
@@ -441,6 +441,11 @@ // A mapping from a node id to its wrapper of type BrowserAccessibility. base::hash_map<int32_t, BrowserAccessibility*> id_wrapper_map_; + // A list of accessibility events to fire based on changes to the + // accessibility tree. Only used within the scope of one call to + // OnAccessibilityEvents, so it's safe to store raw pointers. + std::vector<std::pair<ui::AXEvent, BrowserAccessibility*>> tree_events_; + // True if the user has initiated a navigation to another page. bool user_is_navigating_away_;
diff --git a/content/browser/accessibility/dump_accessibility_events_browsertest.cc b/content/browser/accessibility/dump_accessibility_events_browsertest.cc index d099d9e7..0d2e892 100644 --- a/content/browser/accessibility/dump_accessibility_events_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_events_browsertest.cc
@@ -152,7 +152,6 @@ } // TODO(dmazzoni): port these tests to run on all platforms. -// TODO(crbug.com/617146): All tests flaky on Windows 8. #if defined(OS_WIN) || defined(OS_MACOSX) // This is tasteless, but then so's the snippet it's replacing. @@ -162,6 +161,12 @@ #define DISABLED_ON_WIN(name) name #endif +#if defined(OS_MACOSX) +#define DISABLED_ON_MAC(name) DISABLED_##name +#else +#define DISABLED_ON_MAC(name) name +#endif + #if defined(OS_WIN) || defined(OS_MACOSX) #define DISABLED_ON_WIN_AND_MAC(name) DISABLED_ ## name #else @@ -173,27 +178,24 @@ RunEventTest(FILE_PATH_LITERAL("aria-combo-box-collapse.html")); } -// https://crbug.com/652706 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, - DISABLED_ON_WIN(AccessibilityEventsAriaComboBoxExpand)) { + AccessibilityEventsAriaComboBoxExpand) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-expand.html")); } -// Mac: https://crbug.com/615411, Win: https://crbug.com/652706 +// https://crbug.com/719030 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, DISABLED_ON_WIN_AND_MAC(AccessibilityEventsAriaComboBoxFocus)) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-focus.html")); } -// https://crbug.com/652706 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, - DISABLED_ON_WIN(AccessibilityEventsAriaComboBoxNext)) { + AccessibilityEventsAriaComboBoxNext) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-next.html")); } -// https://crbug.com/652706 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, - DISABLED_ON_WIN(AccessibilityEventsAddAlert)) { + AccessibilityEventsAddAlert) { RunEventTest(FILE_PATH_LITERAL("add-alert.html")); } @@ -247,16 +249,10 @@ RunEventTest(FILE_PATH_LITERAL("inner-html-change.html")); } -#if defined(OS_MACOSX) -// Mac failures: http://crbug.com/598527. -#define MAYBE_AccessibilityEventsInputTypeTextValueChanged \ - DISABLED_AccessibilityEventsInputTypeTextValueChanged -#else -#define MAYBE_AccessibilityEventsInputTypeTextValueChanged \ - AccessibilityEventsInputTypeTextValueChanged -#endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, - MAYBE_AccessibilityEventsInputTypeTextValueChanged) { +// http://crbug.com/719030 +IN_PROC_BROWSER_TEST_F( + DumpAccessibilityEventsTest, + DISABLED_ON_MAC(AccessibilityEventsInputTypeTextValueChanged)) { RunEventTest(FILE_PATH_LITERAL("input-type-text-value-changed.html")); } @@ -265,8 +261,6 @@ RunEventTest(FILE_PATH_LITERAL("listbox-focus.html")); } -// Flaky on Windows: http://crbug.com/486861 -// Flaky on Mac: http://crbug.com/588271 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, AccessibilityEventsListboxNext) { RunEventTest(FILE_PATH_LITERAL("listbox-next.html")); @@ -277,7 +271,7 @@ RunEventTest(FILE_PATH_LITERAL("menulist-collapse.html")); } -// Mac: https://crbug.com/615411, Win: https://crbug.com/652706 +// https://crbug.com/719030 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, DISABLED_ON_WIN_AND_MAC(AccessibilityEventsMenuListExpand)) { RunEventTest(FILE_PATH_LITERAL("menulist-expand.html")); @@ -288,13 +282,13 @@ RunEventTest(FILE_PATH_LITERAL("menulist-focus.html")); } -// Mac: https://crbug.com/615411, Win: https://crbug.com/652706 +// https://crbug.com/719030 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, DISABLED_ON_WIN_AND_MAC(AccessibilityEventsMenuListNext)) { RunEventTest(FILE_PATH_LITERAL("menulist-next.html")); } -// Flaky on Windows: http://crbug.com/486861 +// http://crbug.com/719030 IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsMenuListPopup) { RunEventTest(FILE_PATH_LITERAL("menulist-popup.html"));
diff --git a/content/browser/appcache/appcache_job.cc b/content/browser/appcache/appcache_job.cc index 0666c92..27a5897 100644 --- a/content/browser/appcache/appcache_job.cc +++ b/content/browser/appcache/appcache_job.cc
@@ -42,6 +42,10 @@ return nullptr; } +AppCacheURLLoaderJob* AppCacheJob::AsURLLoaderJob() { + return nullptr; +} + AppCacheJob::AppCacheJob() : weak_factory_(this) {} } // namespace content
diff --git a/content/browser/appcache/appcache_job.h b/content/browser/appcache/appcache_job.h index a28bc33..bc7a14b 100644 --- a/content/browser/appcache/appcache_job.h +++ b/content/browser/appcache/appcache_job.h
@@ -25,6 +25,7 @@ class AppCacheHost; class AppCacheRequest; class AppCacheStorage; +class AppCacheURLLoaderJob; class URLRequestJob; // Interface for an AppCache job. This is used to send data stored in the @@ -100,9 +101,13 @@ virtual const GURL& GetURL() const = 0; // Returns the underlying URLRequestJob if any. This only applies to - // AppCaches loaded via the URLRequest mechanism. + // AppCaches loaded via the URLLoader mechanism. virtual net::URLRequestJob* AsURLRequestJob(); + // Returns the underlying ApppCacheURLLoaderJob if any. This only applies to + // AppCaches loaded via the URLRequest mechanism. + virtual AppCacheURLLoaderJob* AsURLLoaderJob(); + protected: AppCacheJob();
diff --git a/content/browser/appcache/appcache_network_service_handler.cc b/content/browser/appcache/appcache_network_service_handler.cc new file mode 100644 index 0000000..3029421d1 --- /dev/null +++ b/content/browser/appcache/appcache_network_service_handler.cc
@@ -0,0 +1,68 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/appcache/appcache_network_service_handler.h" +#include "base/bind.h" +#include "base/logging.h" +#include "content/browser/appcache/appcache_entry.h" +#include "content/browser/appcache/appcache_host.h" +#include "content/browser/appcache/appcache_navigation_handle_core.h" +#include "content/browser/appcache/appcache_policy.h" +#include "content/browser/appcache/appcache_request.h" +#include "content/public/browser/browser_thread.h" + +namespace content { + +AppCacheNetworkServiceHandler::AppCacheNetworkServiceHandler( + std::unique_ptr<ResourceRequest> resource_request, + AppCacheNavigationHandleCore* navigation_handle_core, + base::Callback<void(mojom::URLLoaderFactoryPtrInfo, + std::unique_ptr<ResourceRequest>)> callback) + : resource_request_(std::move(resource_request)), + callback_(callback), + storage_(navigation_handle_core->host()->storage()), + host_(navigation_handle_core->host()) {} + +AppCacheNetworkServiceHandler::~AppCacheNetworkServiceHandler() {} + +void AppCacheNetworkServiceHandler::Start() { + storage_->FindResponseForMainRequest(resource_request_->url, GURL(), this); +} + +void AppCacheNetworkServiceHandler::OnMainResponseFound( + const GURL& url, + const AppCacheEntry& entry, + const GURL& fallback_url, + const AppCacheEntry& fallback_entry, + int64_t cache_id, + int64_t group_id, + const GURL& manifest_url) { + AppCachePolicy* policy = host_->service()->appcache_policy(); + bool was_blocked_by_policy = + !manifest_url.is_empty() && policy && + !policy->CanLoadAppCache(manifest_url, host_->first_party_url()); + + if (was_blocked_by_policy || !entry.has_response_id() || + cache_id == kAppCacheNoCacheId) { + BrowserThread::PostTask( + BrowserThread::UI, FROM_HERE, + base::Bind(callback_, + base::Passed(mojom::URLLoaderFactoryPtrInfo()), + base::Passed(std::move(resource_request_)))); + } else { + DLOG(WARNING) << "AppCache found for url " << url + << " falling back to network for now\n"; + // TODO(ananta) + // Pass a URLLoaderFactory pointer which supports serving URL requests from + // the cache. The other option is to create the loader directly here. + BrowserThread::PostTask( + BrowserThread::UI, FROM_HERE, + base::Bind(callback_, + base::Passed(mojom::URLLoaderFactoryPtrInfo()), + base::Passed(std::move(resource_request_)))); + } + delete this; +} + +} // namespace content \ No newline at end of file
diff --git a/content/browser/appcache/appcache_network_service_handler.h b/content/browser/appcache/appcache_network_service_handler.h new file mode 100644 index 0000000..1a1e27b --- /dev/null +++ b/content/browser/appcache/appcache_network_service_handler.h
@@ -0,0 +1,83 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_APPCACHE_APPCACHE_NETWORK_SERVICE_HANDLER_ +#define CONTENT_BROWSER_APPCACHE_APPCACHE_NETWORK_SERVICE_HANDLER_ + +#include <memory> + +#include "base/macros.h" +#include "content/browser/appcache/appcache_service_impl.h" +#include "content/browser/appcache/appcache_storage.h" +#include "content/common/content_export.h" +#include "content/common/url_loader_factory.mojom.h" +#include "content/public/common/resource_type.h" + +namespace content { +class AppCacheEntry; +class AppCacheHost; +class AppCacheNavigationHandleCore; +class AppCacheStorage; +class ResourceContext; +struct ResourceRequest; + +// This class is instantiated during navigation, to check if the URL being +// navigated to can be served out of the AppCache. +// The AppCacheRequestHandler class provides this functionality as well. +// However it is tightly coupled with the underlying job and the lifetime +// of that class gets a touch complicated. The AppCacheRequestHandler is +// generally associated with a request and it dies when the request goes away. +// For this case, we are just checking if the URL can be served out of the +// cache. If yes, then the plan is to create a URLLoaderFactory which can serve +// URL requests from the cache. +// TODO(ananta) +// Look into whether we can get rid of this class when the overall picture of +// how AppCache interacts with the network service gets clearer. +class CONTENT_EXPORT AppCacheNetworkServiceHandler + : public AppCacheStorage::Delegate { + public: + AppCacheNetworkServiceHandler( + std::unique_ptr<ResourceRequest> resource_request, + AppCacheNavigationHandleCore* navigation_handle_core, + base::Callback<void(mojom::URLLoaderFactoryPtrInfo, + std::unique_ptr<ResourceRequest>)> callback); + + ~AppCacheNetworkServiceHandler() override; + + // Called to start the process of looking up the URL in the AppCache + // database, + void Start(); + + // AppCacheStorage::Delegate methods + // The AppCacheNetworkServiceHandler instance is deleted on return from this + // function. + void OnMainResponseFound(const GURL& url, + const AppCacheEntry& entry, + const GURL& fallback_url, + const AppCacheEntry& fallback_entry, + int64_t cache_id, + int64_t group_id, + const GURL& mainfest_url) override; + + private: + std::unique_ptr<ResourceRequest> resource_request_; + + // Callback to invoke when we make a determination on whether the request is + // to be served from the cache or network. + base::Callback<void(mojom::URLLoaderFactoryPtrInfo, + std::unique_ptr<ResourceRequest>)> callback_; + + AppCacheStorage* storage_; + + // The precreated host pointer from the AppCacheNavigationHandleCore class. + // The ownership of this pointer stays with the AppCacheNavigationHandleCore + // class. + AppCacheHost* host_; + + DISALLOW_COPY_AND_ASSIGN(AppCacheNetworkServiceHandler); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_APPCACHE_APPCACHE_NETWORK_SERVICE_HANDLER_
diff --git a/content/browser/appcache/appcache_request_handler.cc b/content/browser/appcache/appcache_request_handler.cc index 870fa7d..d9dd4f12 100644 --- a/content/browser/appcache/appcache_request_handler.cc +++ b/content/browser/appcache/appcache_request_handler.cc
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "content/browser/appcache/appcache.h" #include "content/browser/appcache/appcache_backend_impl.h" +#include "content/browser/appcache/appcache_network_service_handler.h" #include "content/browser/appcache/appcache_policy.h" #include "content/browser/appcache/appcache_request.h" #include "content/browser/appcache/appcache_url_request_job.h" @@ -223,6 +224,23 @@ CompleteCrossSiteTransfer(old_process_id_, old_host_id_); } +// static. +void AppCacheRequestHandler::InitializeForNavigationNetworkService( + std::unique_ptr<ResourceRequest> resource_request, + ResourceContext* resource_context, + AppCacheNavigationHandleCore* navigation_handle_core, + ResourceType resource_type, + base::Callback<void(mojom::URLLoaderFactoryPtrInfo, + std::unique_ptr<ResourceRequest>)> callback) { + // This instance is deleted when it receives a callback from the + // AppCacheStorage class which contains information about the AppCache + // status for the URL being served by the |resource_request|. + AppCacheNetworkServiceHandler* network_service_handler = + new AppCacheNetworkServiceHandler( + std::move(resource_request), navigation_handle_core, callback); + network_service_handler->Start(); +} + void AppCacheRequestHandler::OnDestructionImminent(AppCacheHost* host) { storage()->CancelDelegateCallbacks(this); host_ = NULL; // no need to RemoveObserver, the host is being deleted
diff --git a/content/browser/appcache/appcache_request_handler.h b/content/browser/appcache/appcache_request_handler.h index 3b7e167..0e3450f 100644 --- a/content/browser/appcache/appcache_request_handler.h +++ b/content/browser/appcache/appcache_request_handler.h
@@ -17,6 +17,7 @@ #include "content/browser/appcache/appcache_host.h" #include "content/browser/appcache/appcache_service_impl.h" #include "content/common/content_export.h" +#include "content/common/url_loader_factory.mojom.h" #include "content/public/common/resource_type.h" namespace net { @@ -26,9 +27,11 @@ namespace content { class AppCacheJob; +class AppCacheNavigationHandleCore; class AppCacheRequest; class AppCacheRequestHandlerTest; class AppCacheURLRequestJob; +class ResourceContext; // An instance is created for each net::URLRequest. The instance survives all // http transactions involved in the processing of its net::URLRequest, and is @@ -69,6 +72,20 @@ type == RESOURCE_TYPE_SHARED_WORKER; } + // PlzNavigate and --enable-network-service. + // Checks whether the |resource_request| can be served out of the AppCache + // and invokes the |callback| accordingly. If the request can be served + // out of the AppCache, we could return a URLLoaderFactory which can serve + // requests out of the AppCache to the callback, or we could create the + // loader right there. At this point we are leaning towards the latter. + static void InitializeForNavigationNetworkService( + std::unique_ptr<ResourceRequest> resource_request, + ResourceContext* resource_context, + AppCacheNavigationHandleCore* navigation_handle_core, + ResourceType resource_type, + base::Callback<void(mojom::URLLoaderFactoryPtrInfo, + std::unique_ptr<ResourceRequest>)> callback); + private: friend class AppCacheHost;
diff --git a/content/browser/appcache/appcache_url_loader_request.cc b/content/browser/appcache/appcache_url_loader_request.cc index e049c25..c85de029 100644 --- a/content/browser/appcache/appcache_url_loader_request.cc +++ b/content/browser/appcache/appcache_url_loader_request.cc
@@ -8,25 +8,28 @@ namespace content { // static -AppCacheURLLoaderRequest* AppCacheURLLoaderRequest::Create( - const ResourceRequest& request) { - return new AppCacheURLLoaderRequest(request); +std::unique_ptr<AppCacheURLLoaderRequest> AppCacheURLLoaderRequest::Create( + std::unique_ptr<ResourceRequest> request) { + return std::unique_ptr<AppCacheURLLoaderRequest>( + new AppCacheURLLoaderRequest(std::move(request))); } +AppCacheURLLoaderRequest::~AppCacheURLLoaderRequest() {} + const GURL& AppCacheURLLoaderRequest::GetURL() const { - return request_.url; + return request_->url; } const std::string& AppCacheURLLoaderRequest::GetMethod() const { - return request_.method; + return request_->method; } const GURL& AppCacheURLLoaderRequest::GetFirstPartyForCookies() const { - return request_.first_party_for_cookies; + return request_->first_party_for_cookies; } const GURL AppCacheURLLoaderRequest::GetReferrer() const { - return request_.referrer; + return request_->referrer; } bool AppCacheURLLoaderRequest::IsSuccess() const { @@ -51,13 +54,11 @@ } ResourceRequest* AppCacheURLLoaderRequest::GetResourceRequest() { - return &request_; + return request_.get(); } AppCacheURLLoaderRequest::AppCacheURLLoaderRequest( - const ResourceRequest& request) - : request_(request) {} - -AppCacheURLLoaderRequest::~AppCacheURLLoaderRequest() {} + std::unique_ptr<ResourceRequest> request) + : request_(std::move(request)) {} } // namespace content
diff --git a/content/browser/appcache/appcache_url_loader_request.h b/content/browser/appcache/appcache_url_loader_request.h index dde380a..13581f1 100644 --- a/content/browser/appcache/appcache_url_loader_request.h +++ b/content/browser/appcache/appcache_url_loader_request.h
@@ -16,7 +16,10 @@ public: // Factory function to create an instance of the AppCacheResourceRequest // class. - static AppCacheURLLoaderRequest* Create(const ResourceRequest& request); + static std::unique_ptr<AppCacheURLLoaderRequest> Create( + std::unique_ptr<ResourceRequest> request); + + ~AppCacheURLLoaderRequest() override; // AppCacheRequest overrides. // TODO(ananta) @@ -39,11 +42,10 @@ ResourceRequest* GetResourceRequest() override; protected: - explicit AppCacheURLLoaderRequest(const ResourceRequest& request); - ~AppCacheURLLoaderRequest() override; + explicit AppCacheURLLoaderRequest(std::unique_ptr<ResourceRequest> request); private: - ResourceRequest request_; + std::unique_ptr<ResourceRequest> request_; DISALLOW_COPY_AND_ASSIGN(AppCacheURLLoaderRequest); };
diff --git a/content/browser/blob_storage/blob_internals_url_loader.cc b/content/browser/blob_storage/blob_internals_url_loader.cc index fe5d62b2..84906c8 100644 --- a/content/browser/blob_storage/blob_internals_url_loader.cc +++ b/content/browser/blob_storage/blob_internals_url_loader.cc
@@ -26,16 +26,7 @@ std::string output = storage::ViewBlobInternalsJob::GenerateHTML( blob_storage_context->context()); - - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = output.size(); - mojo::DataPipe data_pipe(options); - - DCHECK(data_pipe.producer_handle.is_valid()); - DCHECK(data_pipe.consumer_handle.is_valid()); + mojo::DataPipe data_pipe(output.size()); void* buffer = nullptr; uint32_t num_bytes = output.size(); @@ -50,14 +41,7 @@ CHECK_EQ(result, MOJO_RESULT_OK); client->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); - - ResourceRequestCompletionStatus request_complete_data; - request_complete_data.error_code = net::OK; - request_complete_data.exists_in_cache = false; - request_complete_data.completion_time = base::TimeTicks::Now(); - request_complete_data.encoded_data_length = output.size(); - request_complete_data.encoded_body_length = output.size(); - client->OnComplete(request_complete_data); + client->OnComplete(ResourceRequestCompletionStatus(output.size())); } } // namespace content
diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc index 2a5fd55..6015c1cf 100644 --- a/content/browser/child_process_launcher.cc +++ b/content/browser/child_process_launcher.cc
@@ -87,9 +87,11 @@ if (process_.process.IsValid()) { // Set up Mojo IPC to the new process. DCHECK(invitation); - invitation->Send(process_.process.Handle(), - mojo::edk::ConnectionParams(std::move(server_handle)), - process_error_callback_); + invitation->Send( + process_.process.Handle(), + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + std::move(server_handle)), + process_error_callback_); client_->OnProcessLaunched(); } else { termination_status_ = base::TERMINATION_STATUS_LAUNCH_FAILED;
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc index d572f3a..951122cd 100644 --- a/content/browser/devtools/render_frame_devtools_agent_host.cc +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
@@ -472,12 +472,6 @@ g_instances.Get().push_back(this); AddRef(); // Balanced in RenderFrameHostDestroyed. - DevToolsManager* manager = DevToolsManager::GetInstance(); - if (manager->delegate()) { - type_ = manager->delegate()->GetTargetType(host); - title_ = manager->delegate()->GetTargetTitle(host); - } - NotifyCreated(); } @@ -1020,16 +1014,26 @@ } std::string RenderFrameDevToolsAgentHost::GetType() { - if (!type_.empty()) - return type_; + DevToolsManager* manager = DevToolsManager::GetInstance(); + if (manager->delegate() && current_) { + std::string type = manager->delegate()->GetTargetType(current_->host()); + if (!type.empty()) + return type; + } + if (IsChildFrame()) return kTypeFrame; return kTypePage; } std::string RenderFrameDevToolsAgentHost::GetTitle() { - if (!title_.empty()) - return title_; + DevToolsManager* manager = DevToolsManager::GetInstance(); + if (manager->delegate() && current_) { + std::string title = manager->delegate()->GetTargetTitle(current_->host()); + if (!title.empty()) + return title; + } + if (current_ && current_->host()->GetParent()) return current_->host()->GetLastCommittedURL().spec(); content::WebContents* web_contents = GetWebContents();
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.h b/content/browser/devtools/render_frame_devtools_agent_host.h index 7e600114..ff6bbd85 100644 --- a/content/browser/devtools/render_frame_devtools_agent_host.h +++ b/content/browser/devtools/render_frame_devtools_agent_host.h
@@ -171,8 +171,6 @@ #endif RenderFrameHostImpl* handlers_frame_host_; bool current_frame_crashed_; - std::string title_; - std::string type_; // PlzNavigate
diff --git a/content/browser/frame_host/render_widget_host_view_child_frame.cc b/content/browser/frame_host/render_widget_host_view_child_frame.cc index 8c14e80..5fdd44e 100644 --- a/content/browser/frame_host/render_widget_host_view_child_frame.cc +++ b/content/browser/frame_host/render_widget_host_view_child_frame.cc
@@ -679,7 +679,7 @@ void RenderWidgetHostViewChildFrame::ClearCompositorSurfaceIfNecessary() { if (!support_) return; - support_->EvictFrame(); + support_->EvictCurrentSurface(); has_frame_ = false; }
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc index 03fd18bd..454f2589 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc
@@ -737,7 +737,9 @@ TRACE_EVENT0("gpu", "GpuProcessHost::CreateGpuMemoryBuffer"); DCHECK(CalledOnValidThread()); - create_gpu_memory_buffer_requests_.push(callback); + DCHECK(create_gpu_memory_buffer_requests_.find(id) == + create_gpu_memory_buffer_requests_.end()); + create_gpu_memory_buffer_requests_[id] = callback; gpu_service_ptr_->CreateGpuMemoryBuffer( id, size, format, usage, client_id, surface_handle, base::Bind(&GpuProcessHost::OnGpuMemoryBufferCreated, @@ -793,9 +795,14 @@ const gfx::GpuMemoryBufferHandle& handle) { TRACE_EVENT0("gpu", "GpuProcessHost::OnGpuMemoryBufferCreated"); - DCHECK(!create_gpu_memory_buffer_requests_.empty()); - auto callback = create_gpu_memory_buffer_requests_.front(); - create_gpu_memory_buffer_requests_.pop(); + if (create_gpu_memory_buffer_requests_.find(handle.id) == + create_gpu_memory_buffer_requests_.end()) { + DVLOG(1) << "GpuMemoryBuffer creation fails due to missing callback."; + return; + } + + auto callback = create_gpu_memory_buffer_requests_[handle.id]; + create_gpu_memory_buffer_requests_.erase(handle.id); callback.Run(handle, BufferCreationStatus::SUCCESS); } @@ -1078,12 +1085,12 @@ EstablishChannelStatus::GPU_HOST_INVALID); } - while (!create_gpu_memory_buffer_requests_.empty()) { - auto callback = create_gpu_memory_buffer_requests_.front(); - create_gpu_memory_buffer_requests_.pop(); + for (auto& pair : create_gpu_memory_buffer_requests_) { + auto callback = pair.second; callback.Run(gfx::GpuMemoryBufferHandle(), BufferCreationStatus::GPU_HOST_INVALID); } + create_gpu_memory_buffer_requests_.clear(); if (!send_destroying_video_surface_done_cb_.is_null()) base::ResetAndReturn(&send_destroying_video_surface_done_cb_).Run();
diff --git a/content/browser/gpu/gpu_process_host.h b/content/browser/gpu/gpu_process_host.h index bd98b70..7724755 100644 --- a/content/browser/gpu/gpu_process_host.h +++ b/content/browser/gpu/gpu_process_host.h
@@ -231,7 +231,8 @@ std::queue<EstablishChannelCallback> channel_requests_; // The pending create gpu memory buffer requests we need to reply to. - std::queue<CreateGpuMemoryBufferCallback> create_gpu_memory_buffer_requests_; + base::flat_map<gfx::GpuMemoryBufferId, CreateGpuMemoryBufferCallback> + create_gpu_memory_buffer_requests_; // A callback to signal the completion of a SendDestroyingVideoSurface call. base::Closure send_destroying_video_surface_done_cb_;
diff --git a/content/browser/histogram_internals_url_loader.cc b/content/browser/histogram_internals_url_loader.cc index 67b37b3c..8e38a9b6 100644 --- a/content/browser/histogram_internals_url_loader.cc +++ b/content/browser/histogram_internals_url_loader.cc
@@ -22,28 +22,11 @@ base::StatisticsRecorder::ImportProvidedHistograms(); std::string data = HistogramInternalsRequestJob::GenerateHTML(request.url); - - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = data.size(); - mojo::DataPipe data_pipe(options); - - DCHECK(data_pipe.producer_handle.is_valid()); - DCHECK(data_pipe.consumer_handle.is_valid()); - + mojo::DataPipe data_pipe(data.size()); CHECK(mojo::common::BlockingCopyFromString(data, data_pipe.producer_handle)); client->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); - - ResourceRequestCompletionStatus request_complete_data; - request_complete_data.error_code = net::OK; - request_complete_data.exists_in_cache = false; - request_complete_data.completion_time = base::TimeTicks::Now(); - request_complete_data.encoded_data_length = data.size(); - request_complete_data.encoded_body_length = data.size(); - client->OnComplete(request_complete_data); + client->OnComplete(ResourceRequestCompletionStatus(data.size())); } } // namespace content
diff --git a/content/browser/loader/navigation_url_loader_network_service.cc b/content/browser/loader/navigation_url_loader_network_service.cc index be7fcf1..3cf2541 100644 --- a/content/browser/loader/navigation_url_loader_network_service.cc +++ b/content/browser/loader/navigation_url_loader_network_service.cc
@@ -9,6 +9,9 @@ #include "base/lazy_instance.h" #include "base/memory/ptr_util.h" #include "base/trace_event/trace_event.h" +#include "content/browser/appcache/appcache_navigation_handle.h" +#include "content/browser/appcache/appcache_navigation_handle_core.h" +#include "content/browser/appcache/appcache_request_handler.h" #include "content/browser/blob_storage/chrome_blob_storage_context.h" #include "content/browser/frame_host/frame_tree_node.h" #include "content/browser/frame_host/navigation_request_info.h" @@ -38,21 +41,35 @@ static base::LazyInstance<mojom::URLLoaderFactoryPtr>::Leaky g_url_loader_factory = LAZY_INSTANCE_INITIALIZER; -// This function is called on the IO thread for POST/PUT requests for -// attaching blob information to the request body. -void HandleRequestsWithBody( - std::unique_ptr<ResourceRequest> request, - ResourceContext* resource_context, - base::WeakPtr<NavigationURLLoaderNetworkService> url_loader) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - DCHECK(request->request_body.get()); +using CompleteNavigationStartCallback = + base::Callback<void(mojom::URLLoaderFactoryPtrInfo, + std::unique_ptr<ResourceRequest>)>; - AttachRequestBodyBlobDataHandles(request->request_body.get(), - resource_context); +void PrepareNavigationOnIOThread( + std::unique_ptr<ResourceRequest> resource_request, + ResourceContext* resource_context, + ResourceType resource_type, + AppCacheNavigationHandleCore* appcache_handle_core, + CompleteNavigationStartCallback complete_request) { + if (resource_request->request_body.get()) { + AttachRequestBodyBlobDataHandles(resource_request->request_body.get(), + resource_context); + } + + mojom::URLLoaderFactoryPtrInfo url_loader_factory_ptr_info; + + if (appcache_handle_core) { + AppCacheRequestHandler::InitializeForNavigationNetworkService( + std::move(resource_request), resource_context, appcache_handle_core, + resource_type, complete_request); + return; + } + BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(&NavigationURLLoaderNetworkService::StartURLRequest, - url_loader, base::Passed(&request))); + base::Bind(complete_request, + base::Passed(std::move(url_loader_factory_ptr_info)), + base::Passed(std::move(resource_request)))); } } // namespace @@ -105,19 +122,24 @@ new_request->load_flags = load_flags; new_request->request_body = request_info_->common_params.post_data.get(); - if (new_request->request_body.get()) { - // The request body may need blob handles to be added to it. This - // functionality has to be invoked on the IO thread. + + // AppCache or post data needs some handling on the IO thread. + // The request body may need blob handles to be added to it. This + // functionality has to be invoked on the IO thread. + if (/*appcache_handle || */ new_request->request_body.get()) { + ResourceType resource_type = request_info_->is_main_frame + ? RESOURCE_TYPE_MAIN_FRAME + : RESOURCE_TYPE_SUB_FRAME; BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&HandleRequestsWithBody, - base::Passed(&new_request), - resource_context, - weak_factory_.GetWeakPtr())); + base::Bind( + &PrepareNavigationOnIOThread, base::Passed(std::move(new_request)), + resource_context, resource_type, appcache_handle->core(), + base::Bind(&NavigationURLLoaderNetworkService::StartURLRequest, + weak_factory_.GetWeakPtr()))); return; } - - StartURLRequest(std::move(new_request)); + StartURLRequest(mojom::URLLoaderFactoryPtrInfo(), std::move(new_request)); } NavigationURLLoaderNetworkService::~NavigationURLLoaderNetworkService() {} @@ -200,9 +222,14 @@ } void NavigationURLLoaderNetworkService::StartURLRequest( + mojom::URLLoaderFactoryPtrInfo url_loader_factory_info, std::unique_ptr<ResourceRequest> request) { DCHECK_CURRENTLY_ON(BrowserThread::UI); + // Bind the URLClient implementation to this object to pass to the URLLoader. + if (binding_.is_bound()) + binding_.Unbind(); + mojom::URLLoaderClientPtr url_loader_client_ptr_to_pass; binding_.Bind(&url_loader_client_ptr_to_pass); @@ -224,8 +251,16 @@ factory = factory_ptr.get(); } - if (!factory) - factory = GetURLLoaderFactory(); + if (!factory) { + // If a URLLoaderFactory was provided, then we use that one, otherwise + // fall back to connecting directly to the network service. + if (url_loader_factory_info.is_valid()) { + url_loader_factory_.Bind(std::move(url_loader_factory_info)); + factory = url_loader_factory_.get(); + } else { + factory = GetURLLoaderFactory(); + } + } factory->CreateLoaderAndStart(mojo::MakeRequest(&url_loader_associated_ptr_), 0 /* routing_id? */, 0 /* request_id? */,
diff --git a/content/browser/loader/navigation_url_loader_network_service.h b/content/browser/loader/navigation_url_loader_network_service.h index 30196ee..b5700e1 100644 --- a/content/browser/loader/navigation_url_loader_network_service.h +++ b/content/browser/loader/navigation_url_loader_network_service.h
@@ -67,7 +67,8 @@ const ResourceRequestCompletionStatus& completion_status) override; // Initiates the request. - void StartURLRequest(std::unique_ptr<ResourceRequest> request); + void StartURLRequest(mojom::URLLoaderFactoryPtrInfo url_loader_factory_info, + std::unique_ptr<ResourceRequest> request); private: void ConnectURLLoaderFactory( @@ -77,6 +78,7 @@ NavigationURLLoaderDelegate* delegate_; + mojom::URLLoaderFactoryPtr url_loader_factory_; mojo::Binding<mojom::URLLoaderClient> binding_; std::unique_ptr<NavigationRequestInfo> request_info_; mojom::URLLoaderAssociatedPtr url_loader_associated_ptr_;
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc index 9cc1f75..937512f 100644 --- a/content/browser/renderer_host/delegated_frame_host.cc +++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -521,7 +521,7 @@ if (!has_frame_) return; client_->DelegatedFrameHostGetLayer()->SetShowSolidColorContent(); - support_->EvictFrame(); + support_->EvictCurrentSurface(); has_frame_ = false; resize_lock_.reset(); frame_evictor_->DiscardedFrame();
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 7eee0fb..a9807e79 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -585,7 +585,7 @@ void SubmitCompositorFrame(const cc::LocalSurfaceId& local_surface_id, cc::CompositorFrame frame) override; void BeginFrameDidNotSwap(const cc::BeginFrameAck& ack) override; - void EvictFrame() override {} + void EvictCurrentSurface() override {} protected: // ---------------------------------------------------------------------------
diff --git a/content/browser/webui/web_ui_url_loader_factory.cc b/content/browser/webui/web_ui_url_loader_factory.cc index a349bd9..1e5bad3 100644 --- a/content/browser/webui/web_ui_url_loader_factory.cc +++ b/content/browser/webui/web_ui_url_loader_factory.cc
@@ -90,15 +90,7 @@ uint32_t output_size = gzipped ? compression::GetUncompressedSize(input) : bytes->size(); - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = output_size; - mojo::DataPipe data_pipe(options); - - DCHECK(data_pipe.producer_handle.is_valid()); - DCHECK(data_pipe.consumer_handle.is_valid()); + mojo::DataPipe data_pipe(output_size); void* buffer = nullptr; uint32_t num_bytes = output_size; @@ -118,14 +110,7 @@ CHECK_EQ(result, MOJO_RESULT_OK); client->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); - - ResourceRequestCompletionStatus request_complete_data; - request_complete_data.error_code = net::OK; - request_complete_data.exists_in_cache = false; - request_complete_data.completion_time = base::TimeTicks::Now(); - request_complete_data.encoded_data_length = output_size; - request_complete_data.encoded_body_length = output_size; - client->OnComplete(request_complete_data); + client->OnComplete(ResourceRequestCompletionStatus(output_size)); } void DataAvailable(scoped_refptr<ResourceResponse> headers,
diff --git a/content/common/resource_request_completion_status.cc b/content/common/resource_request_completion_status.cc index 4f2c850..3720d24f 100644 --- a/content/common/resource_request_completion_status.cc +++ b/content/common/resource_request_completion_status.cc
@@ -4,11 +4,20 @@ #include "content/common/resource_request_completion_status.h" +#include "net/base/net_errors.h" + namespace content { ResourceRequestCompletionStatus::ResourceRequestCompletionStatus() {} ResourceRequestCompletionStatus::ResourceRequestCompletionStatus( const ResourceRequestCompletionStatus& status) = default; + +ResourceRequestCompletionStatus::ResourceRequestCompletionStatus(int64_t length) + : error_code(net::OK), + completion_time(base::TimeTicks::Now()), + encoded_data_length(length), + encoded_body_length(length) {} + ResourceRequestCompletionStatus::~ResourceRequestCompletionStatus() {} } // namespace content
diff --git a/content/common/resource_request_completion_status.h b/content/common/resource_request_completion_status.h index 594119a8..073704e2 100644 --- a/content/common/resource_request_completion_status.h +++ b/content/common/resource_request_completion_status.h
@@ -17,6 +17,9 @@ ResourceRequestCompletionStatus(); ResourceRequestCompletionStatus( const ResourceRequestCompletionStatus& status); + explicit ResourceRequestCompletionStatus(int64_t length); + // Sets error_code to net::OK, completition_time to base::TimeTicks::Now(), + // and encoded_data_length = encoded_body_length = |length|; ~ResourceRequestCompletionStatus(); // The error code.
diff --git a/content/network/cache_url_loader.cc b/content/network/cache_url_loader.cc index dc8cc192..67e0ab75 100644 --- a/content/network/cache_url_loader.cc +++ b/content/network/cache_url_loader.cc
@@ -52,28 +52,13 @@ private: void DataAvailable(int result) { DCHECK_EQ(net::OK, result); - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = data_.size(); - mojo::DataPipe data_pipe(options); - - DCHECK(data_pipe.producer_handle.is_valid()); - DCHECK(data_pipe.consumer_handle.is_valid()); + mojo::DataPipe data_pipe(data_.size()); CHECK( mojo::common::BlockingCopyFromString(data_, data_pipe.producer_handle)); client_->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); - - ResourceRequestCompletionStatus request_complete_data; - request_complete_data.error_code = net::OK; - request_complete_data.exists_in_cache = false; - request_complete_data.completion_time = base::TimeTicks::Now(); - request_complete_data.encoded_data_length = data_.size(); - request_complete_data.encoded_body_length = data_.size(); - client_->OnComplete(request_complete_data); + client_->OnComplete(ResourceRequestCompletionStatus(data_.size())); // So we don't delete |this| in the constructor. base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
diff --git a/content/network/url_loader_impl.cc b/content/network/url_loader_impl.cc index 80680db..8d2143e 100644 --- a/content/network/url_loader_impl.cc +++ b/content/network/url_loader_impl.cc
@@ -268,15 +268,7 @@ std::vector<uint8_t>(data, data + metadata->size())); } - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = kDefaultAllocationSize; - mojo::DataPipe data_pipe(options); - - DCHECK(data_pipe.producer_handle.is_valid()); - DCHECK(data_pipe.consumer_handle.is_valid()); + mojo::DataPipe data_pipe(kDefaultAllocationSize); response_body_stream_ = std::move(data_pipe.producer_handle); response_body_consumer_handle_ = std::move(data_pipe.consumer_handle);
diff --git a/content/renderer/media_recorder/audio_track_recorder.cc b/content/renderer/media_recorder/audio_track_recorder.cc index d0dfd3b..9f968018 100644 --- a/content/renderer/media_recorder/audio_track_recorder.cc +++ b/content/renderer/media_recorder/audio_track_recorder.cc
@@ -13,6 +13,7 @@ #include "content/renderer/media/media_stream_audio_track.h" #include "media/base/audio_bus.h" #include "media/base/audio_converter.h" +#include "media/base/audio_fifo.h" #include "media/base/audio_parameters.h" #include "media/base/audio_sample_types.h" #include "media/base/bind_to_current_loop.h" @@ -126,7 +127,7 @@ // Sampling rate adapter between an OpusEncoder supported and the provided. std::unique_ptr<media::AudioConverter> converter_; - std::deque<std::unique_ptr<media::AudioBus>> audio_bus_queue_; + std::unique_ptr<media::AudioFifo> fifo_; // Buffer for passing AudioBus data to OpusEncoder. std::unique_ptr<float[]> buffer_; @@ -134,8 +135,6 @@ // While |paused_|, AudioBuses are not encoded. bool paused_; - int frames_queued_; - OpusEncoder* opus_encoder_; DISALLOW_COPY_AND_ASSIGN(AudioEncoder); @@ -147,7 +146,6 @@ : on_encoded_audio_cb_(on_encoded_audio_cb), bits_per_second_(bits_per_second), paused_(false), - frames_queued_(0), opus_encoder_(nullptr) { // AudioEncoder is constructed on the thread that ATR lives on, but should // operate only on the encoder thread after that. Reset @@ -175,7 +173,6 @@ DLOG(ERROR) << "Invalid params: " << input_params.AsHumanReadableString(); return; } - input_params_ = input_params; input_params_.set_frames_per_buffer(input_params_.sample_rate() * kOpusPreferredBufferDurationMs / @@ -197,8 +194,9 @@ converter_->AddInput(this); converter_->PrimeWithSilence(); - frames_queued_ = 0; - audio_bus_queue_.clear(); + fifo_.reset(new media::AudioFifo( + input_params_.channels(), + kMaxNumberOfFifoBuffers * input_params_.frames_per_buffer())); buffer_.reset(new float[output_params_.channels() * output_params_.frames_per_buffer()]); @@ -239,19 +237,14 @@ if (!is_initialized() || paused_) return; - - frames_queued_ += input_bus->frames(); - audio_bus_queue_.push_back(std::move(input_bus)); - - const int max_frame_limit = - kMaxNumberOfFifoBuffers * input_params_.frames_per_buffer(); - while (frames_queued_ > max_frame_limit) { - frames_queued_ -= audio_bus_queue_.front()->frames(); - audio_bus_queue_.pop_front(); - } + // TODO(mcasas): Consider using a std::deque<std::unique_ptr<AudioBus>> + // instead of + // an AudioFifo, to avoid copying data needlessly since we know the sizes of + // both input and output and they are multiples. + fifo_->Push(input_bus.get()); // Wait to have enough |input_bus|s to guarantee a satisfactory conversion. - while (frames_queued_ >= input_params_.frames_per_buffer()) { + while (fifo_->frames() >= input_params_.frames_per_buffer()) { std::unique_ptr<media::AudioBus> audio_bus = media::AudioBus::Create( output_params_.channels(), kOpusPreferredFramesPerBuffer); converter_->Convert(audio_bus.get()); @@ -263,7 +256,7 @@ encoded_data.get())) { const base::TimeTicks capture_time_of_first_sample = capture_time - - base::TimeDelta::FromMicroseconds(frames_queued_ * + base::TimeDelta::FromMicroseconds(fifo_->frames() * base::Time::kMicrosecondsPerSecond / input_params_.sample_rate()); on_encoded_audio_cb_.Run(output_params_, std::move(encoded_data), @@ -275,12 +268,7 @@ double AudioTrackRecorder::AudioEncoder::ProvideInput( media::AudioBus* audio_bus, uint32_t frames_delayed) { - if (audio_bus_queue_.empty()) - return 0.0; - - frames_queued_ -= audio_bus->frames(); - audio_bus_queue_.front()->CopyTo(audio_bus); - audio_bus_queue_.pop_front(); + fifo_->Consume(audio_bus, 0, audio_bus->frames()); return 1.0; // Return volume greater than zero to indicate we have more data. }
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 2e952fd..7cf21c4d 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -775,7 +775,7 @@ NOINLINE void ExhaustMemory() { volatile void* ptr = nullptr; do { - ptr = malloc(0x10000000); + ptr = malloc(0x1000000); base::debug::Alias(&ptr); } while (ptr); }
diff --git a/content/test/data/accessibility/event/aria-combo-box-expand-expected-win.txt b/content/test/data/accessibility/event/aria-combo-box-expand-expected-win.txt index 6abfe95..bffdd3c 100644 --- a/content/test/data/accessibility/event/aria-combo-box-expand-expected-win.txt +++ b/content/test/data/accessibility/event/aria-combo-box-expand-expected-win.txt
@@ -1,3 +1,3 @@ EVENT_OBJECT_STATECHANGE on role=ROLE_SYSTEM_COMBOBOX EXPANDED,FOCUSABLE,HASPOPUP IA2_STATE_EDITABLE,IA2_STATE_SUPPORTS_AUTOCOMPLETION,IA2_STATE_VERTICAL -EVENT_OBJECT_FOCUS on role= FOCUSED +EVENT_OBJECT_FOCUS on role=ROLE_SYSTEM_LISTITEM name="Apple" FOCUSED IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on role=ROLE_SYSTEM_COMBOBOX EXPANDED,FOCUSABLE,HASPOPUP IA2_STATE_EDITABLE,IA2_STATE_SUPPORTS_AUTOCOMPLETION,IA2_STATE_VERTICAL
diff --git a/content/test/data/accessibility/event/aria-combo-box-next-expected-win.txt b/content/test/data/accessibility/event/aria-combo-box-next-expected-win.txt index 70e0878..a5a77a8 100644 --- a/content/test/data/accessibility/event/aria-combo-box-next-expected-win.txt +++ b/content/test/data/accessibility/event/aria-combo-box-next-expected-win.txt
@@ -1,2 +1,2 @@ -EVENT_OBJECT_FOCUS on role= FOCUSED +EVENT_OBJECT_FOCUS on role=ROLE_SYSTEM_LISTITEM name="Banana" FOCUSED IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on role=ROLE_SYSTEM_COMBOBOX EXPANDED,FOCUSABLE,HASPOPUP IA2_STATE_EDITABLE,IA2_STATE_SUPPORTS_AUTOCOMPLETION,IA2_STATE_VERTICAL
diff --git a/device/usb/webusb_descriptors.cc b/device/usb/webusb_descriptors.cc index 3df67eb..7a0c9700 100644 --- a/device/usb/webusb_descriptors.cc +++ b/device/usb/webusb_descriptors.cc
@@ -157,24 +157,26 @@ uint8_t landing_page_id, std::unique_ptr<std::map<uint8_t, GURL>> url_map, const ReadWebUsbDescriptorsCallback& callback) { - for (uint8_t origin_id : allowed_origins->origin_ids) { - const auto& it = url_map->find(origin_id); - if (it != url_map->end()) - allowed_origins->origins.push_back(it->second.GetOrigin()); - } - - for (auto& configuration : allowed_origins->configurations) { - for (uint8_t origin_id : configuration.origin_ids) { + if (allowed_origins) { + for (uint8_t origin_id : allowed_origins->origin_ids) { const auto& it = url_map->find(origin_id); if (it != url_map->end()) - configuration.origins.push_back(it->second.GetOrigin()); + allowed_origins->origins.push_back(it->second.GetOrigin()); } - for (auto& function : configuration.functions) { - for (uint8_t origin_id : function.origin_ids) { + for (auto& configuration : allowed_origins->configurations) { + for (uint8_t origin_id : configuration.origin_ids) { const auto& it = url_map->find(origin_id); if (it != url_map->end()) - function.origins.push_back(it->second.GetOrigin()); + configuration.origins.push_back(it->second.GetOrigin()); + } + + for (auto& function : configuration.functions) { + for (uint8_t origin_id : function.origin_ids) { + const auto& it = url_map->find(origin_id); + if (it != url_map->end()) + function.origins.push_back(it->second.GetOrigin()); + } } } } @@ -223,27 +225,25 @@ } // Reads URL descriptors from the device so that it can fill |allowed_origins| -// with the GURLs matching the indicies already collected. +// with the GURLs matching the indices already collected. void ReadUrlDescriptors(scoped_refptr<UsbDeviceHandle> device_handle, uint8_t vendor_code, uint8_t landing_page_id, const ReadWebUsbDescriptorsCallback& callback, std::unique_ptr<WebUsbAllowedOrigins> allowed_origins) { - if (!allowed_origins) { - callback.Run(nullptr, GURL()); - return; - } - std::set<uint8_t> to_request; if (landing_page_id != 0) to_request.insert(landing_page_id); - to_request.insert(allowed_origins->origin_ids.begin(), - allowed_origins->origin_ids.end()); - for (auto& config : allowed_origins->configurations) { - to_request.insert(config.origin_ids.begin(), config.origin_ids.end()); - for (auto& function : config.functions) { - to_request.insert(function.origin_ids.begin(), function.origin_ids.end()); + if (allowed_origins) { + to_request.insert(allowed_origins->origin_ids.begin(), + allowed_origins->origin_ids.end()); + for (auto& config : allowed_origins->configurations) { + to_request.insert(config.origin_ids.begin(), config.origin_ids.end()); + for (auto& function : config.functions) { + to_request.insert(function.origin_ids.begin(), + function.origin_ids.end()); + } } } @@ -255,9 +255,8 @@ base::Bind(&OnDoneReadingUrls, base::Passed(&allowed_origins), landing_page_id, base::Passed(&url_map), callback)); - for (uint8_t index : to_request) { + for (uint8_t index : to_request) ReadUrlDescriptor(device_handle, vendor_code, url_map_ptr, index, barrier); - } } void OnReadWebUsbAllowedOrigins(
diff --git a/docs/android_debugging_instructions.md b/docs/android_debugging_instructions.md index 8fd2dd8..fbb4f98 100644 --- a/docs/android_debugging_instructions.md +++ b/docs/android_debugging_instructions.md
@@ -237,7 +237,7 @@ To run unit tests use the following command: ```shell -out/Debug/bin/run_test_name -f <test_filter_if_any> --test-arguments=--wait-for-debugger -t 6000 +out/Debug/bin/run_test_name -f <test_filter_if_any> --wait-for-debugger -t 6000 ``` That command will cause the test process to wait until a debugger is attached.
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json index b2f637f..944660e 100644 --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json
@@ -1,6 +1,6 @@ { "name": "gpu driver bug list", - "version": "10.7", + "version": "10.8", "entries": [ { "id": 1, @@ -2447,6 +2447,20 @@ "features": [ "avoid_stencil_buffers" ] + }, + { + "id": 228, + "description": "Intel HD 3000 driver crashes frequently on Mac", + "cr_bugs": [720152], + "os": { + "type": "macosx" + }, + "vendor_id": "0x8086", + "device_id": ["0x0116", "0x0126"], + "multi_gpu_style": "amd_switchable", + "features": [ + "force_discrete_gpu" + ] } ], "comment": [
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json index 220f853..620eb19 100644 --- a/gpu/config/software_rendering_list.json +++ b/gpu/config/software_rendering_list.json
@@ -1,6 +1,6 @@ { "name": "software rendering list", - "version": "13.6", + "version": "13.7", "entries": [ { "id": 1, @@ -1013,7 +1013,6 @@ }, "vendor_id": "0x8086", "device_id": ["0x0116", "0x0126"], - "multi_gpu_category": "any", "features": [ "all" ]
diff --git a/ios/chrome/browser/ui/dialogs/javascript_dialog_egtest.mm b/ios/chrome/browser/ui/dialogs/javascript_dialog_egtest.mm index a70248d..45c395d3 100644 --- a/ios/chrome/browser/ui/dialogs/javascript_dialog_egtest.mm +++ b/ios/chrome/browser/ui/dialogs/javascript_dialog_egtest.mm
@@ -34,6 +34,7 @@ #endif using chrome_test_util::NavigationBarDoneButton; +using chrome_test_util::OKButton; using web::test::HttpServer; namespace { @@ -258,12 +259,6 @@ performAction:grey_typeText(input)]; } -void TapOK() { - id<GREYMatcher> ok_button = - chrome_test_util::ButtonWithAccessibilityLabelId(IDS_OK); - [[EarlGrey selectElementWithMatcher:ok_button] performAction:grey_tap()]; -} - void TapCancel() { [[EarlGrey selectElementWithMatcher:chrome_test_util::CancelButton()] performAction:grey_tap()]; @@ -352,8 +347,7 @@ [self loadBlankTestPage]; ShowJavaScriptDialog(JavaScriptAlertType::ALERT); - // Tap the OK button. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; // Wait for the html body to be reset to the correct value. WaitForWebDisplay(kAlertResultBody); @@ -373,8 +367,7 @@ [self loadBlankTestPage]; ShowJavaScriptDialog(JavaScriptAlertType::CONFIRMATION); - // Tap the OK button. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; // Wait for the html body to be reset to the correct value. WaitForWebDisplay(kConfirmationResultBodyOK); @@ -418,8 +411,7 @@ // Enter text into text field. TypeInPrompt(@(kPromptTestUserInput)); - // Tap the OK button. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; // Wait for the html body to be reset to the input text. WaitForWebDisplay(kPromptTestUserInput); @@ -458,8 +450,7 @@ webState->ExecuteJavaScript(base::SysNSStringToUTF16(script)); WaitForJavaScripDialogToBeShown(); - // Tap the OK button and wait for another dialog to be shown. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; WaitForJavaScripDialogToBeShown(); // Tap the suppress dialogs button. @@ -511,8 +502,7 @@ // Make sure the alert is present. WaitForJavaScripDialogToBeShown(); - // Tap the OK button. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; // Wait for the html body to be reset to the correct value. WaitForWebDisplay(kAlertResultBody); @@ -541,8 +531,7 @@ // Show an alert and assert it is present. ShowJavaScriptDialog(JavaScriptAlertType::ALERT); - // Tap the OK button. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; // Wait for the html body to be reset to the correct value. WaitForWebDisplay(kAlertResultBody); @@ -596,8 +585,7 @@ [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText(title)] assertWithMatcher:grey_notNil()]; - // Close the alert. - TapOK(); + [[EarlGrey selectElementWithMatcher:OKButton()] performAction:grey_tap()]; // Reenable synchronization on iPads now that the dialog has been dismissed. if (IsIPadIdiom()) {
diff --git a/ios/chrome/test/earl_grey/chrome_matchers.h b/ios/chrome/test/earl_grey/chrome_matchers.h index 3dfec12..2670692 100644 --- a/ios/chrome/test/earl_grey/chrome_matchers.h +++ b/ios/chrome/test/earl_grey/chrome_matchers.h
@@ -101,6 +101,9 @@ // Returns matcher for the settings button in the tools menu. id<GREYMatcher> SettingsMenuButton(); +// Returns matcher for the OK button. +id<GREYMatcher> OKButton(); + } // namespace chrome_test_util #endif // IOS_CHROME_TEST_EARL_GREY_CHROME_MATCHERS_H_
diff --git a/ios/chrome/test/earl_grey/chrome_matchers.mm b/ios/chrome/test/earl_grey/chrome_matchers.mm index ff63534..a8f244ee 100644 --- a/ios/chrome/test/earl_grey/chrome_matchers.mm +++ b/ios/chrome/test/earl_grey/chrome_matchers.mm
@@ -186,4 +186,8 @@ return grey_accessibilityID(kToolsMenuSettingsId); } +id<GREYMatcher> OKButton() { + return ButtonWithAccessibilityLabelId(IDS_OK); +} + } // namespace chrome_test_util
diff --git a/ios/web/navigation/navigation_item_impl.mm b/ios/web/navigation/navigation_item_impl.mm index 0b8aff9..8927347 100644 --- a/ios/web/navigation/navigation_item_impl.mm +++ b/ios/web/navigation/navigation_item_impl.mm
@@ -297,7 +297,7 @@ // For file:// URLs use the filename as the title, not the full path. if (url.SchemeIsFile()) { base::string16::size_type slashpos = title.rfind('/'); - if (slashpos != base::string16::npos) + if (slashpos != base::string16::npos && slashpos != (title.size() - 1)) title = title.substr(slashpos + 1); }
diff --git a/ios/web/navigation/navigation_item_impl_unittest.mm b/ios/web/navigation/navigation_item_impl_unittest.mm index a286627..57ea40e05 100644 --- a/ios/web/navigation/navigation_item_impl_unittest.mm +++ b/ios/web/navigation/navigation_item_impl_unittest.mm
@@ -148,5 +148,19 @@ EXPECT_EQ(original_url, item_->GetURL()); } +// Tests NavigationItemImpl::GetDisplayTitleForURL method. +TEST_F(NavigationItemTest, GetDisplayTitleForURL) { + base::string16 title; + + title = NavigationItemImpl::GetDisplayTitleForURL(GURL("http://foo.org/")); + EXPECT_EQ("foo.org", base::UTF16ToUTF8(title)); + + title = NavigationItemImpl::GetDisplayTitleForURL(GURL("file://foo.org/")); + EXPECT_EQ("file://foo.org/", base::UTF16ToUTF8(title)); + + title = NavigationItemImpl::GetDisplayTitleForURL(GURL("file://foo/1.gz")); + EXPECT_EQ("1.gz", base::UTF16ToUTF8(title)); +} + } // namespace } // namespace web
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index 1011947d..7a13243 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -68,6 +68,18 @@ const char kUseCras[] = "use-cras"; #endif +// For automated testing of protected content, this switch allows specific +// domains (e.g. example.com) to skip asking the user for permission to share +// their personal identifier. In this context, domain does not include the +// port number. This flag will have no effect if user-data-dir is not set and +// will not affect the user's content settings. +// Reference: http://crbug.com/718608 +// Example: +// --unsafely-allow-protected-media-identifier-for-domain=a.com,b.ca +// --user-data-dir=/test/only/profile/dir +const char kUnsafelyAllowProtectedMediaIdentifierForDomain[] = + "unsafely-allow-protected-media-identifier-for-domain"; + #if !defined(OS_ANDROID) || BUILDFLAG(ENABLE_PLUGINS) // Enable a internal audio focus management between tabs in such a way that two // tabs can't play on top of each other.
diff --git a/media/base/media_switches.h b/media/base/media_switches.h index 4ff9c98..f75ce8b 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -49,6 +49,9 @@ MEDIA_EXPORT extern const char kUseCras[]; #endif +MEDIA_EXPORT extern const char + kUnsafelyAllowProtectedMediaIdentifierForDomain[]; + #if !defined(OS_ANDROID) || BUILDFLAG(ENABLE_PLUGINS) MEDIA_EXPORT extern const char kEnableAudioFocus[]; #endif // !defined(OS_ANDROID) || BUILDFLAG(ENABLE_PLUGINS)
diff --git a/media/blink/multibuffer_data_source.cc b/media/blink/multibuffer_data_source.cc index c882fae..4d8d045a 100644 --- a/media/blink/multibuffer_data_source.cc +++ b/media/blink/multibuffer_data_source.cc
@@ -403,7 +403,7 @@ bytes_read = static_cast<int>(std::min<int64_t>(available, read_op_->size())); bytes_read = reader_->TryRead(read_op_->data(), bytes_read); - + url_data_->AddBytesRead(bytes_read); if (bytes_read == 0 && total_bytes_ == kPositionNotSpecified) { // We've reached the end of the file and we didn't know the total size // before. Update the total size so Read()s past the end of the file will
diff --git a/media/blink/resource_multibuffer_data_provider.cc b/media/blink/resource_multibuffer_data_provider.cc index a1e1878..18a8847f 100644 --- a/media/blink/resource_multibuffer_data_provider.cc +++ b/media/blink/resource_multibuffer_data_provider.cc
@@ -85,6 +85,15 @@ WebString::FromUTF8( net::HttpByteRange::RightUnbounded(byte_pos()).GetHeaderValue())); + if (url_data_->length() == kPositionNotSpecified && + url_data_->CachedSize() == 0 && url_data_->BytesReadFromCache() == 0) { + // This lets the data reduction proxy know that we don't have anything + // previously cached data for this resource. We can only send it if this is + // the first request for this resource. + request.SetHTTPHeaderField(WebString::FromUTF8("chrome-proxy"), + WebString::FromUTF8("frfr")); + } + // We would like to send an if-match header with the request to // tell the remote server that we really can't handle files other // than the one we already started playing. Unfortunately, doing
diff --git a/media/blink/resource_multibuffer_data_provider_unittest.cc b/media/blink/resource_multibuffer_data_provider_unittest.cc index 079022b..93c453a 100644 --- a/media/blink/resource_multibuffer_data_provider_unittest.cc +++ b/media/blink/resource_multibuffer_data_provider_unittest.cc
@@ -54,8 +54,16 @@ enum NetworkState { NONE, LOADED, LOADING }; +static bool got_frfr = false; + // Predicate that tests that request disallows compressed data. -static bool CorrectAcceptEncoding(const blink::WebURLRequest& request) { +static bool CorrectAcceptEncodingAndProxy(const blink::WebURLRequest& request) { + std::string chrome_proxy = + request.HttpHeaderField(WebString::FromUTF8("chrome-proxy")).Utf8(); + if (chrome_proxy != (got_frfr ? "" : "frfr")) { + return false; + } + std::string value = request .HttpHeaderField(WebString::FromUTF8( net::HttpRequestHeaders::kAcceptEncoding)) @@ -105,8 +113,10 @@ void Start() { InSequence s; - EXPECT_CALL(*url_loader_, - LoadAsynchronously(Truly(CorrectAcceptEncoding), loader_)); + got_frfr = false; + EXPECT_CALL( + *url_loader_, + LoadAsynchronously(Truly(CorrectAcceptEncodingAndProxy), loader_)); loader_->Start(); }
diff --git a/media/blink/url_index.cc b/media/blink/url_index.cc index c0f1428..f255cb19 100644 --- a/media/blink/url_index.cc +++ b/media/blink/url_index.cc
@@ -80,6 +80,7 @@ if (last_modified_.is_null()) { last_modified_ = other->last_modified_; } + bytes_read_from_cache_ += other->bytes_read_from_cache_; multibuffer()->MergeFrom(other->multibuffer()); } }
diff --git a/media/blink/url_index.h b/media/blink/url_index.h index bce8727..f18d358 100644 --- a/media/blink/url_index.h +++ b/media/blink/url_index.h
@@ -139,6 +139,9 @@ // Accessor blink::WebFrame* frame() const { return frame_; } + void AddBytesRead(int64_t b) { bytes_read_from_cache_ += b; } + int64_t BytesReadFromCache() { return bytes_read_from_cache_; } + protected: UrlData(const GURL& url, CORSMode cors_mode, @@ -170,6 +173,9 @@ // Length of resource this url points to. (in bytes) int64_t length_; + // Number of bytes read from this resource. + int64_t bytes_read_from_cache_ = 0; + // Does the server support ranges? bool range_supported_;
diff --git a/media/capture/video/linux/v4l2_capture_delegate.cc b/media/capture/video/linux/v4l2_capture_delegate.cc index 6c76522..773a425 100644 --- a/media/capture/video/linux/v4l2_capture_delegate.cc +++ b/media/capture/video/linux/v4l2_capture_delegate.cc
@@ -620,8 +620,12 @@ } photo_capabilities->iso = mojom::Range::New(); - photo_capabilities->height = mojom::Range::New(); - photo_capabilities->width = mojom::Range::New(); + photo_capabilities->height = mojom::Range::New( + capture_format_.frame_size.height(), capture_format_.frame_size.height(), + capture_format_.frame_size.height(), 0 /* step */); + photo_capabilities->width = mojom::Range::New( + capture_format_.frame_size.width(), capture_format_.frame_size.width(), + capture_format_.frame_size.width(), 0 /* step */); photo_capabilities->exposure_compensation = mojom::Range::New(); photo_capabilities->red_eye_reduction = mojom::RedEyeReduction::NEVER; photo_capabilities->torch = false;
diff --git a/media/capture/video/mac/video_capture_device_mac.h b/media/capture/video/mac/video_capture_device_mac.h index 0b6b466..9d161f77 100644 --- a/media/capture/video/mac/video_capture_device_mac.h +++ b/media/capture/video/mac/video_capture_device_mac.h
@@ -64,6 +64,7 @@ std::unique_ptr<VideoCaptureDevice::Client> client) override; void StopAndDeAllocate() override; void TakePhoto(TakePhotoCallback callback) override; + void GetPhotoCapabilities(GetPhotoCapabilitiesCallback callback) override; bool Init(VideoCaptureApi capture_api_type);
diff --git a/media/capture/video/mac/video_capture_device_mac.mm b/media/capture/video/mac/video_capture_device_mac.mm index a3c0166..27eb401 100644 --- a/media/capture/video/mac/video_capture_device_mac.mm +++ b/media/capture/video/mac/video_capture_device_mac.mm
@@ -384,6 +384,35 @@ [capture_device_ takePhoto]; } +void VideoCaptureDeviceMac::GetPhotoCapabilities( + GetPhotoCapabilitiesCallback callback) { + DCHECK(task_runner_->BelongsToCurrentThread()); + + auto photo_capabilities = mojom::PhotoCapabilities::New(); + + photo_capabilities->exposure_compensation = mojom::Range::New(); + photo_capabilities->color_temperature = mojom::Range::New(); + photo_capabilities->iso = mojom::Range::New(); + + photo_capabilities->brightness = mojom::Range::New(); + photo_capabilities->contrast = mojom::Range::New(); + photo_capabilities->saturation = mojom::Range::New(); + photo_capabilities->sharpness = mojom::Range::New(); + + photo_capabilities->zoom = mojom::Range::New(); + + photo_capabilities->red_eye_reduction = mojom::RedEyeReduction::NEVER; + photo_capabilities->height = mojom::Range::New( + capture_format_.frame_size.height(), capture_format_.frame_size.height(), + capture_format_.frame_size.height(), 0 /* step */); + photo_capabilities->width = mojom::Range::New( + capture_format_.frame_size.width(), capture_format_.frame_size.width(), + capture_format_.frame_size.width(), 0 /* step */); + photo_capabilities->torch = false; + + callback.Run(std::move(photo_capabilities)); +} + bool VideoCaptureDeviceMac::Init(VideoCaptureApi capture_api_type) { DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK_EQ(state_, kNotInitialized);
diff --git a/media/mojo/common/mojo_decoder_buffer_converter.cc b/media/mojo/common/mojo_decoder_buffer_converter.cc index d47e5f5..91fcbf8 100644 --- a/media/mojo/common/mojo_decoder_buffer_converter.cc +++ b/media/mojo/common/mojo_decoder_buffer_converter.cc
@@ -20,26 +20,23 @@ namespace { std::unique_ptr<mojo::DataPipe> CreateDataPipe(DemuxerStream::Type type) { - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; + uint32_t capacity = 0; if (type == DemuxerStream::AUDIO) { // TODO(timav): Consider capacity calculation based on AudioDecoderConfig. - options.capacity_num_bytes = 512 * 1024; + capacity = 512 * 1024; } else if (type == DemuxerStream::VIDEO) { // Video can get quite large; at 4K, VP9 delivers packets which are ~1MB in // size; so allow for some head room. // TODO(xhwang, sandersd): Provide a better way to customize this value. - options.capacity_num_bytes = 2 * (1024 * 1024); + capacity = 2 * (1024 * 1024); } else { NOTREACHED() << "Unsupported type: " << type; // Choose an arbitrary size. - options.capacity_num_bytes = 512 * 1024; + capacity = 512 * 1024; } - return base::MakeUnique<mojo::DataPipe>(options); + return base::MakeUnique<mojo::DataPipe>(capacity); } bool IsPipeReadWriteError(MojoResult result) {
diff --git a/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc b/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc index 124d6ac..c0c7407 100644 --- a/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc +++ b/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc
@@ -31,12 +31,7 @@ public: MojoDecoderBufferConverter( uint32_t data_pipe_capacity_bytes = kDefaultDataPipeCapacityBytes) { - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = data_pipe_capacity_bytes; - mojo::DataPipe data_pipe(options); + mojo::DataPipe data_pipe(data_pipe_capacity_bytes); writer = base::MakeUnique<MojoDecoderBufferWriter>( std::move(data_pipe.producer_handle));
diff --git a/media/remoting/demuxer_stream_adapter.cc b/media/remoting/demuxer_stream_adapter.cc index de8bfd0..23ec4f2 100644 --- a/media/remoting/demuxer_stream_adapter.cc +++ b/media/remoting/demuxer_stream_adapter.cc
@@ -23,13 +23,7 @@ mojo::DataPipe* DemuxerStreamAdapter::CreateDataPipe() { // Capacity in bytes for Mojo data pipe. constexpr int kMojoDataPipeCapacityInBytes = 512 * 1024; - - MojoCreateDataPipeOptions options; - options.struct_size = sizeof(MojoCreateDataPipeOptions); - options.flags = MOJO_WRITE_DATA_FLAG_NONE; - options.element_num_bytes = 1; - options.capacity_num_bytes = kMojoDataPipeCapacityInBytes; - return new mojo::DataPipe(options); + return new mojo::DataPipe(kMojoDataPipeCapacityInBytes); } DemuxerStreamAdapter::DemuxerStreamAdapter(
diff --git a/mojo/edk/embedder/README.md b/mojo/edk/embedder/README.md index e490daf..0b4a30a 100644 --- a/mojo/edk/embedder/README.md +++ b/mojo/edk/embedder/README.md
@@ -230,8 +230,10 @@ base::ProcessHandle child_handle = LaunchCoolChildProcess(channel.PassClientHandle()); - invitation.Send(child_handle, - mojo::edk::ConnectionParams(channel.PassServerHandle())); + invitation.Send( + child_handle, + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + channel.PassServerHandle())); // We can start using our end of the pipe immediately. Here we assume the // other end will eventually be bound to a local::mojom::Foo implementation, @@ -290,7 +292,8 @@ mojo::edk::ScopedIPCSupport::ShutdownPolicy::CLEAN); auto invitation = mojo::edk::IncomingBrokerClientInvitation::Accept( - mojo::edk::ConnectionParams(GetChannelHandle())); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + GetChannelHandle())); mojo::ScopedMessagePipeHandle my_pipe = invitation->ExtractMessagePipe("pretty_cool_pipe");
diff --git a/mojo/edk/embedder/connection_params.cc b/mojo/edk/embedder/connection_params.cc index 92c343cf..6d7c41a 100644 --- a/mojo/edk/embedder/connection_params.cc +++ b/mojo/edk/embedder/connection_params.cc
@@ -11,9 +11,6 @@ namespace mojo { namespace edk { -ConnectionParams::ConnectionParams(ScopedPlatformHandle channel) - : ConnectionParams(TransportProtocol::kLegacy, std::move(channel)) {} - ConnectionParams::ConnectionParams(TransportProtocol protocol, ScopedPlatformHandle channel) : protocol_(protocol), channel_(std::move(channel)) { @@ -25,11 +22,8 @@ *this = std::move(params); } -ConnectionParams& ConnectionParams::operator=(ConnectionParams&& params) { - protocol_ = params.protocol_; - channel_ = std::move(params.channel_); - return *this; -} +ConnectionParams& ConnectionParams::operator=(ConnectionParams&& params) = + default; ScopedPlatformHandle ConnectionParams::TakeChannelHandle() { return std::move(channel_);
diff --git a/mojo/edk/embedder/connection_params.h b/mojo/edk/embedder/connection_params.h index c85bb02..2e8a711 100644 --- a/mojo/edk/embedder/connection_params.h +++ b/mojo/edk/embedder/connection_params.h
@@ -17,10 +17,6 @@ // A set of parameters used when establishing a connection to another process. class MOJO_SYSTEM_IMPL_EXPORT ConnectionParams { public: - // Configures an OS pipe-based, |kBrokerClient| connection to the remote - // process using the legacy transport protocol. - explicit ConnectionParams(ScopedPlatformHandle channel); - // Configures an OS pipe-based connection of type |type| to the remote process // using the given transport |protocol|. ConnectionParams(TransportProtocol protocol, ScopedPlatformHandle channel);
diff --git a/mojo/edk/embedder/embedder_unittest.cc b/mojo/edk/embedder/embedder_unittest.cc index 7e60397c..a59e041 100644 --- a/mojo/edk/embedder/embedder_unittest.cc +++ b/mojo/edk/embedder/embedder_unittest.cc
@@ -145,8 +145,9 @@ OutgoingBrokerClientInvitation invitation; ScopedMessagePipeHandle parent_mp = invitation.AttachMessagePipe("unused"); - invitation.Send(base::GetCurrentProcessHandle(), - ConnectionParams(pair.PassServerHandle())); + invitation.Send( + base::GetCurrentProcessHandle(), + ConnectionParams(TransportProtocol::kLegacy, pair.PassServerHandle())); // Close the remote end, simulating child death before the child extracts the // attached message pipe.
diff --git a/mojo/edk/system/broker_host.cc b/mojo/edk/system/broker_host.cc index 6096034..751495b 100644 --- a/mojo/edk/system/broker_host.cc +++ b/mojo/edk/system/broker_host.cc
@@ -29,8 +29,10 @@ base::MessageLoop::current()->AddDestructionObserver(this); - channel_ = Channel::Create(this, ConnectionParams(std::move(platform_handle)), - base::ThreadTaskRunnerHandle::Get()); + channel_ = Channel::Create( + this, + ConnectionParams(TransportProtocol::kLegacy, std::move(platform_handle)), + base::ThreadTaskRunnerHandle::Get()); channel_->Start(); }
diff --git a/mojo/edk/system/core.cc b/mojo/edk/system/core.cc index 3c08980..1d90197 100644 --- a/mojo/edk/system/core.cc +++ b/mojo/edk/system/core.cc
@@ -200,7 +200,8 @@ GetNodeController()->node()->CreatePortPair(&port0, &port1); MojoHandle handle = AddDispatcher(new MessagePipeDispatcher( GetNodeController(), port0, kUnknownPipeIdForDebug, 0)); - ConnectionParams connection_params(std::move(pipe_handle)); + ConnectionParams connection_params(TransportProtocol::kLegacy, + std::move(pipe_handle)); GetNodeController()->ConnectToPeer(std::move(connection_params), port1, peer_token); return ScopedMessagePipeHandle(MessagePipeHandle(handle));
diff --git a/mojo/edk/system/node_controller.cc b/mojo/edk/system/node_controller.cc index e47725a..0901022a 100644 --- a/mojo/edk/system/node_controller.cc +++ b/mojo/edk/system/node_controller.cc
@@ -229,7 +229,8 @@ CancelPendingPortMerges(); return; } - connection_params = ConnectionParams(std::move(platform_handle)); + connection_params = ConnectionParams(connection_params.protocol(), + std::move(platform_handle)); #endif io_task_runner_->PostTask( @@ -363,9 +364,10 @@ CHECK(channel_ok); #endif // defined(OS_WIN) - scoped_refptr<NodeChannel> channel = - NodeChannel::Create(this, ConnectionParams(std::move(server_handle)), - io_task_runner_, process_error_callback); + scoped_refptr<NodeChannel> channel = NodeChannel::Create( + this, + ConnectionParams(connection_params.protocol(), std::move(server_handle)), + io_task_runner_, process_error_callback); #else // !defined(OS_MACOSX) && !defined(OS_NACL) scoped_refptr<NodeChannel> channel = @@ -940,7 +942,8 @@ } PlatformChannelPair broker_channel; - ConnectionParams connection_params(broker_channel.PassServerHandle()); + ConnectionParams connection_params(TransportProtocol::kLegacy, + broker_channel.PassServerHandle()); scoped_refptr<NodeChannel> client = NodeChannel::Create(this, std::move(connection_params), io_task_runner_, ProcessErrorCallback()); @@ -1021,9 +1024,10 @@ broker = parent; } else { DCHECK(broker_channel.is_valid()); - broker = - NodeChannel::Create(this, ConnectionParams(std::move(broker_channel)), - io_task_runner_, ProcessErrorCallback()); + broker = NodeChannel::Create( + this, + ConnectionParams(TransportProtocol::kLegacy, std::move(broker_channel)), + io_task_runner_, ProcessErrorCallback()); AddPeer(broker_name, broker, true /* start_channel */); } @@ -1161,9 +1165,10 @@ return; } - scoped_refptr<NodeChannel> channel = - NodeChannel::Create(this, ConnectionParams(std::move(channel_handle)), - io_task_runner_, ProcessErrorCallback()); + scoped_refptr<NodeChannel> channel = NodeChannel::Create( + this, + ConnectionParams(TransportProtocol::kLegacy, std::move(channel_handle)), + io_task_runner_, ProcessErrorCallback()); DVLOG(1) << "Adding new peer " << name << " via parent introduction."; AddPeer(name, channel, true /* start_channel */);
diff --git a/mojo/public/cpp/system/data_pipe.h b/mojo/public/cpp/system/data_pipe.h index 0dbc3c7..9f58c27 100644 --- a/mojo/public/cpp/system/data_pipe.h +++ b/mojo/public/cpp/system/data_pipe.h
@@ -134,6 +134,7 @@ class DataPipe { public: DataPipe(); + explicit DataPipe(uint32_t capacity_num_bytes); explicit DataPipe(const MojoCreateDataPipeOptions& options); ~DataPipe(); @@ -148,6 +149,19 @@ DCHECK_EQ(MOJO_RESULT_OK, result); } +inline DataPipe::DataPipe(uint32_t capacity_num_bytes) { + MojoCreateDataPipeOptions options; + options.struct_size = sizeof(MojoCreateDataPipeOptions); + options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; + options.element_num_bytes = 1; + options.capacity_num_bytes = capacity_num_bytes; + mojo::DataPipe data_pipe(options); + MojoResult result = + CreateDataPipe(&options, &producer_handle, &consumer_handle); + ALLOW_UNUSED_LOCAL(result); + DCHECK_EQ(MOJO_RESULT_OK, result); +} + inline DataPipe::DataPipe(const MojoCreateDataPipeOptions& options) { MojoResult result = CreateDataPipe(&options, &producer_handle, &consumer_handle);
diff --git a/remoting/client/BUILD.gn b/remoting/client/BUILD.gn index 3a3e07a..d3ded033 100644 --- a/remoting/client/BUILD.gn +++ b/remoting/client/BUILD.gn
@@ -31,6 +31,10 @@ "dual_buffer_frame_consumer.h", "empty_cursor_filter.cc", "empty_cursor_filter.h", + "fling_animation.cc", + "fling_animation.h", + "fling_tracker.cc", + "fling_tracker.h", "gesture_interpreter.cc", "gesture_interpreter.h", "host_experiment_sender.cc", @@ -113,6 +117,8 @@ "desktop_viewport_unittest.cc", "dual_buffer_frame_consumer_unittest.cc", "empty_cursor_filter_unittest.cc", + "fling_animation_unittest.cc", + "fling_animation_unittest.h", "key_event_mapper_unittest.cc", "normalizing_input_filter_cros_unittest.cc", "normalizing_input_filter_mac_unittest.cc",
diff --git a/remoting/client/fling_animation.cc b/remoting/client/fling_animation.cc new file mode 100644 index 0000000..109a5c4 --- /dev/null +++ b/remoting/client/fling_animation.cc
@@ -0,0 +1,46 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/client/fling_animation.h" + +#include "base/time/default_tick_clock.h" + +namespace remoting { + +FlingAnimation::FlingAnimation(float time_constant, + const FlingCallback& fling_callback) + : fling_tracker_(time_constant), + fling_callback_(fling_callback), + clock_(new base::DefaultTickClock()) {} + +FlingAnimation::~FlingAnimation() {} + +void FlingAnimation::SetVelocity(float velocity_x, float velocity_y) { + fling_tracker_.StartFling(velocity_x, velocity_y); + fling_start_time_ = clock_->NowTicks(); +} + +bool FlingAnimation::IsAnimationInProgress() const { + return fling_tracker_.IsFlingInProgress(); +} + +void FlingAnimation::Tick() { + float dx, dy; + bool in_progress = fling_tracker_.TrackMovement( + clock_->NowTicks() - fling_start_time_, &dx, &dy); + if (in_progress) { + fling_callback_.Run(dx, dy); + } +} + +void FlingAnimation::Abort() { + fling_tracker_.StopFling(); +} + +void FlingAnimation::SetTickClockForTest( + std::unique_ptr<base::TickClock> clock) { + clock_ = std::move(clock); +} + +} // namespace remoting
diff --git a/remoting/client/fling_animation.h b/remoting/client/fling_animation.h new file mode 100644 index 0000000..c7672e9 --- /dev/null +++ b/remoting/client/fling_animation.h
@@ -0,0 +1,56 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_CLIENT_FLING_ANIMATION_H_ +#define REMOTING_CLIENT_FLING_ANIMATION_H_ + +#include <memory> + +#include "base/callback.h" +#include "base/time/tick_clock.h" +#include "remoting/client/fling_tracker.h" + +namespace remoting { + +// This class helps interpolating the positions of an object with the given +// initial velocity and feeds the change in position back to the callback. +class FlingAnimation { + public: + // arguments are delta_x and delta_y with respect to the positions at previous + // tick. + using FlingCallback = base::Callback<void(float, float)>; + + FlingAnimation(float time_constant, const FlingCallback& fling_callback); + ~FlingAnimation(); + + // (Re)starts the fling animation with the given initial velocity. + void SetVelocity(float velocity_x, float velocity_y); + + bool IsAnimationInProgress() const; + + // Moves forward the animation to catch up with current time. Calls the fling + // callback with the new positions. No-op if fling animation is not in + // progress. + void Tick(); + + // Aborts the animation. + void Abort(); + + void SetTickClockForTest(std::unique_ptr<base::TickClock> clock); + + private: + FlingTracker fling_tracker_; + FlingCallback fling_callback_; + + base::TimeTicks fling_start_time_; + + std::unique_ptr<base::TickClock> clock_; + + // FlingAnimation is neither copyable nor movable. + FlingAnimation(const FlingAnimation&) = delete; + FlingAnimation& operator=(const FlingAnimation&) = delete; +}; + +} // namespace remoting +#endif // REMOTING_CLIENT_FLING_ANIMATION_H_
diff --git a/remoting/client/fling_animation_unittest.cc b/remoting/client/fling_animation_unittest.cc new file mode 100644 index 0000000..73c203e --- /dev/null +++ b/remoting/client/fling_animation_unittest.cc
@@ -0,0 +1,153 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/client/fling_animation.h" + +#include <cmath> + +#include "base/bind.h" +#include "base/memory/ptr_util.h" +#include "base/test/simple_test_tick_clock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace remoting { + +namespace { + +const float kFlingTimeConstant = 325.f; + +} // namespace + +class FlingAnimationTest : public testing::Test { + public: + void SetUp() override; + void TearDown() override; + + protected: + void TickAnimation(base::TimeDelta time_delta); + + // Must be called after the animation ticks. + void AssertDeltaChanged(); + + FlingAnimation fling_animation_{ + kFlingTimeConstant, + base::Bind(&FlingAnimationTest::OnDeltaChanged, base::Unretained(this))}; + + float received_dx_ = 0.f; + float received_dy_ = 0.f; + + private: + void OnDeltaChanged(float dx, float dy); + + bool change_received_ = false; + + // Owned by |fling_animation_|. + base::SimpleTestTickClock* mock_clock_; +}; + +void FlingAnimationTest::SetUp() { + mock_clock_ = new base::SimpleTestTickClock(); + fling_animation_.SetTickClockForTest(base::WrapUnique(mock_clock_)); +} + +void FlingAnimationTest::TearDown() { + ASSERT_FALSE(change_received_); +} + +void FlingAnimationTest::TickAnimation(base::TimeDelta time_delta) { + mock_clock_->Advance(time_delta); + fling_animation_.Tick(); +} + +void FlingAnimationTest::AssertDeltaChanged() { + ASSERT_TRUE(change_received_); + change_received_ = false; +} + +void FlingAnimationTest::OnDeltaChanged(float dx, float dy) { + received_dx_ = dx; + received_dy_ = dy; + change_received_ = true; +} + +TEST_F(FlingAnimationTest, TestNoFling) { + EXPECT_FALSE(fling_animation_.IsAnimationInProgress()); + + // This should not change the delta. + TickAnimation(base::TimeDelta::FromMilliseconds(100)); +} + +TEST_F(FlingAnimationTest, TestFlingWillEventuallyStop) { + fling_animation_.SetVelocity(1500.f, 1200.f); + + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + + TickAnimation(base::TimeDelta::FromMinutes(1)); + + EXPECT_FALSE(fling_animation_.IsAnimationInProgress()); +} + +TEST_F(FlingAnimationTest, TestFlingDeltaIsDecreasing) { + fling_animation_.SetVelocity(1500.f, 1200.f); + + float previous_dx = std::numeric_limits<float>::infinity(); + float previous_dy = std::numeric_limits<float>::infinity(); + + while (true) { + TickAnimation(base::TimeDelta::FromMilliseconds(16)); + if (!fling_animation_.IsAnimationInProgress()) { + break; + } + AssertDeltaChanged(); + float hyp = + std::sqrt(received_dx_ * received_dx_ + received_dy_ * received_dy_); + float prev_hyp = + std::sqrt(previous_dx * previous_dx + previous_dy * previous_dy); + EXPECT_LT(hyp, prev_hyp); + previous_dx = received_dx_; + previous_dy = received_dy_; + } +} + +TEST_F(FlingAnimationTest, TestIgnoreLowVelocity) { + fling_animation_.SetVelocity(5.f, 5.f); + + EXPECT_FALSE(fling_animation_.IsAnimationInProgress()); + + // This should not change the delta. + TickAnimation(base::TimeDelta::FromMilliseconds(5)); +} + +TEST_F(FlingAnimationTest, TestAbortAnimation) { + fling_animation_.SetVelocity(1500.f, 1200.f); + + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + + TickAnimation(base::TimeDelta::FromMilliseconds(16)); + AssertDeltaChanged(); + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + + fling_animation_.Abort(); + EXPECT_FALSE(fling_animation_.IsAnimationInProgress()); +} + +TEST_F(FlingAnimationTest, TestResetVelocity) { + fling_animation_.SetVelocity(1000.f, -1000.f); + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + TickAnimation(base::TimeDelta::FromMilliseconds(16)); + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + AssertDeltaChanged(); + EXPECT_GT(received_dx_, 0); + EXPECT_LT(received_dy_, 0); + + fling_animation_.SetVelocity(-1000.f, 1000.f); + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + TickAnimation(base::TimeDelta::FromMilliseconds(16)); + EXPECT_TRUE(fling_animation_.IsAnimationInProgress()); + AssertDeltaChanged(); + EXPECT_LT(received_dx_, 0); + EXPECT_GT(received_dy_, 0); +} + +} // namespace remoting
diff --git a/remoting/client/fling_tracker.cc b/remoting/client/fling_tracker.cc new file mode 100644 index 0000000..fb6bc7c --- /dev/null +++ b/remoting/client/fling_tracker.cc
@@ -0,0 +1,109 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/client/fling_tracker.h" + +#include <cmath> + +namespace remoting { + +namespace { + +// TODO(yuweih): May need to tweak these numbers to get better smoothness. + +// Stop flinging if the speed drops below this. +// 1px per 16ms. i.e. 1px/frame. +// TODO(yuweih): The screen unit may not be in pixel. This needs to be +// normalized with the DPI. +const float kMinTrackSpeed = 0.0625f; + +// The minimum fling duration (ms) needed to trigger the fling animation. This +// is to prevent unintentional fling with low velocity. +const float kMinFlingTime = 500.f; + +float GetExpFactor(float time_constant, float time_elapsed) { + return std::exp(-time_elapsed / time_constant); +} + +float GetDisplacement(float initial_speed_rate, float exp_factor) { + // x = v0 * (1 - e^(-t / T)) + // This comes from a solution to the linear drag equation F=-kv + return initial_speed_rate * (1.f - exp_factor); +} + +float GetSpeed(float initial_speed_rate, + float time_constant, + float exp_factor) { + // v = (1 / T) * v0 * e^(-t / T). + // Derivative of the displacement. + return (1.f / time_constant) * initial_speed_rate * exp_factor; +} + +} // namespace + +FlingTracker::FlingTracker(float time_constant) + : time_constant_(time_constant) {} + +FlingTracker::~FlingTracker() {} + +void FlingTracker::StartFling(float velocity_x, float velocity_y) { + start_time_ = base::TimeTicks::Now(); + + initial_speed_rate_ = + std::sqrt(velocity_x * velocity_x + velocity_y * velocity_y); + + if (GetSpeed(initial_speed_rate_, time_constant_, + GetExpFactor(time_constant_, kMinFlingTime)) < kMinTrackSpeed) { + StopFling(); + return; + } + + velocity_ratio_x_ = velocity_x / initial_speed_rate_; + velocity_ratio_y_ = velocity_y / initial_speed_rate_; + + previous_position_x_ = 0; + previous_position_y_ = 0; +} + +void FlingTracker::StopFling() { + initial_speed_rate_ = 0.f; +} + +bool FlingTracker::IsFlingInProgress() const { + return initial_speed_rate_ > 0; +} + +bool FlingTracker::TrackMovement(base::TimeDelta time_elapsed, + float* dx, + float* dy) { + if (!IsFlingInProgress()) { + return false; + } + + float time_elapsed_ms = time_elapsed.InMilliseconds(); + + float exp_factor = GetExpFactor(time_constant_, time_elapsed_ms); + + float speed = GetSpeed(initial_speed_rate_, time_constant_, exp_factor); + + if (speed < kMinTrackSpeed) { + StopFling(); + return false; + } + + float displacement = GetDisplacement(initial_speed_rate_, exp_factor); + + float position_x = displacement * velocity_ratio_x_; + float position_y = displacement * velocity_ratio_y_; + + *dx = position_x - previous_position_x_; + *dy = position_y - previous_position_y_; + + previous_position_x_ = position_x; + previous_position_y_ = position_y; + + return true; +} + +} // namespace remoting
diff --git a/remoting/client/fling_tracker.h b/remoting/client/fling_tracker.h new file mode 100644 index 0000000..eb8a50a --- /dev/null +++ b/remoting/client/fling_tracker.h
@@ -0,0 +1,52 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_CLIENT_FLING_TRACKER_H_ +#define REMOTING_CLIENT_FLING_TRACKER_H_ + +#include "base/time/time.h" + +namespace remoting { + +// A class for tracking the positions of an object moving through a viscous +// liquid. +class FlingTracker { + public: + // time_constant: The larger the number the longer it takes to fling. + explicit FlingTracker(float time_constant); + + ~FlingTracker(); + + // Sets the position of the object and start fling. This will reset the + // existing fling. + void StartFling(float velocity_x, float velocity_y); + + void StopFling(); + + bool IsFlingInProgress() const; + + // time_elapsed: The time elapsed since the animation has started. + // Moves forward the object to catch up with |time_elapsed|. The change in + // positions will be written to |dx| and |dy|. + // Returns true if the fling is still in progress at |time_elapsed|, false + // otherwise, in which case |dx| and |dy| will not be touched. + bool TrackMovement(base::TimeDelta time_elapsed, float* dx, float* dy); + + private: + float time_constant_; + float initial_speed_rate_ = 0.f; + float velocity_ratio_x_ = 0.f; + float velocity_ratio_y_ = 0.f; + float previous_position_x_ = 0.f; + float previous_position_y_ = 0.f; + + base::TimeTicks start_time_; + + // FlingTracker is neither copyable nor movable. + FlingTracker(const FlingTracker&) = delete; + FlingTracker& operator=(const FlingTracker&) = delete; +}; + +} // namespace remoting +#endif // REMOTING_CLIENT_FLING_TRACKER_H_
diff --git a/remoting/client/gesture_interpreter.cc b/remoting/client/gesture_interpreter.cc index 85dfd340..d4389dc9 100644 --- a/remoting/client/gesture_interpreter.cc +++ b/remoting/client/gesture_interpreter.cc
@@ -3,15 +3,25 @@ // found in the LICENSE file. #include "remoting/client/gesture_interpreter.h" -#include "base/logging.h" + +#include "base/bind.h" +#include "base/time/time.h" #include "remoting/client/direct_input_strategy.h" -namespace remoting { +namespace { +const float kOneFingerFlingTimeConstant = 325.f; + +} // namespace + +namespace remoting { GestureInterpreter::GestureInterpreter( const DesktopViewport::TransformationCallback& on_transformation_changed, ChromotingSession* input_stub) - : input_stub_(input_stub) { + : input_stub_(input_stub), + pan_animation_(kOneFingerFlingTimeConstant, + base::Bind(&GestureInterpreter::PanWithoutAbortAnimations, + base::Unretained(this))) { viewport_.RegisterOnTransformationChangedCallback(on_transformation_changed, true); @@ -22,16 +32,17 @@ GestureInterpreter::~GestureInterpreter() {} void GestureInterpreter::Pinch(float pivot_x, float pivot_y, float scale) { + AbortAnimations(); input_strategy_->HandlePinch(pivot_x, pivot_y, scale, &viewport_); } void GestureInterpreter::Pan(float translation_x, float translation_y) { - // TODO(yuweih): Pan deceleration animation. - input_strategy_->HandlePan(translation_x, translation_y, is_dragging_mode_, - &viewport_); + AbortAnimations(); + PanWithoutAbortAnimations(translation_x, translation_y); } void GestureInterpreter::Tap(float x, float y) { + AbortAnimations(); float cursor_x, cursor_y; input_strategy_->FindCursorPositions(x, y, viewport_, &cursor_x, &cursor_y); InjectMouseClick(cursor_x, cursor_y, @@ -39,6 +50,7 @@ } void GestureInterpreter::TwoFingerTap(float x, float y) { + AbortAnimations(); float cursor_x, cursor_y; input_strategy_->FindCursorPositions(x, y, viewport_, &cursor_x, &cursor_y); InjectMouseClick(cursor_x, cursor_y, @@ -46,6 +58,7 @@ } void GestureInterpreter::LongPress(float x, float y, GestureState state) { + AbortAnimations(); float cursor_x, cursor_y; input_strategy_->FindCursorPositions(x, y, viewport_, &cursor_x, &cursor_y); @@ -55,12 +68,16 @@ is_dragging_mode_); } -void GestureInterpreter::InjectMouseClick( - float x, - float y, - protocol::MouseEvent_MouseButton button) { - input_stub_->SendMouseEvent(x, y, button, true); - input_stub_->SendMouseEvent(x, y, button, false); +void GestureInterpreter::OneFingerFling(float velocity_x, float velocity_y) { + AbortAnimations(); + pan_animation_.SetVelocity(velocity_x, velocity_y); + pan_animation_.Tick(); +} + +void GestureInterpreter::ProcessAnimations() { + if (pan_animation_.IsAnimationInProgress()) { + pan_animation_.Tick(); + } } void GestureInterpreter::OnSurfaceSizeChanged(int width, int height) { @@ -71,4 +88,22 @@ viewport_.SetDesktopSize(width, height); } +void GestureInterpreter::PanWithoutAbortAnimations(float translation_x, + float translation_y) { + input_strategy_->HandlePan(translation_x, translation_y, is_dragging_mode_, + &viewport_); +} + +void GestureInterpreter::AbortAnimations() { + pan_animation_.Abort(); +} + +void GestureInterpreter::InjectMouseClick( + float x, + float y, + protocol::MouseEvent_MouseButton button) { + input_stub_->SendMouseEvent(x, y, button, true); + input_stub_->SendMouseEvent(x, y, button, false); +} + } // namespace remoting
diff --git a/remoting/client/gesture_interpreter.h b/remoting/client/gesture_interpreter.h index 9ad968ff..f4d369b 100644 --- a/remoting/client/gesture_interpreter.h +++ b/remoting/client/gesture_interpreter.h
@@ -9,6 +9,7 @@ #include "remoting/client/chromoting_session.h" #include "remoting/client/desktop_viewport.h" +#include "remoting/client/fling_animation.h" #include "remoting/proto/event.pb.h" namespace remoting { @@ -27,19 +28,39 @@ ~GestureInterpreter(); // Coordinates of the OpenGL view surface will be used. + + // This can happen in conjunction with Pan(). void Pinch(float pivot_x, float pivot_y, float scale); + + // Called whenever the user did a pan gesture. It can be one-finger pan, no + // matter long-press in on or not, or two-finger pan in conjunction with the + // pinch gesture. Two-finger pan without pinch is consider a scroll gesture. void Pan(float translation_x, float translation_y); + + // Called when the user did a one-finger tap. void Tap(float x, float y); + void TwoFingerTap(float x, float y); // Caller is expected to call both Pan() and LongPress() when long-press is in // progress. void LongPress(float x, float y, GestureState state); + // Called when the user has just done a one-finger pan (no long-press or + // pinching) and the pan gesture still has some final velocity. + void OneFingerFling(float velocity_x, float velocity_y); + + // Called to process one animation frame. + void ProcessAnimations(); + void OnSurfaceSizeChanged(int width, int height); void OnDesktopSizeChanged(int width, int height); private: + void PanWithoutAbortAnimations(float translation_x, float translation_y); + + void AbortAnimations(); + void InjectMouseClick(float x, float y, protocol::MouseEvent_MouseButton button); @@ -49,6 +70,8 @@ ChromotingSession* input_stub_; bool is_dragging_mode_ = false; + FlingAnimation pan_animation_; + // GestureInterpreter is neither copyable nor movable. GestureInterpreter(const GestureInterpreter&) = delete; GestureInterpreter& operator=(const GestureInterpreter&) = delete;
diff --git a/remoting/host/win/unprivileged_process_delegate.cc b/remoting/host/win/unprivileged_process_delegate.cc index af368b44..5789ae2 100644 --- a/remoting/host/win/unprivileged_process_delegate.cc +++ b/remoting/host/win/unprivileged_process_delegate.cc
@@ -311,8 +311,10 @@ ReportFatalError(); return; } - invitation.Send(worker_process.Get(), - mojo::edk::ConnectionParams(mojo_channel.PassServerHandle())); + invitation.Send( + worker_process.Get(), + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + mojo_channel.PassServerHandle())); channel_ = std::move(server);
diff --git a/remoting/host/win/wts_session_process_delegate.cc b/remoting/host/win/wts_session_process_delegate.cc index a56232c7..a29f5c0 100644 --- a/remoting/host/win/wts_session_process_delegate.cc +++ b/remoting/host/win/wts_session_process_delegate.cc
@@ -559,7 +559,8 @@ broker_client_invitation_->Send( worker_process.Get(), - mojo::edk::ConnectionParams(std::move(server_handle))); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + std::move(server_handle))); broker_client_invitation_.reset(); worker_process_ = std::move(worker_process);
diff --git a/remoting/ios/client_gestures.h b/remoting/ios/client_gestures.h index 132302e..455609ed7 100644 --- a/remoting/ios/client_gestures.h +++ b/remoting/ios/client_gestures.h
@@ -36,6 +36,7 @@ @private UILongPressGestureRecognizer* _longPressRecognizer; UIPanGestureRecognizer* _panRecognizer; + UIPanGestureRecognizer* _flingRecognizer; UIPanGestureRecognizer* _threeFingerPanRecognizer; UIPinchGestureRecognizer* _pinchRecognizer; UITapGestureRecognizer* _singleTapRecognizer; @@ -58,6 +59,8 @@ - (IBAction)tapGestureTriggered:(UITapGestureRecognizer*)sender; // Scroll the view in 2d - (IBAction)panGestureTriggered:(UIPanGestureRecognizer*)sender; +// Handle one finger fling gesture +- (IBAction)flingGestureTriggered:(UIPanGestureRecognizer*)sender; // Right mouse click and drag, moves cursor - (IBAction)longPressGestureTriggered:(UILongPressGestureRecognizer*)sender; // Right mouse click
diff --git a/remoting/ios/client_gestures.mm b/remoting/ios/client_gestures.mm index f6e0be75..20e4701c 100644 --- a/remoting/ios/client_gestures.mm +++ b/remoting/ios/client_gestures.mm
@@ -33,6 +33,14 @@ _panRecognizer.delegate = self; [view addGestureRecognizer:_panRecognizer]; + _flingRecognizer = [[UIPanGestureRecognizer alloc] + initWithTarget:self + action:@selector(flingGestureTriggered:)]; + _flingRecognizer.minimumNumberOfTouches = 1; + _flingRecognizer.maximumNumberOfTouches = 1; + _flingRecognizer.delegate = self; + [view addGestureRecognizer:_flingRecognizer]; + _threeFingerPanRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(threeFingerPanGestureTriggered:)]; @@ -120,12 +128,8 @@ // Change position of scene. This can occur during a pinch or long press. // Or perform a Mouse Wheel Scroll. -// TODO(yuweih): The comment above doesn't seem right. Non-panning gestures -// should be moved out of this method. - (IBAction)panGestureTriggered:(UIPanGestureRecognizer*)sender { - // TODO(yuweih): Need deceleration animation, probably in another class. - if ([sender state] == UIGestureRecognizerStateChanged && - [sender numberOfTouches] == 1) { + if ([sender state] == UIGestureRecognizerStateChanged) { CGPoint translation = [sender translationInView:_view]; _client.gestureInterpreter->Pan(translation.x, translation.y); @@ -228,6 +232,17 @@ // } } +// Do fling on the viewport. This will happen at the end of the one-finger +// panning. +- (IBAction)flingGestureTriggered:(UIPanGestureRecognizer*)sender { + if ([sender state] == UIGestureRecognizerStateEnded) { + CGPoint velocity = [sender velocityInView:_view]; + if (velocity.x != 0 || velocity.y != 0) { + _client.gestureInterpreter->OneFingerFling(velocity.x, velocity.y); + } + } +} + // Click-Drag mouse operation. This can occur during a Pan. - (IBAction)longPressGestureTriggered:(UILongPressGestureRecognizer*)sender { CGPoint touchPoint = [sender locationInView:_view]; @@ -332,6 +347,14 @@ } } + if (gestureRecognizer == _flingRecognizer || + (gestureRecognizer == _panRecognizer)) { + if (otherGestureRecognizer == _flingRecognizer || + otherGestureRecognizer == _panRecognizer) { + return YES; + } + } + if (gestureRecognizer == _longPressRecognizer || gestureRecognizer == _panRecognizer) { if (otherGestureRecognizer == _longPressRecognizer ||
diff --git a/remoting/ios/display/gl_display_handler.h b/remoting/ios/display/gl_display_handler.h index 7bd513a5..a23cee7 100644 --- a/remoting/ios/display/gl_display_handler.h +++ b/remoting/ios/display/gl_display_handler.h
@@ -33,6 +33,8 @@ // Notifies the delegate that the size of the desktop image has changed. - (void)canvasSizeChanged:(CGSize)size; +- (void)rendererTicked; + @end @interface GlDisplayHandler : NSObject {
diff --git a/remoting/ios/display/gl_display_handler.mm b/remoting/ios/display/gl_display_handler.mm index 45fda31..e8565ef 100644 --- a/remoting/ios/display/gl_display_handler.mm +++ b/remoting/ios/display/gl_display_handler.mm
@@ -149,6 +149,9 @@ void Core::OnFrameRendered() { [eagl_context_ presentRenderbuffer:GL_RENDERBUFFER]; + runtime_->ui_task_runner()->PostTask(FROM_HERE, base::BindBlockArc(^() { + [handler_delegate_ rendererTicked]; + })); } void Core::OnSizeChanged(int width, int height) {
diff --git a/remoting/ios/session/remoting_client.mm b/remoting/ios/session/remoting_client.mm index 939f428d..235400d0 100644 --- a/remoting/ios/session/remoting_client.mm +++ b/remoting/ios/session/remoting_client.mm
@@ -119,7 +119,6 @@ _sessonDelegate->GetWeakPtr(), [_displayHandler CreateCursorShapeStub], [_displayHandler CreateVideoRenderer], audioPlayer, info, client_auth_config)); - _session->Connect(); __weak GlDisplayHandler* weakDisplayHandler = _displayHandler; _gestureInterpreter.reset(new remoting::GestureInterpreter( @@ -127,6 +126,8 @@ [weakDisplayHandler onPixelTransformationChanged:matrix]; }), _session.get())); + + _session->Connect(); } - (void)disconnectFromHost { @@ -233,9 +234,11 @@ #pragma mark - GlDisplayHandlerDelegate - (void)canvasSizeChanged:(CGSize)size { - if (_gestureInterpreter) { - _gestureInterpreter->OnDesktopSizeChanged(size.width, size.height); - } + _gestureInterpreter->OnDesktopSizeChanged(size.width, size.height); +} + +- (void)rendererTicked { + _gestureInterpreter->ProcessAnimations(); } @end
diff --git a/services/preferences/pref_store_manager_impl.cc b/services/preferences/pref_store_manager_impl.cc index 8232baf..bc499741 100644 --- a/services/preferences/pref_store_manager_impl.cc +++ b/services/preferences/pref_store_manager_impl.cc
@@ -254,19 +254,9 @@ mojom::PrefRegistryPtr pref_registry, const std::vector<PrefValueStore::PrefStoreType>& already_connected_types, const ConnectCallback& callback) { - std::vector<std::string> observed_prefs; - for (auto& registration : pref_registry->registrations) { - observed_prefs.push_back(registration.first); - const auto& key = registration.first; - auto& default_value = registration.second->default_value; - const base::Value* old_default = nullptr; - // TODO(sammc): Once non-owning registrations are supported, disallow - // multiple owners instead of just checking for consistent defaults. - if (defaults_->GetValue(key, &old_default)) - DCHECK(old_default->Equals(default_value.get())); - else - defaults_->SetDefaultValue(key, std::move(default_value)); - } + // TODO(crbug.com/719770): Once owning registrations are supported, check the + // default values in |pref_registry| for consistency with existing defaults + // and add them to the default pref store. // Only connect to pref stores the client isn't already connected to. PrefStorePtrs ptrs; @@ -275,12 +265,12 @@ ptrs.insert(std::make_pair(entry.first, entry.second.get())); } } - ConnectionBarrier::Create( - ptrs, - persistent_pref_store_->CreateConnection( - PersistentPrefStoreImpl::ObservedPrefs(observed_prefs.begin(), - observed_prefs.end())), - observed_prefs, callback); + ConnectionBarrier::Create(ptrs, + persistent_pref_store_->CreateConnection( + PersistentPrefStoreImpl::ObservedPrefs( + pref_registry->registrations.begin(), + pref_registry->registrations.end())), + pref_registry->registrations, callback); } void PrefStoreManagerImpl::OnPersistentPrefStoreReady() {
diff --git a/services/preferences/public/cpp/pref_registry_serializer.cc b/services/preferences/public/cpp/pref_registry_serializer.cc index b64e2c7..484e8ab9a 100644 --- a/services/preferences/public/cpp/pref_registry_serializer.cc +++ b/services/preferences/public/cpp/pref_registry_serializer.cc
@@ -11,9 +11,7 @@ mojom::PrefRegistryPtr SerializePrefRegistry(PrefRegistry& pref_registry) { auto registry = mojom::PrefRegistry::New(); for (auto& pref : pref_registry) { - registry->registrations[pref.first] = mojom::PrefRegistration::New( - pref.second->CreateDeepCopy(), - pref_registry.GetRegistrationFlags(pref.first)); + registry->registrations.push_back(pref.first); } return registry; }
diff --git a/services/preferences/public/cpp/pref_service_factory.cc b/services/preferences/public/cpp/pref_service_factory.cc index 58ff031..2f1f4316 100644 --- a/services/preferences/public/cpp/pref_service_factory.cc +++ b/services/preferences/public/cpp/pref_service_factory.cc
@@ -38,7 +38,7 @@ void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) {} -scoped_refptr<PrefStore> CreatePrefStore( +scoped_refptr<PrefStore> CreatePrefStoreClient( PrefValueStore::PrefStoreType store_type, std::unordered_map<PrefValueStore::PrefStoreType, mojom::PrefStoreConnectionPtr>* connections) { @@ -60,17 +60,18 @@ std::unordered_map<PrefValueStore::PrefStoreType, mojom::PrefStoreConnectionPtr> connections) { scoped_refptr<PrefStore> managed_prefs = - CreatePrefStore(PrefValueStore::MANAGED_STORE, &connections); - scoped_refptr<PrefStore> supervised_user_prefs = - CreatePrefStore(PrefValueStore::SUPERVISED_USER_STORE, &connections); + CreatePrefStoreClient(PrefValueStore::MANAGED_STORE, &connections); + scoped_refptr<PrefStore> supervised_user_prefs = CreatePrefStoreClient( + PrefValueStore::SUPERVISED_USER_STORE, &connections); scoped_refptr<PrefStore> extension_prefs = - CreatePrefStore(PrefValueStore::EXTENSION_STORE, &connections); + CreatePrefStoreClient(PrefValueStore::EXTENSION_STORE, &connections); scoped_refptr<PrefStore> command_line_prefs = - CreatePrefStore(PrefValueStore::COMMAND_LINE_STORE, &connections); + CreatePrefStoreClient(PrefValueStore::COMMAND_LINE_STORE, &connections); scoped_refptr<PrefStore> recommended_prefs = - CreatePrefStore(PrefValueStore::RECOMMENDED_STORE, &connections); - scoped_refptr<PrefStore> default_prefs = - CreatePrefStore(PrefValueStore::DEFAULT_STORE, &connections); + CreatePrefStoreClient(PrefValueStore::RECOMMENDED_STORE, &connections); + // TODO(crbug.com/719770): Once owning registrations are supported, pass the + // default values of owned prefs to the service and connect to the service's + // defaults pref store instead of using a local one. scoped_refptr<PersistentPrefStore> persistent_pref_store( new PersistentPrefStoreClient( std::move(persistent_pref_store_connection))); @@ -78,7 +79,7 @@ auto* pref_value_store = new PrefValueStore( managed_prefs.get(), supervised_user_prefs.get(), extension_prefs.get(), command_line_prefs.get(), persistent_pref_store.get(), - recommended_prefs.get(), default_prefs.get(), pref_notifier); + recommended_prefs.get(), pref_registry->defaults().get(), pref_notifier); callback.Run(base::MakeUnique<::PrefService>( pref_notifier, pref_value_store, persistent_pref_store.get(), pref_registry.get(), base::Bind(&DoNothingHandleReadError), true)); @@ -98,9 +99,10 @@ void ConnectToPrefService( service_manager::Connector* connector, scoped_refptr<PrefRegistry> pref_registry, - const std::vector<PrefValueStore::PrefStoreType>& already_connected_types, + std::vector<PrefValueStore::PrefStoreType> already_connected_types, ConnectCallback callback, base::StringPiece service_name) { + already_connected_types.push_back(PrefValueStore::DEFAULT_STORE); auto connector_ptr = make_scoped_refptr( new RefCountedInterfacePtr<mojom::PrefStoreConnector>()); connector->BindInterface(service_name.as_string(), &connector_ptr->get()); @@ -108,7 +110,7 @@ &OnConnectError, connector_ptr, base::Passed(ConnectCallback{callback}))); auto serialized_pref_registry = SerializePrefRegistry(*pref_registry); connector_ptr->get()->Connect( - std::move(serialized_pref_registry), already_connected_types, + std::move(serialized_pref_registry), std::move(already_connected_types), base::Bind(&OnConnect, connector_ptr, base::Passed(&pref_registry), base::Passed(&callback))); }
diff --git a/services/preferences/public/cpp/pref_service_factory.h b/services/preferences/public/cpp/pref_service_factory.h index d138ad3..e3cb3f34 100644 --- a/services/preferences/public/cpp/pref_service_factory.h +++ b/services/preferences/public/cpp/pref_service_factory.h
@@ -39,7 +39,7 @@ void ConnectToPrefService( service_manager::Connector* connector, scoped_refptr<PrefRegistry> pref_registry, - const std::vector<PrefValueStore::PrefStoreType>& already_connected_types, + std::vector<PrefValueStore::PrefStoreType> already_connected_types, ConnectCallback callback, base::StringPiece service_name = mojom::kServiceName);
diff --git a/services/preferences/public/interfaces/preferences.mojom b/services/preferences/public/interfaces/preferences.mojom index ca3f37ad..eb44945 100644 --- a/services/preferences/public/interfaces/preferences.mojom +++ b/services/preferences/public/interfaces/preferences.mojom
@@ -138,7 +138,7 @@ // A registry of all prefs registered by a single client. struct PrefRegistry { - map<string, PrefRegistration> registrations; + array<string> registrations; }; struct PrefRegistration {
diff --git a/services/service_manager/runner/host/service_process_launcher.cc b/services/service_manager/runner/host/service_process_launcher.cc index e63b05db..7142aba1 100644 --- a/services/service_manager/runner/host/service_process_launcher.cc +++ b/services/service_manager/runner/host/service_process_launcher.cc
@@ -204,7 +204,8 @@ mojo_ipc_channel_->ChildProcessLaunched(); broker_client_invitation_.Send( child_process_.Handle(), - mojo::edk::ConnectionParams(mojo_ipc_channel_->PassServerHandle())); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + mojo_ipc_channel_->PassServerHandle())); } } start_child_process_event_.Signal();
diff --git a/services/service_manager/tests/service_manager/service_manager_unittest.cc b/services/service_manager/tests/service_manager/service_manager_unittest.cc index f1ef25d0..4ce3eea9 100644 --- a/services/service_manager/tests/service_manager/service_manager_unittest.cc +++ b/services/service_manager/tests/service_manager/service_manager_unittest.cc
@@ -203,7 +203,8 @@ receiver->SetPID(target_.Pid()); invitation.Send( target_.Handle(), - mojo::edk::ConnectionParams(platform_channel_pair.PassServerHandle())); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + platform_channel_pair.PassServerHandle())); } void KillTarget() {
diff --git a/services/service_manager/tests/util.cc b/services/service_manager/tests/util.cc index 7d42390..f325036 100644 --- a/services/service_manager/tests/util.cc +++ b/services/service_manager/tests/util.cc
@@ -95,7 +95,8 @@ receiver->SetPID(process->Pid()); invitation.Send( process->Handle(), - mojo::edk::ConnectionParams(platform_channel_pair.PassServerHandle())); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + platform_channel_pair.PassServerHandle())); return result; }
diff --git a/third_party/WebKit/LayoutTests/NeverFixTests b/third_party/WebKit/LayoutTests/NeverFixTests index 1927098..9e0a746 100644 --- a/third_party/WebKit/LayoutTests/NeverFixTests +++ b/third_party/WebKit/LayoutTests/NeverFixTests
@@ -238,6 +238,50 @@ external/wpt/longtask-timing [ WontFix ] # WPT manual tests without automation +external/wpt/battery-status/battery-charging-manual.html [ WontFix ] +external/wpt/battery-status/battery-plugging-in-manual.html [ WontFix ] +external/wpt/battery-status/battery-unplugging-manual.html [ WontFix ] +external/wpt/geolocation-API/getCurrentPosition_permission-manual.html [ WontFix ] +external/wpt/geolocation-API/getCurrentPosition_permission_allow-manual.html [ WontFix ] +external/wpt/geolocation-API/getCurrentPosition_permission_deny-manual.html [ WontFix ] +external/wpt/geolocation-API/watchPosition_permission-manual.html [ WontFix ] +external/wpt/pointerlock/movementX_Y_basic-manual.html [ WontFix ] +external/wpt/pointerlock/movementX_Y_no-jumps-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_basic-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_fullscreen-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_indefinite-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_leave_Tab-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_leave_UA-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_remove_target-manual.html [ WontFix ] +external/wpt/pointerlock/pointerlock_shadow-manual.html [ WontFix ] +external/wpt/vibration/cancel-when-hidden-manual.html [ WontFix ] +external/wpt/vibration/cancel-with-0-manual.html [ WontFix ] +external/wpt/vibration/cancel-with-array-0-manual.html [ WontFix ] +external/wpt/vibration/cancel-with-empty-array-manual.html [ WontFix ] +external/wpt/vibration/cancel-with-new-manual.html [ WontFix ] +external/wpt/vibration/pattern-array-extra-manual.html [ WontFix ] +external/wpt/vibration/pattern-array-manual.html [ WontFix ] +external/wpt/vibration/pattern-array-with-0-manual.html [ WontFix ] +external/wpt/vibration/simple-array-manual.html [ WontFix ] +external/wpt/vibration/simple-scalar-manual.html [ WontFix ] +external/wpt/console/console-count-logging-manual.html [ WontFix ] +external/wpt/notifications/body-basic-manual.html [ WontFix ] +external/wpt/notifications/body-empty-manual.html [ WontFix ] +external/wpt/notifications/event-onclick-manual.html [ WontFix ] +external/wpt/notifications/event-onerror-default-manual.html [ WontFix ] +external/wpt/notifications/icon-basic-manual.html [ WontFix ] +external/wpt/notifications/icon-empty-manual.html [ WontFix ] +external/wpt/notifications/requestPermission-granted-manual.html [ WontFix ] +external/wpt/notifications/tag-different-manual.html [ WontFix ] +external/wpt/notifications/tag-same-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-input-email-add-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-input-password-add-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-input-search-add-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-input-tel-add-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-input-text-add-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-input-url-add-manual.html [ WontFix ] +external/wpt/html/semantics/forms/constraints/tooShort-textarea-add-manual.html [ WontFix ] +external/wpt/selection/dir-manual.html [ WontFix ] external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_break-after-column-item.html [ WontFix ] external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_break-after-column-lastitem.html [ WontFix ] external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_break-after-container.html [ WontFix ] @@ -475,14 +519,6 @@ external/wpt/css/css-text-decor-3/text-decoration-line-012.xht [ WontFix ] external/wpt/css/css-text-decor-3/text-decoration-line-013.xht [ WontFix ] external/wpt/css/css-text-decor-3/text-decoration-line-014.xht [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-input-email-add-manual.html [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-input-password-add-manual.html [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-input-search-add-manual.html [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-input-tel-add-manual.html [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-input-text-add-manual.html [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-input-url-add-manual.html [ WontFix ] -external/wpt/html/semantics/forms/constraints/tooShort-textarea-add-manual.html [ WontFix ] -external/wpt/selection/dir-manual.html [ WontFix ] # Temporary disabling of all encrypted-media WPT tests while enabling # https only. Once the switch is complete (and the WPT tests renamed so they
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 39483a2b..e71d63f4 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -271,7 +271,6 @@ # LayoutNG - is a new layout system for Blink. ### external/wpt/css/CSS2/floats-clear -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/adjacent-floats-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-005.xht [ Skip ] @@ -290,11 +289,7 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-005.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-006.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-007.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-008.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-009.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-003.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-006.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-applies-to-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-applies-to-001a.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-applies-to-002.xht [ Skip ] @@ -311,7 +306,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-applies-to-013.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-applies-to-014.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-applies-to-015.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-non-replaced-height-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-non-replaced-width-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-non-replaced-width-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-non-replaced-width-003.xht [ Skip ] @@ -339,7 +333,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floating-replaced-height-008.xht [ Skip ] crbug.com/719615 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-002.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-005.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-006.xht [ Skip ] @@ -368,7 +361,6 @@ crbug.com/719620 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-114.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-117.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-120.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-123.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-126.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-127.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-128.xht [ Skip ] @@ -414,7 +406,6 @@ crbug.com/719620 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-placement-vertical-001a.xht [ Skip ] crbug.com/719620 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-placement-vertical-001b.xht [ Skip ] crbug.com/719620 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-placement-vertical-001c.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-placement-vertical-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-bfc-001-left-overflow.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-bfc-002-left-overflow.xht [ Skip ] @@ -546,7 +537,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-absolute-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-absolute-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-absolute-006.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-absolute-007.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-applies-to-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-applies-to-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-applies-to-003.xht [ Skip ] @@ -970,8 +960,6 @@ crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/line-beside-float-complex-margin-collapsing.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-creates-block-formatting-context.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-getting-layout-set.html [ Skip ] -crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html [ Skip ] -crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-with-float-child.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-with-float-children.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-with-float-descendants.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-and-float-child.html [ Skip ] @@ -1114,7 +1102,6 @@ crbug.com/635619 virtual/layout_ng/fast/block/float/marquee-shrink-to-avoid-floats.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/max-width-clear-float-with-overflow-hidden.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/multiple-float-positioning.html [ Skip ] -crbug.com/635619 virtual/layout_ng/fast/block/float/narrow-after-wide.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/negative-margin-clear.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/negative-margin-on-element-avoiding-floats-with-margin-on-parent.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/negative-margin-on-element-avoiding-floats.html [ Skip ] @@ -2288,6 +2275,8 @@ crbug.com/705125 virtual/mojo-loading/http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html [ Failure ] crbug.com/705125 virtual/mojo-loading/http/tests/security/cors-rfc1918/addressspace-document-appcache.html [ Failure ] crbug.com/705125 virtual/mojo-loading/http/tests/security/cors-rfc1918/addressspace-document-csp-appcache.html [ Failure ] +crbug.com/705125 http/tests/security/suborigins/crossorigin/suborigin-cors-xhr-failure-output.php [ Failure Pass ] +crbug.com/705125 virtual/mojo-loading/http/tests/security/suborigins/crossorigin/suborigin-cors-xhr-failure-output.php [ Failure Pass ] # This test breaks when the feature introduced in the bug is enabled. We keep # this tested without the feature by using the virtual test. See @@ -2394,27 +2383,32 @@ crbug.com/713587 external/wpt/css/css-ui-3/caret-color-006.html [ Skip ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 external/wpt/compat/webkit-text-fill-color-property-005.html [ Failure ] +crbug.com/626703 external/wpt/eventsource/eventsource-request-cancellation.htm [ Timeout ] +crbug.com/626703 external/wpt/http/basic-auth-cache-test.html [ Timeout ] +crbug.com/626703 external/wpt/notifications/constructor-basic.html [ Timeout ] +crbug.com/626703 external/wpt/notifications/constructor-invalid.html [ Timeout ] +crbug.com/626703 external/wpt/notifications/event-onclose.html [ Timeout ] +crbug.com/626703 external/wpt/notifications/event-onshow.html [ Timeout ] +crbug.com/626703 external/wpt/notifications/instance.html [ Timeout ] +crbug.com/626703 external/wpt/notifications/lang.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/basic-dedicated-worker.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/basic-dedicated-worker.https.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/basic-popup-and-iframe-tests.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/basic-shared-worker.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/basic-shared-worker.https.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/shared-worker-insecure-first.https.html [ Timeout ] +crbug.com/626703 external/wpt/secure-contexts/shared-worker-secure-first.https.html [ Timeout ] +crbug.com/626703 external/wpt/webauthn/interfaces.https.html [ Timeout ] +crbug.com/626703 external/wpt/webauthn/makecredential-badargs-accountinformation.https.html [ Timeout ] +crbug.com/626703 external/wpt/webauthn/makecredential-badargs-attestationchallenge.https.html [ Timeout ] +crbug.com/626703 external/wpt/webauthn/makecredential-badargs-cryptoparameters.https.html [ Timeout ] +crbug.com/626703 external/wpt/websockets/Create-Secure-extensions-empty.htm [ Timeout ] crbug.com/626703 external/wpt/media-source/mediasource-appendbuffer-quota-exceeded.html [ Timeout ] crbug.com/626703 external/wpt/media-source/mediasource-avtracks.html [ Failure Crash ] crbug.com/626703 external/wpt/media-source/mediasource-duration.html [ Failure ] crbug.com/626703 external/wpt/media-source/mediasource-getvideoplaybackquality.html [ Timeout Failure ] -crbug.com/626703 external/wpt/compat/webkit-text-fill-color-property-005.html [ Failure ] -crbug.com/626703 external/wpt/console/console-count-logging-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/body-basic-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/body-empty-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/constructor-basic.html [ Timeout ] -crbug.com/626703 external/wpt/notifications/constructor-invalid.html [ Timeout ] -crbug.com/626703 external/wpt/notifications/event-onclick-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/event-onclose.html [ Timeout ] -crbug.com/626703 external/wpt/notifications/event-onerror-default-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/event-onshow.html [ Timeout ] -crbug.com/626703 external/wpt/notifications/icon-basic-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/icon-empty-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/instance.html [ Timeout ] -crbug.com/626703 external/wpt/notifications/lang.html [ Timeout ] -crbug.com/626703 external/wpt/notifications/requestPermission-granted-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/tag-different-manual.html [ Skip ] -crbug.com/626703 external/wpt/notifications/tag-same-manual.html [ Skip ] crbug.com/626703 external/wpt/webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html [ Timeout ] crbug.com/626703 external/wpt/webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html [ Timeout ] crbug.com/626703 external/wpt/webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html [ Timeout ] @@ -2794,7 +2788,6 @@ crbug.com/626703 external/wpt/webvtt/rendering/cues-with-video/processing-model/size_50.html [ Failure ] crbug.com/626703 external/wpt/webvtt/rendering/cues-with-video/processing-model/too_many_cues.html [ Failure ] crbug.com/626703 external/wpt/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped.html [ Failure ] -crbug.com/626703 external/wpt/service-workers/service-worker/registration-useCache.https.html [ Timeout ] crbug.com/626703 external/wpt/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html [ Timeout ] crbug.com/626703 external/wpt/html/semantics/scripting-1/the-script-element/async_007.htm [ Timeout ] crbug.com/626703 external/wpt/html/semantics/scripting-1/the-script-element/async_010.htm [ Timeout ] @@ -2872,6 +2865,14 @@ crbug.com/626703 external/wpt/workers/opaque-origin.html [ Failure Crash Timeout ] crbug.com/626703 external/wpt/html/rendering/non-replaced-elements/margin-collapsing-quirks/multicol-quirks-mode.html [ Pass Crash ] crbug.com/626703 external/wpt/html/rendering/non-replaced-elements/margin-collapsing-quirks/multicol-standards-mode.html [ Pass Crash ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm [ Crash Pass ] +crbug.com/720545 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm [ Crash Pass ] # Manual tests that have not been automated. crbug.com/626703 external/wpt/fullscreen/api/element-request-fullscreen-two-iframes-manual.html [ Timeout ] @@ -2975,10 +2976,8 @@ crbug.com/655458 external/wpt/mediacapture-image/idlharness.html [ Skip ] crbug.com/655458 external/wpt/html/semantics/tabular-data/processing-model-1/span-limits.html [ Skip ] crbug.com/655458 external/wpt/css/css-transforms-2/transform3d-scale-007.html [ Skip ] -crbug.com/655458 external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html [ Skip ] crbug.com/655458 external/wpt/WebCryptoAPI/idlharness.html [ Skip ] crbug.com/655458 external/wpt/WebCryptoAPI/idlharness.https.html [ Skip ] -crbug.com/655458 external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf.html [ Skip ] crbug.com/655458 external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html [ Skip ] crbug.com/655458 external/wpt/web-animations/interfaces/AnimationTimeline/document-timeline.html [ Skip ] @@ -3341,11 +3340,11 @@ crbug.com/703533 [ Mac ] shapedetection/detection-security-test.html [ Crash Pass Timeout ] # Sheriff failures 2017-05-11 -crbug.com/720511 [ Linux ] http/tests/misc/non-utf8-header-name.php [ Failure Pass Timeout ] +crbug.com/720511 [ Linux ] http/tests/misc/non-utf8-header-name.php [ Skip ] crbug.com/720511 [ Linux ] http/tests/security/contentSecurityPolicy/directive-parsing-03.html [ Failure Pass Timeout ] crbug.com/720511 [ Linux ] http/tests/security/contentSecurityPolicy/source-list-parsing-04.html [ Failure Pass Timeout ] crbug.com/720511 [ Linux ] http/tests/security/document-domain-canonicalizes.html [ Failure Pass Timeout ] -crbug.com/720511 [ Linux ] virtual/mojo-loading/http/tests/misc/non-utf8-header-name.php [ Failure Pass Timeout ] +crbug.com/720511 [ Linux ] virtual/mojo-loading/http/tests/misc/non-utf8-header-name.php [ Skip ] crbug.com/720511 [ Linux ] virtual/mojo-loading/http/tests/security/contentSecurityPolicy/directive-parsing-03.html [ Failure Pass Timeout ] crbug.com/720511 [ Linux ] virtual/mojo-loading/http/tests/security/contentSecurityPolicy/source-list-parsing-04.html [ Failure Pass Timeout ] crbug.com/720511 [ Linux ] virtual/mojo-loading/http/tests/security/document-domain-canonicalizes.html [ Failure Pass Timeout ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json index b0c6a7f..258d821 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -25,6 +25,42 @@ {} ] ], + "accelerometer/Accelerometer_onerror-manual.https.html": [ + [ + "/accelerometer/Accelerometer_onerror-manual.https.html", + {} + ] + ], + "battery-status/battery-charging-manual.html": [ + [ + "/battery-status/battery-charging-manual.html", + {} + ] + ], + "battery-status/battery-discharging-manual.html": [ + [ + "/battery-status/battery-discharging-manual.html", + {} + ] + ], + "battery-status/battery-full-manual.html": [ + [ + "/battery-status/battery-full-manual.html", + {} + ] + ], + "battery-status/battery-plugging-in-manual.html": [ + [ + "/battery-status/battery-plugging-in-manual.html", + {} + ] + ], + "battery-status/battery-unplugging-manual.html": [ + [ + "/battery-status/battery-unplugging-manual.html", + {} + ] + ], "console/console-count-logging-manual.html": [ [ "/console/console-count-logging-manual.html", @@ -5593,6 +5629,36 @@ {} ] ], + "geolocation-API/getCurrentPosition_permission-manual.html": [ + [ + "/geolocation-API/getCurrentPosition_permission-manual.html", + {} + ] + ], + "geolocation-API/getCurrentPosition_permission_allow-manual.html": [ + [ + "/geolocation-API/getCurrentPosition_permission_allow-manual.html", + {} + ] + ], + "geolocation-API/getCurrentPosition_permission_deny-manual.html": [ + [ + "/geolocation-API/getCurrentPosition_permission_deny-manual.html", + {} + ] + ], + "geolocation-API/watchPosition_permission-manual.html": [ + [ + "/geolocation-API/watchPosition_permission-manual.html", + {} + ] + ], + "gyroscope/Gyroscope_onerror-manual.https.html": [ + [ + "/gyroscope/Gyroscope_onerror-manual.https.html", + {} + ] + ], "html-media-capture/capture_audio-manual.html": [ [ "/html-media-capture/capture_audio-manual.html", @@ -6187,6 +6253,12 @@ {} ] ], + "magnetometer/Magnetometer_onerror-manual.https.html": [ + [ + "/magnetometer/Magnetometer_onerror-manual.https.html", + {} + ] + ], "mediacapture-streams/MediaStream-id-manual.https.html": [ [ "/mediacapture-streams/MediaStream-id-manual.https.html", @@ -6733,6 +6805,66 @@ {} ] ], + "pointerlock/movementX_Y_basic-manual.html": [ + [ + "/pointerlock/movementX_Y_basic-manual.html", + {} + ] + ], + "pointerlock/movementX_Y_no-jumps-manual.html": [ + [ + "/pointerlock/movementX_Y_no-jumps-manual.html", + {} + ] + ], + "pointerlock/pointerlock_basic-manual.html": [ + [ + "/pointerlock/pointerlock_basic-manual.html", + {} + ] + ], + "pointerlock/pointerlock_fullscreen-manual.html": [ + [ + "/pointerlock/pointerlock_fullscreen-manual.html", + {} + ] + ], + "pointerlock/pointerlock_indefinite-manual.html": [ + [ + "/pointerlock/pointerlock_indefinite-manual.html", + {} + ] + ], + "pointerlock/pointerlock_leave_Tab-manual.html": [ + [ + "/pointerlock/pointerlock_leave_Tab-manual.html", + {} + ] + ], + "pointerlock/pointerlock_leave_UA-manual.html": [ + [ + "/pointerlock/pointerlock_leave_UA-manual.html", + {} + ] + ], + "pointerlock/pointerlock_remove_target-manual.html": [ + [ + "/pointerlock/pointerlock_remove_target-manual.html", + {} + ] + ], + "pointerlock/pointerlock_remove_target_on_mouseup-manual.html": [ + [ + "/pointerlock/pointerlock_remove_target_on_mouseup-manual.html", + {} + ] + ], + "pointerlock/pointerlock_shadow-manual.html": [ + [ + "/pointerlock/pointerlock_shadow-manual.html", + {} + ] + ], "selection/dir-manual.html": [ [ "/selection/dir-manual.html", @@ -6745,6 +6877,12 @@ {} ] ], + "storage/persist-permission-manual.https.html": [ + [ + "/storage/persist-permission-manual.https.html", + {} + ] + ], "uievents/auxclick/auxclick_event-manual.html": [ [ "/uievents/auxclick/auxclick_event-manual.html", @@ -6805,6 +6943,66 @@ {} ] ], + "vibration/cancel-when-hidden-manual.html": [ + [ + "/vibration/cancel-when-hidden-manual.html", + {} + ] + ], + "vibration/cancel-with-0-manual.html": [ + [ + "/vibration/cancel-with-0-manual.html", + {} + ] + ], + "vibration/cancel-with-array-0-manual.html": [ + [ + "/vibration/cancel-with-array-0-manual.html", + {} + ] + ], + "vibration/cancel-with-empty-array-manual.html": [ + [ + "/vibration/cancel-with-empty-array-manual.html", + {} + ] + ], + "vibration/cancel-with-new-manual.html": [ + [ + "/vibration/cancel-with-new-manual.html", + {} + ] + ], + "vibration/pattern-array-extra-manual.html": [ + [ + "/vibration/pattern-array-extra-manual.html", + {} + ] + ], + "vibration/pattern-array-manual.html": [ + [ + "/vibration/pattern-array-manual.html", + {} + ] + ], + "vibration/pattern-array-with-0-manual.html": [ + [ + "/vibration/pattern-array-with-0-manual.html", + {} + ] + ], + "vibration/simple-array-manual.html": [ + [ + "/vibration/simple-array-manual.html", + {} + ] + ], + "vibration/simple-scalar-manual.html": [ + [ + "/vibration/simple-scalar-manual.html", + {} + ] + ], "webstorage/storage_local-manual.html": [ [ "/webstorage/storage_local-manual.html", @@ -31135,6 +31333,210 @@ {} ] ], + "css/css-grid-1/abspos/positioned-grid-items-001.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-001.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-002.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-002.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-003.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-003.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-004.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-004.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-005.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-005.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-005-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-006.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-006.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-006-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-007.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-007.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-007-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-008.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-008.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-009.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-009.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-009-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-010.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-010.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-009-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-011.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-011.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-011-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-012.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-012.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-012-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-013.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-013.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-013-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-014.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-014.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-014-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-015.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-015.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-015-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-016.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-016.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-016-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-017.html": [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-017.html", + [ + [ + "/css/css-grid-1/abspos/positioned-grid-items-017-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-grid-1/alignment/grid-content-distribution-001.html": [ [ "/css/css-grid-1/alignment/grid-content-distribution-001.html", @@ -31195,6 +31597,246 @@ {} ] ], + "css/css-grid-1/alignment/grid-content-distribution-006.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-006.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-007.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-007.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-008.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-008.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-009.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-009.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-010.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-010.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-011.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-011.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-012.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-012.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-013.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-013.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-014.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-014.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-015.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-015.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-016.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-016.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-017.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-017.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-018.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-018.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-019.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-019.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-020.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-020.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-021.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-021.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-022.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-022.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-023.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-023.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-024.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-024.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-025.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-025.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-001.html": [ [ "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-001.html", @@ -31243,6 +31885,246 @@ {} ] ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-005.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-005.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-006.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-006.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-007.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-007.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-008.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-008.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-009.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-009.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-010.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-010.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-011.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-011.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-012.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-012.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-013.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-013.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-014.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-014.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-015.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-015.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-016.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-016.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-017.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-017.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-018.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-018.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-019.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-019.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-020.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-020.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-021.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-021.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-022.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-022.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-023.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-023.html", + [ + [ + "/css/reference/ref-filled-green-200px-square.html", + "==" + ] + ], + {} + ] + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024.html": [ + [ + "/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024.html", + [ + [ + "/css/reference/ref-filled-green-300px-square.html", + "==" + ] + ], + {} + ] + ], "css/css-grid-1/grid-definition/fr-unit-with-percentage.html": [ [ "/css/css-grid-1/grid-definition/fr-unit-with-percentage.html", @@ -46264,7 +47146,7 @@ "/css/selectors4/focus-within-006.html", [ [ - "/css/selectors4/focus-within-001-ref.html", + "/css/selectors4/focus-within-006-ref.html", "==" ] ], @@ -46295,6 +47177,18 @@ {} ] ], + "css/selectors4/focus-within-010.html": [ + [ + "/css/selectors4/focus-within-010.html", + [ + [ + "/css/selectors4/focus-within-shadow-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/selectors4/focus-within-shadow-001.html": [ [ "/css/selectors4/focus-within-shadow-001.html", @@ -51743,6 +52637,126 @@ {} ] ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-002.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-002.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-003.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-003.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-004.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-004.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-005.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-005.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-006.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-006.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-007.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-007.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-008.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-008.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-009.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-009.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-010.html": [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-010.html", + [ + [ + "/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html", + "==" + ] + ], + {} + ] + ], "html/editing/the-hidden-attribute/hidden-1a.html": [ [ "/html/editing/the-hidden-attribute/hidden-1a.html", @@ -53375,6 +54389,18 @@ {} ] ], + "http/basic-auth-cache-test.html": [ + [ + "/http/basic-auth-cache-test.html", + [ + [ + "/http/basic-auth-cache-test-ref.html", + "==" + ] + ], + {} + ] + ], "infrastructure/reftest-wait.html": [ [ "/infrastructure/reftest-wait.html", @@ -57231,11 +58257,6 @@ {} ] ], - "FileAPI/idlharness-expected.txt": [ - [ - {} - ] - ], "FileAPI/idlharness.idl": [ [ {} @@ -57301,11 +58322,6 @@ {} ] ], - "IndexedDB/interfaces-expected.txt": [ - [ - {} - ] - ], "IndexedDB/interfaces.idl": [ [ {} @@ -57361,12 +58377,57 @@ {} ] ], - "WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt": [ + "WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt": [ [ {} ] ], - "WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt": [ + "WebCryptoAPI/derive_bits_keys/test_hkdf.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https-expected.txt": [ [ {} ] @@ -57406,6 +58467,21 @@ {} ] ], + "WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https-expected.txt": [ + [ + {} + ] + ], "WebCryptoAPI/generateKey/failures.js": [ [ {} @@ -57416,11 +58492,71 @@ {} ] ], + "WebCryptoAPI/generateKey/test_aes-cbc.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_aes-ctr.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_failures.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_failures_AES-CBC.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_failures_AES-CTR.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_failures_AES-GCM.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_failures_AES-KW.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_successes_AES-CBC.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_successes_AES-CTR.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_successes_AES-GCM.https-expected.txt": [ + [ + {} + ] + ], + "WebCryptoAPI/generateKey/test_successes_AES-KW.https-expected.txt": [ + [ + {} + ] + ], "WebCryptoAPI/idlharness-expected.txt": [ [ {} ] ], + "WebCryptoAPI/idlharness.https-expected.txt": [ + [ + {} + ] + ], "WebCryptoAPI/import_export/ec_importKey.js": [ [ {} @@ -57436,6 +58572,11 @@ {} ] ], + "WebCryptoAPI/import_export/test_symmetric_importKey.https-expected.txt": [ + [ + {} + ] + ], "WebCryptoAPI/sign_verify/ecdsa.js": [ [ {} @@ -57476,6 +58617,16 @@ {} ] ], + "WebCryptoAPI/util/worker-report-crypto-subtle-presence.js": [ + [ + {} + ] + ], + "WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https-expected.txt": [ + [ + {} + ] + ], "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.js": [ [ {} @@ -57506,6 +58657,11 @@ {} ] ], + "WebIDL/ecmascript-binding/interface-prototype-object-expected.txt": [ + [ + {} + ] + ], "XMLHttpRequest/README.md": [ [ {} @@ -57571,11 +58727,6 @@ {} ] ], - "XMLHttpRequest/interfaces-expected.txt": [ - [ - {} - ] - ], "XMLHttpRequest/open-url-encoding-expected.txt": [ [ {} @@ -58051,6 +59202,11 @@ {} ] ], + "accelerometer/support-iframe.html": [ + [ + {} + ] + ], "apng/animated-png-timeout-ref.html": [ [ {} @@ -58091,6 +59247,21 @@ {} ] ], + "battery-status/support-iframe-initial.html": [ + [ + {} + ] + ], + "battery-status/support-iframe.html": [ + [ + {} + ] + ], + "battery-status/support-window-open.html": [ + [ + {} + ] + ], "beacon/headers/header-referrer-no-referrer-when-downgrade.https-expected.txt": [ [ {} @@ -58126,6 +59297,11 @@ {} ] ], + "bluetooth/OWNERS": [ + [ + {} + ] + ], "clear-site-data/support/echo-clear-site-data.py": [ [ {} @@ -58221,6 +59397,16 @@ {} ] ], + "common/object-association.js": [ + [ + {} + ] + ], + "common/performance-timeline-utils.js": [ + [ + {} + ] + ], "common/redirect-opt-in.py": [ [ {} @@ -59931,6 +61117,61 @@ {} ] ], + "cors/README.md": [ + [ + {} + ] + ], + "cors/resources/.gitignore": [ + [ + {} + ] + ], + "cors/resources/304.py": [ + [ + {} + ] + ], + "cors/resources/checkandremove.py": [ + [ + {} + ] + ], + "cors/resources/cors-cookie.py": [ + [ + {} + ] + ], + "cors/resources/cors-headers.asis": [ + [ + {} + ] + ], + "cors/resources/cors-makeheader.py": [ + [ + {} + ] + ], + "cors/resources/preflight.py": [ + [ + {} + ] + ], + "cors/resources/remote-xhrer.html": [ + [ + {} + ] + ], + "cors/resources/status.py": [ + [ + {} + ] + ], + "cors/support.js": [ + [ + {} + ] + ], "credential-management/idl.https-expected.txt": [ [ {} @@ -64906,6 +66147,71 @@ {} ] ], + "css/css-grid-1/abspos/positioned-grid-items-001-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-005-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-006-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-007-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-008-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-009-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-011-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-012-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-013-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-014-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-015-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-016-ref.html": [ + [ + {} + ] + ], + "css/css-grid-1/abspos/positioned-grid-items-017-ref.html": [ + [ + {} + ] + ], "css/css-grid-1/grid-definition/support/testing-utils.js": [ [ {} @@ -72306,6 +73612,21 @@ {} ] ], + "css/geometry-1/DOMMatrix-001-expected.txt": [ + [ + {} + ] + ], + "css/geometry-1/DOMPoint-001-expected.txt": [ + [ + {} + ] + ], + "css/geometry-1/DOMQuad-001-expected.txt": [ + [ + {} + ] + ], "css/geometry-1/support/dommatrix-test-util.js": [ [ {} @@ -72371,6 +73692,11 @@ {} ] ], + "css/reference/ref-filled-green-300px-square.html": [ + [ + {} + ] + ], "css/reference/single_square_list_marker.xht": [ [ {} @@ -72386,6 +73712,11 @@ {} ] ], + "css/selectors4/focus-within-006-ref.html": [ + [ + {} + ] + ], "css/selectors4/focus-within-007-ref.html": [ [ {} @@ -73546,11 +74877,6 @@ {} ] ], - "cssom-view/cssom-view/media-query-list-interface-expected.txt": [ - [ - {} - ] - ], "cssom-view/cssom-view/window-interface-expected.txt": [ [ {} @@ -75291,11 +76617,6 @@ {} ] ], - "encoding/idlharness-expected.txt": [ - [ - {} - ] - ], "encoding/iso-2022-jp-decoder-expected.txt": [ [ {} @@ -75681,6 +77002,71 @@ {} ] ], + "eventsource/README.md": [ + [ + {} + ] + ], + "eventsource/eventsource-onmessage-realm-support.htm": [ + [ + {} + ] + ], + "eventsource/resources/accept.event_stream": [ + [ + {} + ] + ], + "eventsource/resources/cache-control.event_stream": [ + [ + {} + ] + ], + "eventsource/resources/cors-cookie.py": [ + [ + {} + ] + ], + "eventsource/resources/cors.py": [ + [ + {} + ] + ], + "eventsource/resources/init.htm": [ + [ + {} + ] + ], + "eventsource/resources/last-event-id.py": [ + [ + {} + ] + ], + "eventsource/resources/message.py": [ + [ + {} + ] + ], + "eventsource/resources/message2.py": [ + [ + {} + ] + ], + "eventsource/resources/reconnect-fail.py": [ + [ + {} + ] + ], + "eventsource/resources/status-error.py": [ + [ + {} + ] + ], + "eventsource/resources/status-reconnect.py": [ + [ + {} + ] + ], "fetch/README.md": [ [ {} @@ -75751,11 +77137,6 @@ {} ] ], - "fetch/api/headers/headers-basic-expected.txt": [ - [ - {} - ] - ], "fetch/api/headers/headers-idl-expected.txt": [ [ {} @@ -76306,12 +77687,27 @@ {} ] ], + "gamepad/OWNERS": [ + [ + {} + ] + ], + "generic-sensor/generic-sensor-tests.js": [ + [ + {} + ] + ], + "geolocation-API/support.js": [ + [ + {} + ] + ], "gyroscope/idlharness.https-expected.txt": [ [ {} ] ], - "hr-time/idlharness-expected.txt": [ + "gyroscope/support-iframe.html": [ [ {} ] @@ -76386,6 +77782,16 @@ {} ] ], + "html-media-capture/capture_reflect-expected.txt": [ + [ + {} + ] + ], + "html-media-capture/idlharness-expected.txt": [ + [ + {} + ] + ], "html-media-capture/support/upload.txt": [ [ {} @@ -77391,6 +78797,11 @@ {} ] ], + "html/browsers/history/the-location-interface/per-global.window.js": [ + [ + {} + ] + ], "html/browsers/history/the-location-interface/reload_document_open_write-1.html": [ [ {} @@ -83111,6 +84522,11 @@ {} ] ], + "html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html": [ + [ + {} + ] + ], "html/editing/focus/.gitkeep": [ [ {} @@ -83281,11 +84697,6 @@ {} ] ], - "html/infrastructure/common-dom-interfaces/collections/domstringlist-interface-expected.txt": [ - [ - {} - ] - ], "html/infrastructure/common-dom-interfaces/collections/domstringlist.idl": [ [ {} @@ -83461,11 +84872,41 @@ {} ] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-dedicatedworker-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-sharedworker-expected.txt": [ + [ + {} + ] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.js": [ [ {} ] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring-expected.txt": [ + [ + {} + ] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/blank.html": [ [ {} @@ -83561,6 +85002,41 @@ {} ] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub-expected.txt": [ + [ + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success-expected.txt": [ + [ + {} + ] + ], "html/infrastructure/terminology/.gitkeep": [ [ {} @@ -86116,6 +87592,11 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/currentscript.js": [ + [ + {} + ] + ], "html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-common.js": [ [ {} @@ -86256,6 +87737,11 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js": [ + [ + {} + ] + ], "html/semantics/scripting-1/the-script-element/resources/cocoa-module.js": [ [ {} @@ -87336,6 +88822,11 @@ {} ] ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm": [ + [ + {} + ] + ], "html/the-xhtml-syntax/parsing-xhtml-fragments/.gitkeep": [ [ {} @@ -87556,6 +89047,26 @@ {} ] ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker-expected.txt": [ + [ + {} + ] + ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https-expected.txt": [ + [ + {} + ] + ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker-expected.txt": [ + [ + {} + ] + ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window-expected.txt": [ + [ + {} + ] + ], "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js": [ [ {} @@ -87761,6 +89272,21 @@ {} ] ], + "http/basic-auth-cache-test-ref.html": [ + [ + {} + ] + ], + "http/content_length.html.headers": [ + [ + {} + ] + ], + "http/resources/securedimage.py": [ + [ + {} + ] + ], "images/anim-gr.gif": [ [ {} @@ -88011,6 +89537,11 @@ {} ] ], + "interfaces/webrtc-pc.idl": [ + [ + {} + ] + ], "longtask-timing/resources/makelongtask.js": [ [ {} @@ -88036,6 +89567,11 @@ {} ] ], + "magnetometer/support-iframe.html": [ + [ + {} + ] + ], "media-capabilities/README.md": [ [ {} @@ -88481,6 +90017,11 @@ {} ] ], + "mediacapture-image/idlharness-expected.txt": [ + [ + {} + ] + ], "mediacapture-record/idlharness-expected.txt": [ [ {} @@ -89281,11 +90822,6 @@ {} ] ], - "navigation-timing/idlharness-expected.txt": [ - [ - {} - ] - ], "navigation-timing/nav2_data_uri.html": [ [ {} @@ -89336,11 +90872,6 @@ {} ] ], - "notifications/interfaces-expected.txt": [ - [ - {} - ] - ], "notifications/resources/icon.png": [ [ {} @@ -89356,6 +90887,11 @@ {} ] ], + "orientation-event/OWNERS": [ + [ + {} + ] + ], "orientation-event/horizontal-surface-manual-expected.txt": [ [ {} @@ -89366,6 +90902,11 @@ {} ] ], + "orientation-sensor/idlharness.https-expected.txt": [ + [ + {} + ] + ], "payment-request/allowpaymentrequest/allowpaymentrequest-attribute-same-origin-bc-containers.https-expected.txt": [ [ {} @@ -89401,11 +90942,6 @@ {} ] ], - "payment-request/interfaces.https-expected.txt": [ - [ - {} - ] - ], "payment-request/payment-request-response-id.html": [ [ {} @@ -89416,21 +90952,11 @@ {} ] ], - "pointerevents/extension/idlharness-expected.txt": [ - [ - {} - ] - ], "pointerevents/extension/pointerevent_coalesced_events_attributes-manual-expected.txt": [ [ {} ] ], - "pointerevents/idlharness-expected.txt": [ - [ - {} - ] - ], "pointerevents/pointerevent_styles.css": [ [ {} @@ -89501,6 +91027,16 @@ {} ] ], + "progress-events/Status.html": [ + [ + {} + ] + ], + "progress-events/tests/submissions/Samsung/resources/no-content-length.py": [ + [ + {} + ] + ], "quirks-mode/historical/list-item-bullet-size-ref.html": [ [ {} @@ -92086,6 +93622,61 @@ {} ] ], + "secure-contexts/basic-popup-and-iframe-tests.https.js": [ + [ + {} + ] + ], + "secure-contexts/postMessage-helper.html": [ + [ + {} + ] + ], + "secure-contexts/postMessage-helper.https.html": [ + [ + {} + ] + ], + "secure-contexts/server-locations.sub.js": [ + [ + {} + ] + ], + "secure-contexts/support/dedicated-worker-script.js": [ + [ + {} + ] + ], + "secure-contexts/support/https-subframe-dedicated.html": [ + [ + {} + ] + ], + "secure-contexts/support/https-subframe-shared.html": [ + [ + {} + ] + ], + "secure-contexts/support/parent-dedicated-worker-script.js": [ + [ + {} + ] + ], + "secure-contexts/support/parent-shared-worker-script.js": [ + [ + {} + ] + ], + "secure-contexts/support/shared-worker-insecure-popup.html": [ + [ + {} + ] + ], + "secure-contexts/support/shared-worker-script.js": [ + [ + {} + ] + ], "selection/addRange.js": [ [ {} @@ -92106,7 +93697,7 @@ {} ] ], - "selection/interfaces-expected.txt": [ + "selection/removeRange-expected.txt": [ [ {} ] @@ -92121,6 +93712,31 @@ {} ] ], + "server-timing/resources/blue.png": [ + [ + {} + ] + ], + "server-timing/resources/blue.png.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/green.png": [ + [ + {} + ] + ], + "server-timing/resources/green.png.sub.headers": [ + [ + {} + ] + ], + "server-timing/test_server_timing.html.sub.headers": [ + [ + {} + ] + ], "service-workers/OWNERS": [ [ {} @@ -92406,6 +94022,11 @@ {} ] ], + "service-workers/service-worker/import-scripts-updated-flag.https-expected.txt": [ + [ + {} + ] + ], "service-workers/service-worker/multi-globals/current/current.https.html": [ [ {} @@ -92796,6 +94417,16 @@ {} ] ], + "service-workers/service-worker/resources/fetch-event-respond-with-argument-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-event-respond-with-argument-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-event-respond-with-stops-propagation-worker.js": [ [ {} @@ -92856,6 +94487,16 @@ {} ] ], + "service-workers/service-worker/resources/fetch-request-html-imports-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-html-imports-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-request-no-freshness-headers-iframe.html": [ [ {} @@ -92891,6 +94532,11 @@ {} ] ], + "service-workers/service-worker/resources/fetch-response-taint-iframe.html": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html": [ [ {} @@ -92956,6 +94602,26 @@ {} ] ], + "service-workers/service-worker/resources/import-scripts-echo.py": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/import-scripts-resource-map-worker.js": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/import-scripts-updated-flag-worker.js": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/import-scripts-version.py": [ + [ + {} + ] + ], "service-workers/service-worker/resources/indexeddb-worker.js": [ [ {} @@ -93301,16 +94967,6 @@ {} ] ], - "service-workers/service-worker/resources/update-max-aged-worker-imported-script.py": [ - [ - {} - ] - ], - "service-workers/service-worker/resources/update-max-aged-worker.py": [ - [ - {} - ] - ], "service-workers/service-worker/resources/update-nocookie-worker.py": [ [ {} @@ -93421,6 +95077,11 @@ {} ] ], + "shadow-dom/slots-fallback-in-document-expected.txt": [ + [ + {} + ] + ], "shadow-dom/untriaged/LICENSE": [ [ {} @@ -93536,21 +95197,11 @@ {} ] ], - "staticrange/idlharness-expected.txt": [ - [ - {} - ] - ], "storage/README.md": [ [ {} ] ], - "storage/interfaces.https-expected.txt": [ - [ - {} - ] - ], "storage/interfaces.idl": [ [ {} @@ -93571,6 +95222,11 @@ {} ] ], + "storage/storage-persisted.js": [ + [ + {} + ] + ], "streams/README.md": [ [ {} @@ -94416,7 +96072,27 @@ {} ] ], - "user-timing/idlharness-expected.txt": [ + "url/README.md": [ + [ + {} + ] + ], + "url/a-element-origin.js": [ + [ + {} + ] + ], + "url/a-element.js": [ + [ + {} + ] + ], + "url/setters_tests.json": [ + [ + {} + ] + ], + "url/urltestdata.json": [ [ {} ] @@ -94511,11 +96187,6 @@ {} ] ], - "web-animations/interfaces/Animation/reverse-expected.txt": [ - [ - {} - ] - ], "web-animations/interfaces/Animation/startTime-expected.txt": [ [ {} @@ -94531,11 +96202,6 @@ {} ] ], - "web-animations/interfaces/AnimationTimeline/idlharness-expected.txt": [ - [ - {} - ] - ], "web-animations/interfaces/Document/getAnimations-expected.txt": [ [ {} @@ -94721,11 +96387,6 @@ {} ] ], - "webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt": [ - [ - {} - ] - ], "webaudio/the-audio-api/the-audiobuffersourcenode-interface/.gitkeep": [ [ {} @@ -94741,11 +96402,6 @@ {} ] ], - "webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt": [ - [ - {} - ] - ], "webaudio/the-audio-api/the-audiolistener-interface/.gitkeep": [ [ {} @@ -94796,11 +96452,6 @@ {} ] ], - "webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt": [ - [ - {} - ] - ], "webaudio/the-audio-api/the-dynamicscompressornode-interface/.gitkeep": [ [ {} @@ -94816,11 +96467,6 @@ {} ] ], - "webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt": [ - [ - {} - ] - ], "webaudio/the-audio-api/the-iirfilternode-interface/test-iirfilternode-expected.txt": [ [ {} @@ -94871,6 +96517,16 @@ {} ] ], + "webauthn/helpers.js": [ + [ + {} + ] + ], + "webauthn/interfaces.idl": [ + [ + {} + ] + ], "webmessaging/MessageEvent-trusted-worker.js": [ [ {} @@ -94901,6 +96557,11 @@ {} ] ], + "webmessaging/messageerror-expected.txt": [ + [ + {} + ] + ], "webmessaging/support/ChildWindowPostMessage.htm": [ [ {} @@ -94926,16 +96587,56 @@ {} ] ], + "webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt": [ + [ + {} + ] + ], + "webrtc/RTCPeerConnection-canTrickleIceCandidates-expected.txt": [ + [ + {} + ] + ], + "webrtc/RTCPeerConnection-constructor-expected.txt": [ + [ + {} + ] + ], "webrtc/RTCPeerConnection-createDataChannel-expected.txt": [ [ {} ] ], + "webrtc/RTCPeerConnection-iceGatheringState-expected.txt": [ + [ + {} + ] + ], + "webrtc/RTCPeerConnection-idl-expected.txt": [ + [ + {} + ] + ], + "webrtc/RTCPeerConnection-setRemoteDescription-expected.txt": [ + [ + {} + ] + ], "webrtc/datachannel-emptystring-expected.txt": [ [ {} ] ], + "webrtc/datachannel-idlharness-expected.txt": [ + [ + {} + ] + ], + "webrtc/getstats-expected.txt": [ + [ + {} + ] + ], "webrtc/no-media-call-expected.txt": [ [ {} @@ -94951,6 +96652,166 @@ {} ] ], + "websockets/README.md": [ + [ + {} + ] + ], + "websockets/constants.js": [ + [ + {} + ] + ], + "websockets/cookies/support/set-cookie.py": [ + [ + {} + ] + ], + "websockets/handlers/echo-cookie_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/echo-query_v13_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/echo-query_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/echo_close_data_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/echo_exit_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/echo_raw_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/echo_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/empty-message_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/handshake_no_protocol_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/handshake_protocol_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/handshake_sleep_2_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/invalid_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/origin_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/protocol_array_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/protocol_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/set-cookie-secure_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/set-cookie_http_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/set-cookie_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/simple_handshake_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/sleep_10_v13_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/stash_responder_wsh.py": [ + [ + {} + ] + ], + "websockets/handlers/wrong_accept_key_wsh.py": [ + [ + {} + ] + ], + "websockets/multi-globals/support/incumbent.sub.html": [ + [ + {} + ] + ], + "websockets/multi-globals/support/relevant.html": [ + [ + {} + ] + ], + "websockets/security/check.py": [ + [ + {} + ] + ], + "websockets/unload-a-document/001-1.html": [ + [ + {} + ] + ], + "websockets/unload-a-document/002-1.html": [ + [ + {} + ] + ], + "websockets/unload-a-document/005-1.html": [ + [ + {} + ] + ], + "websockets/websocket.sub.js": [ + [ + {} + ] + ], "webstorage/OWNERS": [ [ {} @@ -95066,6 +96927,11 @@ {} ] ], + "webusb/OWNERS": [ + [ + {} + ] + ], "webusb/idlharness-expected.txt": [ [ {} @@ -99814,33 +101680,97 @@ } ] ], - "WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html": [ + "WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https.html": [ [ - "/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html", + "/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html": [ + "WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https.html": [ [ - "/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html", + "/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/derive_bits_keys/test_hkdf.html": [ + "WebCryptoAPI/derive_bits_keys/test_hkdf.https.html": [ [ - "/WebCryptoAPI/derive_bits_keys/test_hkdf.html", + "/WebCryptoAPI/derive_bits_keys/test_hkdf.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/derive_bits_keys/test_pbkdf2.html": [ + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https.html": [ [ - "/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html", + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https.html", + { + "timeout": "long" + } + ] + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https.html": [ + [ + "/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https.html", { "timeout": "long" } @@ -99852,9 +101782,9 @@ {} ] ], - "WebCryptoAPI/digest/test_digest.html": [ + "WebCryptoAPI/digest/test_digest.https.html": [ [ - "/WebCryptoAPI/digest/test_digest.html", + "/WebCryptoAPI/digest/test_digest.https.html", { "timeout": "long" } @@ -99884,33 +101814,33 @@ {} ] ], - "WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html": [ + "WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https.html": [ [ - "/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html", + "/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html": [ + "WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https.html": [ [ - "/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html", + "/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html": [ + "WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https.html": [ [ - "/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html", + "/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html": [ + "WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.https.html": [ [ - "/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html", + "/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.https.html", { "timeout": "long" } @@ -100088,193 +102018,185 @@ } ] ], - "WebCryptoAPI/generateKey/test_aes-cbc.html": [ + "WebCryptoAPI/generateKey/test_aes-cbc.https.html": [ [ - "/WebCryptoAPI/generateKey/test_aes-cbc.html", + "/WebCryptoAPI/generateKey/test_aes-cbc.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_aes-ctr.html": [ + "WebCryptoAPI/generateKey/test_aes-ctr.https.html": [ [ - "/WebCryptoAPI/generateKey/test_aes-ctr.html", + "/WebCryptoAPI/generateKey/test_aes-ctr.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures.html": [ + "WebCryptoAPI/generateKey/test_failures.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures.html", + "/WebCryptoAPI/generateKey/test_failures.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_AES-CBC.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_AES-CBC.html", + "/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_AES-CTR.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_AES-CTR.html", + "/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_AES-GCM.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_AES-GCM.html", + "/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_AES-KW.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-KW.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_AES-KW.html", + "/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_ECDH.html": [ + "WebCryptoAPI/generateKey/test_failures_ECDH.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_ECDH.html", + "/WebCryptoAPI/generateKey/test_failures_ECDH.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_ECDSA.html": [ + "WebCryptoAPI/generateKey/test_failures_ECDSA.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_ECDSA.html", + "/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_HMAC.html": [ + "WebCryptoAPI/generateKey/test_failures_HMAC.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_HMAC.html", + "/WebCryptoAPI/generateKey/test_failures_HMAC.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html": [ + "WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html", + "/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_RSA-PSS.html": [ + "WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html", + "/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html": [ + "WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html": [ [ - "/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html", + "/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes.html", + "/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_AES-CBC.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_AES-CBC.html", + "/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_AES-CTR.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_AES-CTR.html", + "/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_AES-GCM.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-KW.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_AES-GCM.html", + "/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_AES-KW.html": [ + "WebCryptoAPI/generateKey/test_successes_ECDH.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_AES-KW.html", + "/WebCryptoAPI/generateKey/test_successes_ECDH.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_ECDH.html": [ + "WebCryptoAPI/generateKey/test_successes_ECDSA.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_ECDH.html", + "/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_ECDSA.html": [ + "WebCryptoAPI/generateKey/test_successes_HMAC.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_ECDSA.html", + "/WebCryptoAPI/generateKey/test_successes_HMAC.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_HMAC.html": [ + "WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_HMAC.html", + "/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html": [ + "WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html", + "/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/generateKey/test_successes_RSA-PSS.html": [ + "WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html": [ [ - "/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html", - { - "timeout": "long" - } - ] - ], - "WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html": [ - [ - "/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html", + "/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html", { "timeout": "long" } @@ -100296,6 +102218,12 @@ {} ] ], + "WebCryptoAPI/idlharness.https.html": [ + [ + "/WebCryptoAPI/idlharness.https.html", + {} + ] + ], "WebCryptoAPI/idlharness.worker.js": [ [ "/WebCryptoAPI/idlharness.worker.html", @@ -100320,21 +102248,33 @@ {} ] ], - "WebCryptoAPI/import_export/test_ec_importKey.html": [ + "WebCryptoAPI/import_export/test_ec_importKey.https.html": [ [ - "/WebCryptoAPI/import_export/test_ec_importKey.html", + "/WebCryptoAPI/import_export/test_ec_importKey.https.html", {} ] ], - "WebCryptoAPI/import_export/test_rsa_importKey.html": [ + "WebCryptoAPI/import_export/test_rsa_importKey.https.html": [ [ - "/WebCryptoAPI/import_export/test_rsa_importKey.html", + "/WebCryptoAPI/import_export/test_rsa_importKey.https.html", {} ] ], - "WebCryptoAPI/import_export/test_symmetric_importKey.html": [ + "WebCryptoAPI/import_export/test_symmetric_importKey.https.html": [ [ - "/WebCryptoAPI/import_export/test_symmetric_importKey.html", + "/WebCryptoAPI/import_export/test_symmetric_importKey.https.html", + {} + ] + ], + "WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html": [ + [ + "/WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html", + {} + ] + ], + "WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html": [ + [ + "/WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html", {} ] ], @@ -100362,41 +102302,41 @@ {} ] ], - "WebCryptoAPI/sign_verify/test_ecdsa.html": [ + "WebCryptoAPI/sign_verify/test_ecdsa.https.html": [ [ - "/WebCryptoAPI/sign_verify/test_ecdsa.html", + "/WebCryptoAPI/sign_verify/test_ecdsa.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/sign_verify/test_hmac.html": [ + "WebCryptoAPI/sign_verify/test_hmac.https.html": [ [ - "/WebCryptoAPI/sign_verify/test_hmac.html", + "/WebCryptoAPI/sign_verify/test_hmac.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/sign_verify/test_rsa_pkcs.html": [ + "WebCryptoAPI/sign_verify/test_rsa_pkcs.https.html": [ [ - "/WebCryptoAPI/sign_verify/test_rsa_pkcs.html", + "/WebCryptoAPI/sign_verify/test_rsa_pkcs.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/sign_verify/test_rsa_pss.html": [ + "WebCryptoAPI/sign_verify/test_rsa_pss.https.html": [ [ - "/WebCryptoAPI/sign_verify/test_rsa_pss.html", + "/WebCryptoAPI/sign_verify/test_rsa_pss.https.html", { "timeout": "long" } ] ], - "WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html": [ + "WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https.html": [ [ - "/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html", + "/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https.html", { "timeout": "long" } @@ -100464,6 +102404,12 @@ {} ] ], + "WebIDL/ecmascript-binding/legacy-callback-interface-object.html": [ + [ + "/WebIDL/ecmascript-binding/legacy-callback-interface-object.html", + {} + ] + ], "XMLHttpRequest/FormData-append.html": [ [ "/XMLHttpRequest/FormData-append.html", @@ -101812,6 +103758,18 @@ {} ] ], + "accelerometer/Accelerometer.https.html": [ + [ + "/accelerometer/Accelerometer.https.html", + {} + ] + ], + "accelerometer/Accelerometer_insecure_context.html": [ + [ + "/accelerometer/Accelerometer_insecure_context.html", + {} + ] + ], "accelerometer/idlharness.https.html": [ [ "/accelerometer/idlharness.https.html", @@ -101842,6 +103800,30 @@ {} ] ], + "battery-status/battery-interface-idlharness.html": [ + [ + "/battery-status/battery-interface-idlharness.html", + {} + ] + ], + "battery-status/battery-promise-iframe.html": [ + [ + "/battery-status/battery-promise-iframe.html", + {} + ] + ], + "battery-status/battery-promise-window.html": [ + [ + "/battery-status/battery-promise-window.html", + {} + ] + ], + "battery-status/battery-promise.html": [ + [ + "/battery-status/battery-promise.html", + {} + ] + ], "beacon/headers/header-referrer-no-referrer-when-downgrade.https.html": [ [ "/beacon/headers/header-referrer-no-referrer-when-downgrade.https.html", @@ -103758,6 +105740,122 @@ {} ] ], + "cors/304.htm": [ + [ + "/cors/304.htm", + {} + ] + ], + "cors/allow-headers.htm": [ + [ + "/cors/allow-headers.htm", + {} + ] + ], + "cors/basic.htm": [ + [ + "/cors/basic.htm", + {} + ] + ], + "cors/credentials-flag.htm": [ + [ + "/cors/credentials-flag.htm", + {} + ] + ], + "cors/late-upload-events.htm": [ + [ + "/cors/late-upload-events.htm", + {} + ] + ], + "cors/origin.htm": [ + [ + "/cors/origin.htm", + {} + ] + ], + "cors/preflight-cache.htm": [ + [ + "/cors/preflight-cache.htm", + {} + ] + ], + "cors/preflight-failure.htm": [ + [ + "/cors/preflight-failure.htm", + {} + ] + ], + "cors/redirect-origin.htm": [ + [ + "/cors/redirect-origin.htm", + {} + ] + ], + "cors/redirect-preflight-2.htm": [ + [ + "/cors/redirect-preflight-2.htm", + {} + ] + ], + "cors/redirect-preflight.htm": [ + [ + "/cors/redirect-preflight.htm", + {} + ] + ], + "cors/redirect-userinfo.htm": [ + [ + "/cors/redirect-userinfo.htm", + {} + ] + ], + "cors/remote-origin.htm": [ + [ + "/cors/remote-origin.htm", + {} + ] + ], + "cors/request-headers.htm": [ + [ + "/cors/request-headers.htm", + {} + ] + ], + "cors/response-headers.htm": [ + [ + "/cors/response-headers.htm", + {} + ] + ], + "cors/simple-requests.htm": [ + [ + "/cors/simple-requests.htm", + {} + ] + ], + "cors/status-async.htm": [ + [ + "/cors/status-async.htm", + { + "timeout": "long" + } + ] + ], + "cors/status-preflight.htm": [ + [ + "/cors/status-preflight.htm", + {} + ] + ], + "cors/status.htm": [ + [ + "/cors/status.htm", + {} + ] + ], "credential-management/idl.https.html": [ [ "/credential-management/idl.https.html", @@ -105324,6 +107422,12 @@ {} ] ], + "css/geometry-1/DOMMatrix-css-string.worker.js": [ + [ + "/css/geometry-1/DOMMatrix-css-string.worker.html", + {} + ] + ], "css/geometry-1/DOMPoint-001.html": [ [ "/css/geometry-1/DOMPoint-001.html", @@ -105354,6 +107458,24 @@ {} ] ], + "css/geometry-1/WebKitCSSMatrix.html": [ + [ + "/css/geometry-1/WebKitCSSMatrix.html", + {} + ] + ], + "css/geometry-1/WebKitCSSMatrix.worker.js": [ + [ + "/css/geometry-1/WebKitCSSMatrix.worker.html", + {} + ] + ], + "css/geometry-1/historical.html": [ + [ + "/css/geometry-1/historical.html", + {} + ] + ], "css/selectors4/focus-display-none-001.html": [ [ "/css/selectors4/focus-display-none-001.html", @@ -105714,6 +107836,12 @@ {} ] ], + "cssom/getComputedStyle-pseudo.html": [ + [ + "/cssom/getComputedStyle-pseudo.html", + {} + ] + ], "cssom/historical.html": [ [ "/cssom/historical.html", @@ -105852,6 +107980,12 @@ {} ] ], + "cssom/variable-names.html": [ + [ + "/cssom/variable-names.html", + {} + ] + ], "custom-elements/CustomElementRegistry.html": [ [ "/custom-elements/CustomElementRegistry.html", @@ -105900,6 +108034,12 @@ {} ] ], + "custom-elements/custom-element-registry/per-global.html": [ + [ + "/custom-elements/custom-element-registry/per-global.html", + {} + ] + ], "custom-elements/disconnected-callbacks.html": [ [ "/custom-elements/disconnected-callbacks.html", @@ -108058,6 +110198,12 @@ {} ] ], + "editing/other/extra-text-nodes.html": [ + [ + "/editing/other/extra-text-nodes.html", + {} + ] + ], "editing/other/restoration.html": [ [ "/editing/other/restoration.html", @@ -109062,6 +111208,372 @@ {} ] ], + "eventsource/dedicated-worker/eventsource-close.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-close.htm", + {} + ] + ], + "eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm", + { + "timeout": "long" + } + ] + ], + "eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm", + {} + ] + ], + "eventsource/dedicated-worker/eventsource-eventtarget.worker.js": [ + [ + "/eventsource/dedicated-worker/eventsource-eventtarget.worker.html", + {} + ] + ], + "eventsource/dedicated-worker/eventsource-onmesage.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-onmesage.htm", + {} + ] + ], + "eventsource/dedicated-worker/eventsource-onopen.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-onopen.htm", + {} + ] + ], + "eventsource/dedicated-worker/eventsource-prototype.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-prototype.htm", + {} + ] + ], + "eventsource/dedicated-worker/eventsource-url.htm": [ + [ + "/eventsource/dedicated-worker/eventsource-url.htm", + {} + ] + ], + "eventsource/event-data.html": [ + [ + "/eventsource/event-data.html", + {} + ] + ], + "eventsource/eventsource-close.htm": [ + [ + "/eventsource/eventsource-close.htm", + {} + ] + ], + "eventsource/eventsource-constructor-document-domain.htm": [ + [ + "/eventsource/eventsource-constructor-document-domain.htm", + {} + ] + ], + "eventsource/eventsource-constructor-non-same-origin.htm": [ + [ + "/eventsource/eventsource-constructor-non-same-origin.htm", + { + "timeout": "long" + } + ] + ], + "eventsource/eventsource-constructor-stringify.htm": [ + [ + "/eventsource/eventsource-constructor-stringify.htm", + {} + ] + ], + "eventsource/eventsource-constructor-url-bogus.htm": [ + [ + "/eventsource/eventsource-constructor-url-bogus.htm", + {} + ] + ], + "eventsource/eventsource-constructor-url-multi-window.htm": [ + [ + "/eventsource/eventsource-constructor-url-multi-window.htm", + {} + ] + ], + "eventsource/eventsource-cross-origin.htm": [ + [ + "/eventsource/eventsource-cross-origin.htm", + {} + ] + ], + "eventsource/eventsource-eventtarget.htm": [ + [ + "/eventsource/eventsource-eventtarget.htm", + {} + ] + ], + "eventsource/eventsource-onmessage-realm.htm": [ + [ + "/eventsource/eventsource-onmessage-realm.htm", + {} + ] + ], + "eventsource/eventsource-onmessage-trusted.htm": [ + [ + "/eventsource/eventsource-onmessage-trusted.htm", + {} + ] + ], + "eventsource/eventsource-onmessage.htm": [ + [ + "/eventsource/eventsource-onmessage.htm", + {} + ] + ], + "eventsource/eventsource-onopen.htm": [ + [ + "/eventsource/eventsource-onopen.htm", + {} + ] + ], + "eventsource/eventsource-prototype.htm": [ + [ + "/eventsource/eventsource-prototype.htm", + {} + ] + ], + "eventsource/eventsource-reconnect.htm": [ + [ + "/eventsource/eventsource-reconnect.htm", + {} + ] + ], + "eventsource/eventsource-request-cancellation.htm": [ + [ + "/eventsource/eventsource-request-cancellation.htm", + {} + ] + ], + "eventsource/eventsource-url.htm": [ + [ + "/eventsource/eventsource-url.htm", + {} + ] + ], + "eventsource/format-bom-2.htm": [ + [ + "/eventsource/format-bom-2.htm", + {} + ] + ], + "eventsource/format-bom.htm": [ + [ + "/eventsource/format-bom.htm", + {} + ] + ], + "eventsource/format-comments.htm": [ + [ + "/eventsource/format-comments.htm", + {} + ] + ], + "eventsource/format-data-before-final-empty-line.htm": [ + [ + "/eventsource/format-data-before-final-empty-line.htm", + {} + ] + ], + "eventsource/format-field-data.htm": [ + [ + "/eventsource/format-field-data.htm", + {} + ] + ], + "eventsource/format-field-event-empty.htm": [ + [ + "/eventsource/format-field-event-empty.htm", + {} + ] + ], + "eventsource/format-field-event.htm": [ + [ + "/eventsource/format-field-event.htm", + {} + ] + ], + "eventsource/format-field-id-2.htm": [ + [ + "/eventsource/format-field-id-2.htm", + {} + ] + ], + "eventsource/format-field-id.htm": [ + [ + "/eventsource/format-field-id.htm", + {} + ] + ], + "eventsource/format-field-parsing.htm": [ + [ + "/eventsource/format-field-parsing.htm", + {} + ] + ], + "eventsource/format-field-retry-bogus.htm": [ + [ + "/eventsource/format-field-retry-bogus.htm", + {} + ] + ], + "eventsource/format-field-retry-empty.htm": [ + [ + "/eventsource/format-field-retry-empty.htm", + {} + ] + ], + "eventsource/format-field-retry.htm": [ + [ + "/eventsource/format-field-retry.htm", + {} + ] + ], + "eventsource/format-field-unknown.htm": [ + [ + "/eventsource/format-field-unknown.htm", + {} + ] + ], + "eventsource/format-leading-space.htm": [ + [ + "/eventsource/format-leading-space.htm", + {} + ] + ], + "eventsource/format-mime-bogus.htm": [ + [ + "/eventsource/format-mime-bogus.htm", + {} + ] + ], + "eventsource/format-mime-trailing-semicolon.htm": [ + [ + "/eventsource/format-mime-trailing-semicolon.htm", + {} + ] + ], + "eventsource/format-mime-valid-bogus.htm": [ + [ + "/eventsource/format-mime-valid-bogus.htm", + {} + ] + ], + "eventsource/format-newlines.htm": [ + [ + "/eventsource/format-newlines.htm", + {} + ] + ], + "eventsource/format-null-character.html": [ + [ + "/eventsource/format-null-character.html", + {} + ] + ], + "eventsource/format-utf-8.htm": [ + [ + "/eventsource/format-utf-8.htm", + {} + ] + ], + "eventsource/interfaces.html": [ + [ + "/eventsource/interfaces.html", + {} + ] + ], + "eventsource/request-accept.htm": [ + [ + "/eventsource/request-accept.htm", + {} + ] + ], + "eventsource/request-cache-control.htm": [ + [ + "/eventsource/request-cache-control.htm", + {} + ] + ], + "eventsource/request-credentials.htm": [ + [ + "/eventsource/request-credentials.htm", + {} + ] + ], + "eventsource/request-redirect.htm": [ + [ + "/eventsource/request-redirect.htm", + {} + ] + ], + "eventsource/request-status-error.htm": [ + [ + "/eventsource/request-status-error.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-close.htm": [ + [ + "/eventsource/shared-worker/eventsource-close.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-constructor-non-same-origin.htm": [ + [ + "/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm", + { + "timeout": "long" + } + ] + ], + "eventsource/shared-worker/eventsource-constructor-url-bogus.htm": [ + [ + "/eventsource/shared-worker/eventsource-constructor-url-bogus.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-eventtarget.htm": [ + [ + "/eventsource/shared-worker/eventsource-eventtarget.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-onmesage.htm": [ + [ + "/eventsource/shared-worker/eventsource-onmesage.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-onopen.htm": [ + [ + "/eventsource/shared-worker/eventsource-onopen.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-prototype.htm": [ + [ + "/eventsource/shared-worker/eventsource-prototype.htm", + {} + ] + ], + "eventsource/shared-worker/eventsource-url.htm": [ + [ + "/eventsource/shared-worker/eventsource-url.htm", + {} + ] + ], "fetch/api/basic/accept-header.any.js": [ [ "/fetch/api/basic/accept-header.any.html", @@ -110066,6 +112578,78 @@ {} ] ], + "generic-sensor/idlharness.html": [ + [ + "/generic-sensor/idlharness.html", + {} + ] + ], + "geolocation-API/PositionOptions.https.html": [ + [ + "/geolocation-API/PositionOptions.https.html", + {} + ] + ], + "geolocation-API/clearWatch_TypeError.html": [ + [ + "/geolocation-API/clearWatch_TypeError.html", + {} + ] + ], + "geolocation-API/getCurrentPosition_IDL.https.html": [ + [ + "/geolocation-API/getCurrentPosition_IDL.https.html", + {} + ] + ], + "geolocation-API/getCurrentPosition_TypeError.html": [ + [ + "/geolocation-API/getCurrentPosition_TypeError.html", + {} + ] + ], + "geolocation-API/getCurrentPosition_permission_allow.https.html": [ + [ + "/geolocation-API/getCurrentPosition_permission_allow.https.html", + {} + ] + ], + "geolocation-API/getCurrentPosition_permission_deny.https.html": [ + [ + "/geolocation-API/getCurrentPosition_permission_deny.https.html", + {} + ] + ], + "geolocation-API/interfaces.html": [ + [ + "/geolocation-API/interfaces.html", + {} + ] + ], + "geolocation-API/watchPosition_TypeError.html": [ + [ + "/geolocation-API/watchPosition_TypeError.html", + {} + ] + ], + "geolocation-API/watchPosition_permission_deny.https.html": [ + [ + "/geolocation-API/watchPosition_permission_deny.https.html", + {} + ] + ], + "gyroscope/Gyroscope.https.html": [ + [ + "/gyroscope/Gyroscope.https.html", + {} + ] + ], + "gyroscope/Gyroscope_insecure_context.html": [ + [ + "/gyroscope/Gyroscope_insecure_context.html", + {} + ] + ], "gyroscope/idlharness.https.html": [ [ "/gyroscope/idlharness.https.html", @@ -115374,6 +117958,12 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/currentScript-null.html": [ + [ + "/html/semantics/scripting-1/the-script-element/module/currentScript-null.html", + {} + ] + ], "html/semantics/scripting-1/the-script-element/module/errorhandling.html": [ [ "/html/semantics/scripting-1/the-script-element/module/errorhandling.html", @@ -117280,10 +119870,84 @@ {} ] ], - "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm": [ + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm": [ [ - "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm", - {} + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm", + { + "timeout": "long" + } + ] + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm": [ + [ + "/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm", + { + "timeout": "long" + } ] ], "html/webappapis/animation-frames/callback-exception.html": [ @@ -118022,6 +120686,12 @@ {} ] ], + "http/content_length.html": [ + [ + "/http/content_length.html", + {} + ] + ], "infrastructure/failing-test.html": [ [ "/infrastructure/failing-test.html", @@ -118094,6 +120764,18 @@ {} ] ], + "magnetometer/Magnetometer.https.html": [ + [ + "/magnetometer/Magnetometer.https.html", + {} + ] + ], + "magnetometer/Magnetometer_insecure_context.html": [ + [ + "/magnetometer/Magnetometer_insecure_context.html", + {} + ] + ], "magnetometer/idlharness.https.html": [ [ "/magnetometer/idlharness.https.html", @@ -118478,6 +121160,12 @@ {} ] ], + "mediacapture-image/idlharness.html": [ + [ + "/mediacapture-image/idlharness.html", + {} + ] + ], "mediacapture-record/BlobEvent-constructor.html": [ [ "/mediacapture-record/BlobEvent-constructor.html", @@ -119912,6 +122600,12 @@ {} ] ], + "mixed-content/imageset.https.sub.html": [ + [ + "/mixed-content/imageset.https.sub.html", + {} + ] + ], "mixed-content/optionally-blockable/http-csp/cross-origin-http/audio-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html": [ [ "/mixed-content/optionally-blockable/http-csp/cross-origin-http/audio-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html", @@ -120644,6 +123338,12 @@ {} ] ], + "payment-request/payment-request-constructor.https.html": [ + [ + "/payment-request/payment-request-constructor.https.html", + {} + ] + ], "payment-request/payment-request-id.https.html": [ [ "/payment-request/payment-request-id.https.html", @@ -120656,6 +123356,12 @@ {} ] ], + "payment-request/payment-request-show-method.https.html": [ + [ + "/payment-request/payment-request-show-method.https.html", + {} + ] + ], "pointerevents/extension/idlharness.html": [ [ "/pointerevents/extension/idlharness.html", @@ -120698,6 +123404,18 @@ {} ] ], + "pointerlock/constructor.html": [ + [ + "/pointerlock/constructor.html", + {} + ] + ], + "pointerlock/idlharness.html": [ + [ + "/pointerlock/idlharness.html", + {} + ] + ], "preload/avoid-delaying-onload-link-preload.html": [ [ "/preload/avoid-delaying-onload-link-preload.html", @@ -120782,6 +123500,30 @@ {} ] ], + "progress-events/constructor.html": [ + [ + "/progress-events/constructor.html", + {} + ] + ], + "progress-events/interface.html": [ + [ + "/progress-events/interface.html", + {} + ] + ], + "progress-events/tests/submissions/Samsung/firing-events-http-content-length.html": [ + [ + "/progress-events/tests/submissions/Samsung/firing-events-http-content-length.html", + {} + ] + ], + "progress-events/tests/submissions/Samsung/firing-events-http-no-content-length.html": [ + [ + "/progress-events/tests/submissions/Samsung/firing-events-http-no-content-length.html", + {} + ] + ], "quirks-mode/blocks-ignore-line-height.html": [ [ "/quirks-mode/blocks-ignore-line-height.html", @@ -128890,6 +131632,54 @@ {} ] ], + "secure-contexts/basic-dedicated-worker.html": [ + [ + "/secure-contexts/basic-dedicated-worker.html", + {} + ] + ], + "secure-contexts/basic-dedicated-worker.https.html": [ + [ + "/secure-contexts/basic-dedicated-worker.https.html", + {} + ] + ], + "secure-contexts/basic-popup-and-iframe-tests.html": [ + [ + "/secure-contexts/basic-popup-and-iframe-tests.html", + {} + ] + ], + "secure-contexts/basic-popup-and-iframe-tests.https.html": [ + [ + "/secure-contexts/basic-popup-and-iframe-tests.https.html", + {} + ] + ], + "secure-contexts/basic-shared-worker.html": [ + [ + "/secure-contexts/basic-shared-worker.html", + {} + ] + ], + "secure-contexts/basic-shared-worker.https.html": [ + [ + "/secure-contexts/basic-shared-worker.https.html", + {} + ] + ], + "secure-contexts/shared-worker-insecure-first.https.html": [ + [ + "/secure-contexts/shared-worker-insecure-first.https.html", + {} + ] + ], + "secure-contexts/shared-worker-secure-first.https.html": [ + [ + "/secure-contexts/shared-worker-secure-first.https.html", + {} + ] + ], "selection/Document-open.html": [ [ "/selection/Document-open.html", @@ -129140,6 +131930,12 @@ {} ] ], + "server-timing/test_server_timing.html": [ + [ + "/server-timing/test_server_timing.html", + {} + ] + ], "service-workers/cache-storage/common.https.html": [ [ "/service-workers/cache-storage/common.https.html", @@ -129632,6 +132428,12 @@ } ] ], + "service-workers/service-worker/fetch-event-respond-with-argument.https.html": [ + [ + "/service-workers/service-worker/fetch-event-respond-with-argument.https.html", + {} + ] + ], "service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html": [ [ "/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html", @@ -129704,6 +132506,12 @@ {} ] ], + "service-workers/service-worker/fetch-request-html-imports.https.html": [ + [ + "/service-workers/service-worker/fetch-request-html-imports.https.html", + {} + ] + ], "service-workers/service-worker/fetch-request-no-freshness-headers.https.html": [ [ "/service-workers/service-worker/fetch-request-no-freshness-headers.https.html", @@ -129730,6 +132538,14 @@ {} ] ], + "service-workers/service-worker/fetch-response-taint.https.html": [ + [ + "/service-workers/service-worker/fetch-response-taint.https.html", + { + "timeout": "long" + } + ] + ], "service-workers/service-worker/fetch-response-xhr.https.html": [ [ "/service-workers/service-worker/fetch-response-xhr.https.html", @@ -129780,6 +132596,18 @@ {} ] ], + "service-workers/service-worker/import-scripts-resource-map.https.html": [ + [ + "/service-workers/service-worker/import-scripts-resource-map.https.html", + {} + ] + ], + "service-workers/service-worker/import-scripts-updated-flag.https.html": [ + [ + "/service-workers/service-worker/import-scripts-updated-flag.https.html", + {} + ] + ], "service-workers/service-worker/indexeddb.https.html": [ [ "/service-workers/service-worker/indexeddb.https.html", @@ -130010,12 +132838,6 @@ {} ] ], - "service-workers/service-worker/registration-useCache.https.html": [ - [ - "/service-workers/service-worker/registration-useCache.https.html", - {} - ] - ], "service-workers/service-worker/registration.https.html": [ [ "/service-workers/service-worker/registration.https.html", @@ -130718,6 +133540,18 @@ {} ] ], + "storage/persisted-worker.https.html": [ + [ + "/storage/persisted-worker.https.html", + {} + ] + ], + "storage/persisted.https.html": [ + [ + "/storage/persisted.https.html", + {} + ] + ], "storage/storagemanager-estimate.https.html": [ [ "/storage/storagemanager-estimate.https.html", @@ -131818,6 +134652,142 @@ {} ] ], + "url/a-element-origin-xhtml.xhtml": [ + [ + "/url/a-element-origin-xhtml.xhtml", + {} + ] + ], + "url/a-element-origin.html": [ + [ + "/url/a-element-origin.html", + {} + ] + ], + "url/a-element-xhtml.xhtml": [ + [ + "/url/a-element-xhtml.xhtml", + {} + ] + ], + "url/a-element.html": [ + [ + "/url/a-element.html", + {} + ] + ], + "url/failure.html": [ + [ + "/url/failure.html", + {} + ] + ], + "url/historical.any.js": [ + [ + "/url/historical.any.html", + {} + ], + [ + "/url/historical.any.worker.html", + {} + ] + ], + "url/interfaces.html": [ + [ + "/url/interfaces.html", + {} + ] + ], + "url/url-constructor.html": [ + [ + "/url/url-constructor.html", + {} + ] + ], + "url/url-origin.html": [ + [ + "/url/url-origin.html", + {} + ] + ], + "url/url-setters.html": [ + [ + "/url/url-setters.html", + {} + ] + ], + "url/url-tojson.html": [ + [ + "/url/url-tojson.html", + {} + ] + ], + "url/urlencoded-parser.html": [ + [ + "/url/urlencoded-parser.html", + {} + ] + ], + "url/urlsearchparams-append.html": [ + [ + "/url/urlsearchparams-append.html", + {} + ] + ], + "url/urlsearchparams-constructor.html": [ + [ + "/url/urlsearchparams-constructor.html", + {} + ] + ], + "url/urlsearchparams-delete.html": [ + [ + "/url/urlsearchparams-delete.html", + {} + ] + ], + "url/urlsearchparams-foreach.html": [ + [ + "/url/urlsearchparams-foreach.html", + {} + ] + ], + "url/urlsearchparams-get.html": [ + [ + "/url/urlsearchparams-get.html", + {} + ] + ], + "url/urlsearchparams-getall.html": [ + [ + "/url/urlsearchparams-getall.html", + {} + ] + ], + "url/urlsearchparams-has.html": [ + [ + "/url/urlsearchparams-has.html", + {} + ] + ], + "url/urlsearchparams-set.html": [ + [ + "/url/urlsearchparams-set.html", + {} + ] + ], + "url/urlsearchparams-sort.html": [ + [ + "/url/urlsearchparams-sort.html", + {} + ] + ], + "url/urlsearchparams-stringifier.html": [ + [ + "/url/urlsearchparams-stringifier.html", + {} + ] + ], "user-timing/clear_all_marks.any.js": [ [ "/user-timing/clear_all_marks.any.html", @@ -131966,6 +134936,30 @@ {} ] ], + "vibration/api-is-present.html": [ + [ + "/vibration/api-is-present.html", + {} + ] + ], + "vibration/idl.html": [ + [ + "/vibration/idl.html", + {} + ] + ], + "vibration/invalid-values.html": [ + [ + "/vibration/invalid-values.html", + {} + ] + ], + "vibration/silent-ignore.html": [ + [ + "/vibration/silent-ignore.html", + {} + ] + ], "web-animations/animation-model/animation-types/addition-per-property.html": [ [ "/web-animations/animation-model/animation-types/addition-per-property.html", @@ -132134,12 +135128,6 @@ {} ] ], - "web-animations/interfaces/Animation/reverse.html": [ - [ - "/web-animations/interfaces/Animation/reverse.html", - {} - ] - ], "web-animations/interfaces/Animation/startTime.html": [ [ "/web-animations/interfaces/Animation/startTime.html", @@ -132356,6 +135344,12 @@ {} ] ], + "web-animations/timing-model/animations/reversing-an-animation.html": [ + [ + "/web-animations/timing-model/animations/reversing-an-animation.html", + {} + ] + ], "web-animations/timing-model/animations/set-the-animation-start-time.html": [ [ "/web-animations/timing-model/animations/set-the-animation-start-time.html", @@ -132506,6 +135500,30 @@ {} ] ], + "webauthn/interfaces.https.html": [ + [ + "/webauthn/interfaces.https.html", + {} + ] + ], + "webauthn/makecredential-badargs-accountinformation.https.html": [ + [ + "/webauthn/makecredential-badargs-accountinformation.https.html", + {} + ] + ], + "webauthn/makecredential-badargs-attestationchallenge.https.html": [ + [ + "/webauthn/makecredential-badargs-attestationchallenge.https.html", + {} + ] + ], + "webauthn/makecredential-badargs-cryptoparameters.https.html": [ + [ + "/webauthn/makecredential-badargs-cryptoparameters.https.html", + {} + ] + ], "webmessaging/Channel_postMessage_DataCloneErr.htm": [ [ "/webmessaging/Channel_postMessage_DataCloneErr.htm", @@ -133148,6 +136166,12 @@ {} ] ], + "webrtc/interfaces.html": [ + [ + "/webrtc/interfaces.html", + {} + ] + ], "webrtc/no-media-call.html": [ [ "/webrtc/no-media-call.html", @@ -133166,6 +136190,1722 @@ {} ] ], + "websockets/Close-1000-reason.htm": [ + [ + "/websockets/Close-1000-reason.htm", + {} + ] + ], + "websockets/Close-1000.htm": [ + [ + "/websockets/Close-1000.htm", + {} + ] + ], + "websockets/Close-Reason-124Bytes.htm": [ + [ + "/websockets/Close-Reason-124Bytes.htm", + {} + ] + ], + "websockets/Close-reason-unpaired-surrogates.htm": [ + [ + "/websockets/Close-reason-unpaired-surrogates.htm", + {} + ] + ], + "websockets/Close-undefined.htm": [ + [ + "/websockets/Close-undefined.htm", + {} + ] + ], + "websockets/Create-Secure-extensions-empty.htm": [ + [ + "/websockets/Create-Secure-extensions-empty.htm", + {} + ] + ], + "websockets/Create-Secure-url-with-space.htm": [ + [ + "/websockets/Create-Secure-url-with-space.htm", + {} + ] + ], + "websockets/Create-Secure-valid-url-array-protocols.htm": [ + [ + "/websockets/Create-Secure-valid-url-array-protocols.htm", + {} + ] + ], + "websockets/Create-Secure-valid-url-binaryType-blob.htm": [ + [ + "/websockets/Create-Secure-valid-url-binaryType-blob.htm", + {} + ] + ], + "websockets/Create-Secure-valid-url-protocol-setCorrectly.htm": [ + [ + "/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm", + {} + ] + ], + "websockets/Create-Secure-valid-url-protocol-string.htm": [ + [ + "/websockets/Create-Secure-valid-url-protocol-string.htm", + {} + ] + ], + "websockets/Create-Secure-valid-url.htm": [ + [ + "/websockets/Create-Secure-valid-url.htm", + {} + ] + ], + "websockets/Create-Secure-verify-url-set-non-default-port.htm": [ + [ + "/websockets/Create-Secure-verify-url-set-non-default-port.htm", + {} + ] + ], + "websockets/Create-asciiSep-protocol-string.htm": [ + [ + "/websockets/Create-asciiSep-protocol-string.htm", + {} + ] + ], + "websockets/Create-blocked-port.htm": [ + [ + "/websockets/Create-blocked-port.htm", + {} + ] + ], + "websockets/Create-invalid-urls.htm": [ + [ + "/websockets/Create-invalid-urls.htm", + {} + ] + ], + "websockets/Create-non-absolute-url.htm": [ + [ + "/websockets/Create-non-absolute-url.htm", + {} + ] + ], + "websockets/Create-nonAscii-protocol-string.htm": [ + [ + "/websockets/Create-nonAscii-protocol-string.htm", + {} + ] + ], + "websockets/Create-protocol-with-space.htm": [ + [ + "/websockets/Create-protocol-with-space.htm", + {} + ] + ], + "websockets/Create-protocols-repeated-case-insensitive.htm": [ + [ + "/websockets/Create-protocols-repeated-case-insensitive.htm", + {} + ] + ], + "websockets/Create-protocols-repeated.htm": [ + [ + "/websockets/Create-protocols-repeated.htm", + {} + ] + ], + "websockets/Create-valid-url-array-protocols.htm": [ + [ + "/websockets/Create-valid-url-array-protocols.htm", + {} + ] + ], + "websockets/Create-valid-url-protocol-empty.htm": [ + [ + "/websockets/Create-valid-url-protocol-empty.htm", + {} + ] + ], + "websockets/Create-valid-url-protocol.htm": [ + [ + "/websockets/Create-valid-url-protocol.htm", + {} + ] + ], + "websockets/Create-valid-url.htm": [ + [ + "/websockets/Create-valid-url.htm", + {} + ] + ], + "websockets/Create-verify-url-set-non-default-port.htm": [ + [ + "/websockets/Create-verify-url-set-non-default-port.htm", + {} + ] + ], + "websockets/Create-wrong-scheme.htm": [ + [ + "/websockets/Create-wrong-scheme.htm", + {} + ] + ], + "websockets/Secure-Close-1000-reason.htm": [ + [ + "/websockets/Secure-Close-1000-reason.htm", + {} + ] + ], + "websockets/Secure-Close-1000-verify-code.htm": [ + [ + "/websockets/Secure-Close-1000-verify-code.htm", + {} + ] + ], + "websockets/Secure-Close-1000.htm": [ + [ + "/websockets/Secure-Close-1000.htm", + {} + ] + ], + "websockets/Secure-Close-1005-verify-code.htm": [ + [ + "/websockets/Secure-Close-1005-verify-code.htm", + {} + ] + ], + "websockets/Secure-Close-1005.htm": [ + [ + "/websockets/Secure-Close-1005.htm", + {} + ] + ], + "websockets/Secure-Close-2999-reason.htm": [ + [ + "/websockets/Secure-Close-2999-reason.htm", + {} + ] + ], + "websockets/Secure-Close-3000-reason.htm": [ + [ + "/websockets/Secure-Close-3000-reason.htm", + {} + ] + ], + "websockets/Secure-Close-3000-verify-code.htm": [ + [ + "/websockets/Secure-Close-3000-verify-code.htm", + {} + ] + ], + "websockets/Secure-Close-4999-reason.htm": [ + [ + "/websockets/Secure-Close-4999-reason.htm", + {} + ] + ], + "websockets/Secure-Close-Reason-124Bytes.htm": [ + [ + "/websockets/Secure-Close-Reason-124Bytes.htm", + {} + ] + ], + "websockets/Secure-Close-Reason-Unpaired-surrogates.htm": [ + [ + "/websockets/Secure-Close-Reason-Unpaired-surrogates.htm", + {} + ] + ], + "websockets/Secure-Close-onlyReason.htm": [ + [ + "/websockets/Secure-Close-onlyReason.htm", + {} + ] + ], + "websockets/Secure-Close-readyState-Closed.htm": [ + [ + "/websockets/Secure-Close-readyState-Closed.htm", + {} + ] + ], + "websockets/Secure-Close-readyState-Closing.htm": [ + [ + "/websockets/Secure-Close-readyState-Closing.htm", + {} + ] + ], + "websockets/Secure-Close-server-initiated-close.htm": [ + [ + "/websockets/Secure-Close-server-initiated-close.htm", + {} + ] + ], + "websockets/Secure-Close-undefined.htm": [ + [ + "/websockets/Secure-Close-undefined.htm", + {} + ] + ], + "websockets/Secure-Send-65K-data.htm": [ + [ + "/websockets/Secure-Send-65K-data.htm", + {} + ] + ], + "websockets/Secure-Send-binary-65K-arraybuffer.htm": [ + [ + "/websockets/Secure-Send-binary-65K-arraybuffer.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybuffer.htm": [ + [ + "/websockets/Secure-Send-binary-arraybuffer.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-float32.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-float32.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-float64.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-float64.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-int32.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-int32.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm", + {} + ] + ], + "websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm": [ + [ + "/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm", + {} + ] + ], + "websockets/Secure-Send-binary-blob.htm": [ + [ + "/websockets/Secure-Send-binary-blob.htm", + {} + ] + ], + "websockets/Secure-Send-data.htm": [ + [ + "/websockets/Secure-Send-data.htm", + {} + ] + ], + "websockets/Secure-Send-null.htm": [ + [ + "/websockets/Secure-Send-null.htm", + {} + ] + ], + "websockets/Secure-Send-paired-surrogates.htm": [ + [ + "/websockets/Secure-Send-paired-surrogates.htm", + {} + ] + ], + "websockets/Secure-Send-unicode-data.htm": [ + [ + "/websockets/Secure-Send-unicode-data.htm", + {} + ] + ], + "websockets/Secure-Send-unpaired-surrogates.htm": [ + [ + "/websockets/Secure-Send-unpaired-surrogates.htm", + {} + ] + ], + "websockets/Send-0byte-data.htm": [ + [ + "/websockets/Send-0byte-data.htm", + {} + ] + ], + "websockets/Send-65K-data.htm": [ + [ + "/websockets/Send-65K-data.htm", + {} + ] + ], + "websockets/Send-Unpaired-Surrogates.htm": [ + [ + "/websockets/Send-Unpaired-Surrogates.htm", + {} + ] + ], + "websockets/Send-before-open.htm": [ + [ + "/websockets/Send-before-open.htm", + {} + ] + ], + "websockets/Send-binary-65K-arraybuffer.htm": [ + [ + "/websockets/Send-binary-65K-arraybuffer.htm", + {} + ] + ], + "websockets/Send-binary-arraybuffer.htm": [ + [ + "/websockets/Send-binary-arraybuffer.htm", + {} + ] + ], + "websockets/Send-binary-arraybufferview-int16-offset.htm": [ + [ + "/websockets/Send-binary-arraybufferview-int16-offset.htm", + {} + ] + ], + "websockets/Send-binary-arraybufferview-int8.htm": [ + [ + "/websockets/Send-binary-arraybufferview-int8.htm", + {} + ] + ], + "websockets/Send-binary-blob.htm": [ + [ + "/websockets/Send-binary-blob.htm", + {} + ] + ], + "websockets/Send-data.htm": [ + [ + "/websockets/Send-data.htm", + {} + ] + ], + "websockets/Send-data.worker.js": [ + [ + "/websockets/Send-data.worker.html", + {} + ] + ], + "websockets/Send-null.htm": [ + [ + "/websockets/Send-null.htm", + {} + ] + ], + "websockets/Send-paired-surrogates.htm": [ + [ + "/websockets/Send-paired-surrogates.htm", + {} + ] + ], + "websockets/Send-unicode-data.htm": [ + [ + "/websockets/Send-unicode-data.htm", + {} + ] + ], + "websockets/binary/001.html": [ + [ + "/websockets/binary/001.html", + {} + ], + [ + "/websockets/binary/001.html?wss", + {} + ] + ], + "websockets/binary/002.html": [ + [ + "/websockets/binary/002.html", + { + "timeout": "long" + } + ], + [ + "/websockets/binary/002.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/binary/004.html": [ + [ + "/websockets/binary/004.html", + { + "timeout": "long" + } + ], + [ + "/websockets/binary/004.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/binary/005.html": [ + [ + "/websockets/binary/005.html", + {} + ], + [ + "/websockets/binary/005.html?wss", + {} + ] + ], + "websockets/binaryType-wrong-value.htm": [ + [ + "/websockets/binaryType-wrong-value.htm", + {} + ] + ], + "websockets/close-invalid.any.js": [ + [ + "/websockets/close-invalid.any.html", + {} + ], + [ + "/websockets/close-invalid.any.worker.html", + {} + ] + ], + "websockets/closing-handshake/002.html": [ + [ + "/websockets/closing-handshake/002.html", + {} + ], + [ + "/websockets/closing-handshake/002.html?wss", + {} + ] + ], + "websockets/closing-handshake/003.html": [ + [ + "/websockets/closing-handshake/003.html", + {} + ], + [ + "/websockets/closing-handshake/003.html?wss", + {} + ] + ], + "websockets/closing-handshake/004.html": [ + [ + "/websockets/closing-handshake/004.html", + {} + ], + [ + "/websockets/closing-handshake/004.html?wss", + {} + ] + ], + "websockets/constructor.html": [ + [ + "/websockets/constructor.html", + {} + ] + ], + "websockets/constructor/001.html": [ + [ + "/websockets/constructor/001.html", + {} + ], + [ + "/websockets/constructor/001.html?wss", + {} + ] + ], + "websockets/constructor/002.html": [ + [ + "/websockets/constructor/002.html", + {} + ], + [ + "/websockets/constructor/002.html?wss", + {} + ] + ], + "websockets/constructor/004.html": [ + [ + "/websockets/constructor/004.html", + {} + ], + [ + "/websockets/constructor/004.html?wss", + {} + ] + ], + "websockets/constructor/005.html": [ + [ + "/websockets/constructor/005.html", + {} + ], + [ + "/websockets/constructor/005.html?wss", + {} + ] + ], + "websockets/constructor/006.html": [ + [ + "/websockets/constructor/006.html", + {} + ], + [ + "/websockets/constructor/006.html?wss", + {} + ] + ], + "websockets/constructor/007.html": [ + [ + "/websockets/constructor/007.html", + {} + ], + [ + "/websockets/constructor/007.html?wss", + {} + ] + ], + "websockets/constructor/008.html": [ + [ + "/websockets/constructor/008.html", + {} + ], + [ + "/websockets/constructor/008.html?wss", + {} + ] + ], + "websockets/constructor/009.html": [ + [ + "/websockets/constructor/009.html", + {} + ], + [ + "/websockets/constructor/009.html?wss", + {} + ] + ], + "websockets/constructor/010.html": [ + [ + "/websockets/constructor/010.html", + {} + ], + [ + "/websockets/constructor/010.html?wss", + {} + ] + ], + "websockets/constructor/011.html": [ + [ + "/websockets/constructor/011.html", + {} + ], + [ + "/websockets/constructor/011.html?wss", + {} + ] + ], + "websockets/constructor/012.html": [ + [ + "/websockets/constructor/012.html", + {} + ], + [ + "/websockets/constructor/012.html?wss", + {} + ] + ], + "websockets/constructor/013.html": [ + [ + "/websockets/constructor/013.html", + { + "timeout": "long" + } + ], + [ + "/websockets/constructor/013.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/constructor/014.html": [ + [ + "/websockets/constructor/014.html", + { + "timeout": "long" + } + ], + [ + "/websockets/constructor/014.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/constructor/016.html": [ + [ + "/websockets/constructor/016.html", + {} + ], + [ + "/websockets/constructor/016.html?wss", + {} + ] + ], + "websockets/constructor/017.html": [ + [ + "/websockets/constructor/017.html", + {} + ], + [ + "/websockets/constructor/017.html?wss", + {} + ] + ], + "websockets/constructor/018.html": [ + [ + "/websockets/constructor/018.html", + {} + ], + [ + "/websockets/constructor/018.html?wss", + {} + ] + ], + "websockets/constructor/019.html": [ + [ + "/websockets/constructor/019.html", + {} + ], + [ + "/websockets/constructor/019.html?wss", + {} + ] + ], + "websockets/constructor/020.html": [ + [ + "/websockets/constructor/020.html", + {} + ], + [ + "/websockets/constructor/020.html?wss", + {} + ] + ], + "websockets/constructor/021.html": [ + [ + "/websockets/constructor/021.html", + {} + ], + [ + "/websockets/constructor/021.html?wss", + {} + ] + ], + "websockets/constructor/022.html": [ + [ + "/websockets/constructor/022.html", + {} + ], + [ + "/websockets/constructor/022.html?wss", + {} + ] + ], + "websockets/cookies/001.html": [ + [ + "/websockets/cookies/001.html", + {} + ], + [ + "/websockets/cookies/001.html?wss", + {} + ] + ], + "websockets/cookies/002.html": [ + [ + "/websockets/cookies/002.html", + {} + ], + [ + "/websockets/cookies/002.html?wss", + {} + ] + ], + "websockets/cookies/003.html": [ + [ + "/websockets/cookies/003.html", + {} + ], + [ + "/websockets/cookies/003.html?wss", + {} + ] + ], + "websockets/cookies/004.html": [ + [ + "/websockets/cookies/004.html", + {} + ], + [ + "/websockets/cookies/004.html?wss", + {} + ] + ], + "websockets/cookies/005.html": [ + [ + "/websockets/cookies/005.html", + { + "timeout": "long" + } + ], + [ + "/websockets/cookies/005.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/cookies/006.html": [ + [ + "/websockets/cookies/006.html", + {} + ], + [ + "/websockets/cookies/006.html?wss", + {} + ] + ], + "websockets/cookies/007.html": [ + [ + "/websockets/cookies/007.html", + { + "timeout": "long" + } + ], + [ + "/websockets/cookies/007.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/eventhandlers.html": [ + [ + "/websockets/eventhandlers.html", + {} + ] + ], + "websockets/extended-payload-length.html": [ + [ + "/websockets/extended-payload-length.html", + { + "timeout": "long" + } + ], + [ + "/websockets/extended-payload-length.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/interfaces/CloseEvent/clean-close.html": [ + [ + "/websockets/interfaces/CloseEvent/clean-close.html", + {} + ], + [ + "/websockets/interfaces/CloseEvent/clean-close.html?wss", + {} + ] + ], + "websockets/interfaces/CloseEvent/constructor.html": [ + [ + "/websockets/interfaces/CloseEvent/constructor.html", + {} + ] + ], + "websockets/interfaces/CloseEvent/historical.html": [ + [ + "/websockets/interfaces/CloseEvent/historical.html", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html", + { + "timeout": "long" + } + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html": [ + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/close/close-basic.html": [ + [ + "/websockets/interfaces/WebSocket/close/close-basic.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/close/close-basic.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/close/close-connecting.html": [ + [ + "/websockets/interfaces/WebSocket/close/close-connecting.html", + { + "timeout": "long" + } + ], + [ + "/websockets/interfaces/WebSocket/close/close-connecting.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/interfaces/WebSocket/close/close-multiple.html": [ + [ + "/websockets/interfaces/WebSocket/close/close-multiple.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/close/close-multiple.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/close/close-nested.html": [ + [ + "/websockets/interfaces/WebSocket/close/close-nested.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/close/close-nested.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/close/close-replace.html": [ + [ + "/websockets/interfaces/WebSocket/close/close-replace.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/close/close-replace.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/close/close-return.html": [ + [ + "/websockets/interfaces/WebSocket/close/close-return.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/close/close-return.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/constants/001.html": [ + [ + "/websockets/interfaces/WebSocket/constants/001.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/constants/001.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/constants/002.html": [ + [ + "/websockets/interfaces/WebSocket/constants/002.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/constants/002.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/constants/003.html": [ + [ + "/websockets/interfaces/WebSocket/constants/003.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/constants/003.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/constants/004.html": [ + [ + "/websockets/interfaces/WebSocket/constants/004.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/constants/004.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/constants/005.html": [ + [ + "/websockets/interfaces/WebSocket/constants/005.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/constants/005.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/constants/006.html": [ + [ + "/websockets/interfaces/WebSocket/constants/006.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/constants/006.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/001.html": [ + [ + "/websockets/interfaces/WebSocket/events/001.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/001.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/002.html": [ + [ + "/websockets/interfaces/WebSocket/events/002.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/002.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/003.html": [ + [ + "/websockets/interfaces/WebSocket/events/003.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/003.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/004.html": [ + [ + "/websockets/interfaces/WebSocket/events/004.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/004.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/006.html": [ + [ + "/websockets/interfaces/WebSocket/events/006.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/006.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/007.html": [ + [ + "/websockets/interfaces/WebSocket/events/007.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/007.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/008.html": [ + [ + "/websockets/interfaces/WebSocket/events/008.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/008.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/009.html": [ + [ + "/websockets/interfaces/WebSocket/events/009.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/009.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/010.html": [ + [ + "/websockets/interfaces/WebSocket/events/010.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/010.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/011.html": [ + [ + "/websockets/interfaces/WebSocket/events/011.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/011.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/012.html": [ + [ + "/websockets/interfaces/WebSocket/events/012.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/012.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/013.html": [ + [ + "/websockets/interfaces/WebSocket/events/013.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/013.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/014.html": [ + [ + "/websockets/interfaces/WebSocket/events/014.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/014.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/015.html": [ + [ + "/websockets/interfaces/WebSocket/events/015.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/015.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/016.html": [ + [ + "/websockets/interfaces/WebSocket/events/016.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/016.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/017.html": [ + [ + "/websockets/interfaces/WebSocket/events/017.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/017.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/018.html": [ + [ + "/websockets/interfaces/WebSocket/events/018.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/018.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/019.html": [ + [ + "/websockets/interfaces/WebSocket/events/019.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/019.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/events/020.html": [ + [ + "/websockets/interfaces/WebSocket/events/020.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/events/020.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/extensions/001.html": [ + [ + "/websockets/interfaces/WebSocket/extensions/001.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/extensions/001.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/protocol/protocol-initial.html": [ + [ + "/websockets/interfaces/WebSocket/protocol/protocol-initial.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/protocol/protocol-initial.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/001.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/001.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/001.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/002.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/002.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/002.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/003.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/003.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/003.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/004.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/004.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/004.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/005.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/005.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/005.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/006.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/006.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/006.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/007.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/007.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/007.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/readyState/008.html": [ + [ + "/websockets/interfaces/WebSocket/readyState/008.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/readyState/008.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/001.html": [ + [ + "/websockets/interfaces/WebSocket/send/001.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/001.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/002.html": [ + [ + "/websockets/interfaces/WebSocket/send/002.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/002.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/003.html": [ + [ + "/websockets/interfaces/WebSocket/send/003.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/003.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/004.html": [ + [ + "/websockets/interfaces/WebSocket/send/004.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/004.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/005.html": [ + [ + "/websockets/interfaces/WebSocket/send/005.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/005.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/006.html": [ + [ + "/websockets/interfaces/WebSocket/send/006.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/006.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/007.html": [ + [ + "/websockets/interfaces/WebSocket/send/007.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/007.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/008.html": [ + [ + "/websockets/interfaces/WebSocket/send/008.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/008.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/009.html": [ + [ + "/websockets/interfaces/WebSocket/send/009.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/009.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/010.html": [ + [ + "/websockets/interfaces/WebSocket/send/010.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/010.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/011.html": [ + [ + "/websockets/interfaces/WebSocket/send/011.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/011.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/send/012.html": [ + [ + "/websockets/interfaces/WebSocket/send/012.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/send/012.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/001.html": [ + [ + "/websockets/interfaces/WebSocket/url/001.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/001.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/002.html": [ + [ + "/websockets/interfaces/WebSocket/url/002.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/002.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/003.html": [ + [ + "/websockets/interfaces/WebSocket/url/003.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/003.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/004.html": [ + [ + "/websockets/interfaces/WebSocket/url/004.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/004.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/005.html": [ + [ + "/websockets/interfaces/WebSocket/url/005.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/005.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/006.html": [ + [ + "/websockets/interfaces/WebSocket/url/006.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/006.html?wss", + {} + ] + ], + "websockets/interfaces/WebSocket/url/resolve.html": [ + [ + "/websockets/interfaces/WebSocket/url/resolve.html", + {} + ], + [ + "/websockets/interfaces/WebSocket/url/resolve.html?wss", + {} + ] + ], + "websockets/keeping-connection-open/001.html": [ + [ + "/websockets/keeping-connection-open/001.html", + { + "timeout": "long" + } + ], + [ + "/websockets/keeping-connection-open/001.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/multi-globals/message-received.html": [ + [ + "/websockets/multi-globals/message-received.html", + {} + ] + ], + "websockets/opening-handshake/001.html": [ + [ + "/websockets/opening-handshake/001.html", + {} + ], + [ + "/websockets/opening-handshake/001.html?wss", + {} + ] + ], + "websockets/opening-handshake/002.html": [ + [ + "/websockets/opening-handshake/002.html", + { + "timeout": "long" + } + ], + [ + "/websockets/opening-handshake/002.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/opening-handshake/003-sets-origin.worker.js": [ + [ + "/websockets/opening-handshake/003-sets-origin.worker.html", + {} + ] + ], + "websockets/opening-handshake/003.html": [ + [ + "/websockets/opening-handshake/003.html", + {} + ], + [ + "/websockets/opening-handshake/003.html?wss", + {} + ] + ], + "websockets/opening-handshake/005.html": [ + [ + "/websockets/opening-handshake/005.html", + {} + ], + [ + "/websockets/opening-handshake/005.html?wss", + {} + ] + ], + "websockets/security/001.html": [ + [ + "/websockets/security/001.html", + {} + ], + [ + "/websockets/security/001.html?wss", + {} + ] + ], + "websockets/security/002.html": [ + [ + "/websockets/security/002.html", + {} + ], + [ + "/websockets/security/002.html?wss", + {} + ] + ], + "websockets/unload-a-document/001.html": [ + [ + "/websockets/unload-a-document/001.html", + {} + ], + [ + "/websockets/unload-a-document/001.html?wss", + {} + ] + ], + "websockets/unload-a-document/002.html": [ + [ + "/websockets/unload-a-document/002.html", + { + "timeout": "long" + } + ], + [ + "/websockets/unload-a-document/002.html?wss", + { + "timeout": "long" + } + ] + ], + "websockets/unload-a-document/003.html": [ + [ + "/websockets/unload-a-document/003.html", + {} + ] + ], + "websockets/unload-a-document/004.html": [ + [ + "/websockets/unload-a-document/004.html", + { + "timeout": "long" + } + ] + ], + "websockets/unload-a-document/005.html": [ + [ + "/websockets/unload-a-document/005.html", + { + "timeout": "long" + } + ], + [ + "/websockets/unload-a-document/005.html?wss", + { + "timeout": "long" + } + ] + ], "webstorage/document-domain.html": [ [ "/webstorage/document-domain.html", @@ -136694,7 +141434,7 @@ "support" ], "./README.md": [ - "a00890035c46ef53ab51d51107fde1891265379e", + "b6c3a023e07744e952e4b9348b586274cf6e3ad8", "support" ], "./check_stability.ini": [ @@ -136702,7 +141442,7 @@ "support" ], "./check_stability.py": [ - "bbd4279df950cb57bdde9aa96e2dabf4b801cb38", + "8c7aa3629d5440dd0c53c990310e964804fe7e8a", "support" ], "./ci_built_diff.sh": [ @@ -136722,7 +141462,7 @@ "support" ], "./lint.whitelist": [ - "f5ecb1ebc77ce598b8cc13568e9342afbf4c8307", + "eb36ee69795a6893e3f96a1d26470ea73213eca0", "support" ], "./update-built-tests.sh": [ @@ -136821,10 +141561,6 @@ "93903b4f58bc215ea2a67fc6d281593ec5ce79e9", "testharness" ], - "FileAPI/idlharness-expected.txt": [ - "3481a561989744ff3a461b1bc2f97bf22e9374f9", - "support" - ], "FileAPI/idlharness.html": [ "80280c78fd64daf52b994e96418b989aa61f2fd4", "testharness" @@ -138101,10 +142837,6 @@ "251a828d333bdd3face9d20a2a28ddf0c0ffeb49", "testharness" ], - "IndexedDB/interfaces-expected.txt": [ - "57b127e369a6185981ecc855befd6014cda28b7e", - "support" - ], "IndexedDB/interfaces.html": [ "df929a719e8f3f8af4151b221c47f6f4c4f4039b", "testharness" @@ -138326,7 +143058,7 @@ "support" ], "WebCryptoAPI/derive_bits_keys/pbkdf2.js": [ - "f881616857e5f523338f338ffcbded34f1c6b9e9", + "dfd8eea5707720186820549837c8a1a319a8ecc4", "support" ], "WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js": [ @@ -138337,28 +143069,96 @@ "0a073cb726ad239110545eb3cecada2a0ce5daf7", "support" ], - "WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html": [ + "WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt": [ + "100a1b87707f2a09b37a9b181c3edbd25d09c54e", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https.html": [ "eb82990143fa33de7b62cdacd2db566512d74d44", "testharness" ], - "WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html": [ + "WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https.html": [ "d896626491b4f710970b28d30eb89604034fb8c4", "testharness" ], - "WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt": [ - "7c3a931cce1bf247587a405a42372a5f651341c4", + "WebCryptoAPI/derive_bits_keys/test_hkdf.https-expected.txt": [ + "edc28137c9a06c7d49779924f76f045a44b2b5c3", "support" ], - "WebCryptoAPI/derive_bits_keys/test_hkdf.html": [ + "WebCryptoAPI/derive_bits_keys/test_hkdf.https.html": [ "6d0def388fed4db1606d03f2cbfd59020bd00c56", "testharness" ], - "WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt": [ - "77fe77f65f07596edb8f6a154246ab96f60dc94c", + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https-expected.txt": [ + "b42b43febc9c18e2848733a4bd76297c5dcc4316", "support" ], - "WebCryptoAPI/derive_bits_keys/test_pbkdf2.html": [ - "07703342a2b5b80585d541ec47d4633381fd785c", + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https.html": [ + "48b0c6ac60cc130a5bc109fd43b5b1da74bad6da", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https-expected.txt": [ + "0262965e5a7c6d60eaadff2742a39e42f1c277e6", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https.html": [ + "9f28363c1c182c354d688a44249abe3f6c6e9ff5", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https-expected.txt": [ + "45a0466d751321961c29a0e9c7b7ca46024293da", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https.html": [ + "2a6b28ee191cc62575872c19a21b402f668cd0d5", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https-expected.txt": [ + "fa45cf10aaeea5c396e5ce8e29063111dd8c5345", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https.html": [ + "e1d654a4ccefef12b57ef32388debf5df170e938", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https-expected.txt": [ + "666e2ac4d8152eda73cb3d1ec137a773402f8845", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https.html": [ + "2e3e354fe0b4b96d2429bd6e3b5b702a327d9e84", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https-expected.txt": [ + "aa0d1b76914045dcfef311297b7ddfc607cc6db6", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https.html": [ + "b53dd1eb6d350d6546e71e77d829eb3da4fc4c68", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https-expected.txt": [ + "815034c959f90c5cb618b7410b15b253f99dec7f", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https.html": [ + "d36de62c712d53d29aa8cc6995851493d814654f", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https-expected.txt": [ + "f322762354d71d0d256174d9019354eff9f4f4e1", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https.html": [ + "518afb29e8f859a793e0e39317c6516aae99fb67", + "testharness" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https-expected.txt": [ + "75a3f16670790cb668ec331998fdd49fb137eea4", + "support" + ], + "WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https.html": [ + "5e776aa3f202bb72a328947983b020f03ba6ec4d", "testharness" ], "WebCryptoAPI/digest/digest.js": [ @@ -138369,7 +143169,7 @@ "a9a6b7a15bf0b795729190a94bdda6ed1ddc013d", "testharness" ], - "WebCryptoAPI/digest/test_digest.html": [ + "WebCryptoAPI/digest/test_digest.https.html": [ "1f5893b2c01a60e1e49b8ba5dee8f3d6507cc604", "testharness" ], @@ -138413,19 +143213,31 @@ "e833d10f83ac5cff26e076371a545d60a8d37b8f", "support" ], - "WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html": [ + "WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https-expected.txt": [ + "76aafbc704366d08a1b335007b0a4e07df5b1920", + "support" + ], + "WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https.html": [ "f79d96aaa96347302cf08c641c5064b9dc2e974c", "testharness" ], - "WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html": [ + "WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https-expected.txt": [ + "316ccb51d5f6539c0d2c0ac85a43820eb6bfacfc", + "support" + ], + "WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https.html": [ "a3d4d1e4ea38587d170f583061d58ce02224d81e", "testharness" ], - "WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html": [ + "WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https-expected.txt": [ + "915c20a778d96ed0850ebbac75f5f4ca7ed8a689", + "support" + ], + "WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https.html": [ "f545fb559442624770696da2addb489cb5534530", "testharness" ], - "WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html": [ + "WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.https.html": [ "4905875dd185403d093361afb8e75bef50ce0c34", "testharness" ], @@ -138478,7 +143290,7 @@ "testharness" ], "WebCryptoAPI/generateKey/successes.js": [ - "a048156c0d724a735093a6f1209c8fed8281ffd1", + "9623250b44a270bd23f6d892e8a8296351fac708", "support" ], "WebCryptoAPI/generateKey/successes.worker.js": [ @@ -138525,99 +143337,139 @@ "b9e9790245742b8eeb4af7679cc0144710380c07", "testharness" ], - "WebCryptoAPI/generateKey/test_aes-cbc.html": [ + "WebCryptoAPI/generateKey/test_aes-cbc.https-expected.txt": [ + "da492efdf628d9478810bfbc7e09bbbb31f9e218", + "support" + ], + "WebCryptoAPI/generateKey/test_aes-cbc.https.html": [ "9c92564d0b64784bded21d3c337da125da1c0225", "testharness" ], - "WebCryptoAPI/generateKey/test_aes-ctr.html": [ + "WebCryptoAPI/generateKey/test_aes-ctr.https-expected.txt": [ + "c1001239ecb567665c702bfae0da2e11a356cf34", + "support" + ], + "WebCryptoAPI/generateKey/test_aes-ctr.https.html": [ "3804433a5bd2c382c8bd9afbd1b41792d9f927c1", "testharness" ], - "WebCryptoAPI/generateKey/test_failures.html": [ + "WebCryptoAPI/generateKey/test_failures.https-expected.txt": [ + "99d43635e3d26100877db3f4c50d9326a6d2c4f5", + "support" + ], + "WebCryptoAPI/generateKey/test_failures.https.html": [ "a1458bc27b594b9051bfbb7e537aebe2c95b6859", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_AES-CBC.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-CBC.https-expected.txt": [ + "392935784a5ea47edc59f5699e8fe03ed9417c53", + "support" + ], + "WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html": [ "bf4b12efa09c2602bed73b4ae2b94ebdf5bf9749", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_AES-CTR.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-CTR.https-expected.txt": [ + "d73ad12a0a977c6b71caa7f50d5fd76746da6724", + "support" + ], + "WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html": [ "2d33a87c30f30d76e547cb6e4b9637292c2e7b6e", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_AES-GCM.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-GCM.https-expected.txt": [ + "396f431edcefd6dd3858f656977cdfd0568be544", + "support" + ], + "WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html": [ "aaeb0182a48f680fd7f421a8ba7efa29561ad7fb", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_AES-KW.html": [ + "WebCryptoAPI/generateKey/test_failures_AES-KW.https-expected.txt": [ + "cb599c3d2e1cb8ecaeaf3ab1a631e597adf128c3", + "support" + ], + "WebCryptoAPI/generateKey/test_failures_AES-KW.https.html": [ "4dc9d4cff709a8a84569f6fc6eb2225a59fe8db4", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_ECDH.html": [ + "WebCryptoAPI/generateKey/test_failures_ECDH.https.html": [ "6eca49b0a06e1c468c28dffab3435cf14972095c", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_ECDSA.html": [ + "WebCryptoAPI/generateKey/test_failures_ECDSA.https.html": [ "decb88cd07b2ef2f2c07d1a1fd8e7dfc46e22350", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_HMAC.html": [ + "WebCryptoAPI/generateKey/test_failures_HMAC.https.html": [ "ffd768d80a38ae9e9ae029c3372a227681b020dd", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html": [ + "WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html": [ "ea5fab99e5fdc1b4232aa4c9eed96657f64b1e67", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_RSA-PSS.html": [ + "WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html": [ "1e03b7b789b75bb25e3491fe8bcfc198dd53b46d", "testharness" ], - "WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html": [ + "WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html": [ "749e526a3f67c246a328a99abd4c1da728571413", "testharness" ], - "WebCryptoAPI/generateKey/test_successes.html": [ - "6dd8fd836361a4c02c602149fbde996d0131607a", - "testharness" + "WebCryptoAPI/generateKey/test_successes_AES-CBC.https-expected.txt": [ + "da492efdf628d9478810bfbc7e09bbbb31f9e218", + "support" ], - "WebCryptoAPI/generateKey/test_successes_AES-CBC.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html": [ "e8ee3bdfb8aef171d6db35cc69a482f1a992d089", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_AES-CTR.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-CTR.https-expected.txt": [ + "c1001239ecb567665c702bfae0da2e11a356cf34", + "support" + ], + "WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html": [ "07f55a63a2327ee8804548ba5e802fcdba09010e", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_AES-GCM.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-GCM.https-expected.txt": [ + "25be4f6625f0fa8d8cb456b407ccbfc82c42bf90", + "support" + ], + "WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html": [ "ebec06754972d621026a4284c316c882be362dc3", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_AES-KW.html": [ + "WebCryptoAPI/generateKey/test_successes_AES-KW.https-expected.txt": [ + "2d9dced7a71cb12dedfee33cce272d4b5e561d00", + "support" + ], + "WebCryptoAPI/generateKey/test_successes_AES-KW.https.html": [ "e76258a60418fb1467d16a17b4e01da1d99bd036", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_ECDH.html": [ + "WebCryptoAPI/generateKey/test_successes_ECDH.https.html": [ "b2b7d0a233473a51e67a760638abf1f532d1232b", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_ECDSA.html": [ + "WebCryptoAPI/generateKey/test_successes_ECDSA.https.html": [ "c21190c7c74eb856a9fce3a4913723b46fa1887a", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_HMAC.html": [ + "WebCryptoAPI/generateKey/test_successes_HMAC.https.html": [ "ccfe6cefe42764a46dd817046b026034be033e97", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html": [ - "7ebe1df33a5df5f5a2cead014af5502246b6b833", + "WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html": [ + "04b89d631e81fd7822049c8513984c3af3711efd", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_RSA-PSS.html": [ + "WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html": [ "623370ae56918c14ac14f40fb057327b0844be04", "testharness" ], - "WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html": [ + "WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html": [ "ad5db5278bef55d9ae2336961c226199a4c94446", "testharness" ], @@ -138633,6 +143485,14 @@ "52b5381311cc0e2595d251273e054fa826de9765", "testharness" ], + "WebCryptoAPI/idlharness.https-expected.txt": [ + "368ac7b721dc832d0c21925f95b4a0501d6963b7", + "support" + ], + "WebCryptoAPI/idlharness.https.html": [ + "52b5381311cc0e2595d251273e054fa826de9765", + "testharness" + ], "WebCryptoAPI/idlharness.worker.js": [ "e3478f4259364d773dab9ca5e0c7194a0b78d5b3", "testharness" @@ -138661,18 +143521,30 @@ "e9d9758d0478ecdf93a5fda9f196501e992de614", "testharness" ], - "WebCryptoAPI/import_export/test_ec_importKey.html": [ + "WebCryptoAPI/import_export/test_ec_importKey.https.html": [ "2c173849dd35c551b71983fb8efc20f650599da2", "testharness" ], - "WebCryptoAPI/import_export/test_rsa_importKey.html": [ + "WebCryptoAPI/import_export/test_rsa_importKey.https.html": [ "d12cf20829eace56868a7b40d38e75aca89932a6", "testharness" ], - "WebCryptoAPI/import_export/test_symmetric_importKey.html": [ + "WebCryptoAPI/import_export/test_symmetric_importKey.https-expected.txt": [ + "970c6567ab8edb203428f5e26a7a36e0556fb650", + "support" + ], + "WebCryptoAPI/import_export/test_symmetric_importKey.https.html": [ "a69847f41e437363676a4ced439faba50ce85e5d", "testharness" ], + "WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html": [ + "e219b5ee2c878779562aded462bfcaa7ad81b63d", + "testharness" + ], + "WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html": [ + "4df3813485b7277571d61ce38a5811729f91ddbe", + "testharness" + ], "WebCryptoAPI/sign_verify/ecdsa.js": [ "55c99894ea3ba9186de1082c189f37f77dfe12e1", "support" @@ -138717,27 +143589,35 @@ "766e1f95031b3f9f3dd5d0e3de8c70f5fdf5ac30", "support" ], - "WebCryptoAPI/sign_verify/test_ecdsa.html": [ + "WebCryptoAPI/sign_verify/test_ecdsa.https.html": [ "969eb4e062dfb91e40be42d4980f0d0e464d5b34", "testharness" ], - "WebCryptoAPI/sign_verify/test_hmac.html": [ + "WebCryptoAPI/sign_verify/test_hmac.https.html": [ "cd105449c7b9b75aa91ee0848fdca5bda78a1aae", "testharness" ], - "WebCryptoAPI/sign_verify/test_rsa_pkcs.html": [ + "WebCryptoAPI/sign_verify/test_rsa_pkcs.https.html": [ "d7840d0a6d848510bf547d64c8b197761f39e05e", "testharness" ], - "WebCryptoAPI/sign_verify/test_rsa_pss.html": [ + "WebCryptoAPI/sign_verify/test_rsa_pss.https.html": [ "408e1a081caa23f7e717128e94eb5cfeae9bac30", "testharness" ], "WebCryptoAPI/util/helpers.js": [ - "6bf895ea91bfc92cb346f96af777bc9b8a0af0ee", + "76bfa10171fb405f321d015b4394a2a929d587dd", "support" ], - "WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html": [ + "WebCryptoAPI/util/worker-report-crypto-subtle-presence.js": [ + "4aacae51744fa0284ebc89c43084c4dae873e5c1", + "support" + ], + "WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https-expected.txt": [ + "fc77e7c8d71ecfe49cc5a54a83fc746a100b59f9", + "support" + ], + "WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https.html": [ "2f0070bafc5079f3b70dd8da567fde0ea6bfb113", "testharness" ], @@ -138794,17 +143674,25 @@ "testharness" ], "WebIDL/ecmascript-binding/has-instance.html": [ - "4266bf65ad4dd3dd2acaf7b8e0d18e8999f8252b", + "8df0ec18a02041106df53ccc3168261d29ab7943", "testharness" ], "WebIDL/ecmascript-binding/interface-object.html": [ "f68be23702792cb5236e608bf6e8421a9a851fb8", "testharness" ], + "WebIDL/ecmascript-binding/interface-prototype-object-expected.txt": [ + "f9611911af3554b8ecb907aaddc29cbd1da20ed1", + "support" + ], "WebIDL/ecmascript-binding/interface-prototype-object.html": [ "13d2a9dbbd0d78e240c2b88d548f88ba41184e5f", "testharness" ], + "WebIDL/ecmascript-binding/legacy-callback-interface-object.html": [ + "4eac8c853a0627577d2bd96ed76c45bd187a5734", + "testharness" + ], "XMLHttpRequest/FormData-append.html": [ "b41637b9f13c7876b581f0fb0162baea758d50e2", "testharness" @@ -138986,7 +143874,7 @@ "testharness" ], "XMLHttpRequest/formdata-foreach.html": [ - "0de3e65e068a59180ba03c67ce70e4db8f0bbd87", + "ac4bcf3c043dec99e2feeaeff828ead2db1e9606", "testharness" ], "XMLHttpRequest/formdata-get.htm": [ @@ -139069,10 +143957,6 @@ "1cb82348a9d6f3be34da762267cce7389f715f7c", "testharness" ], - "XMLHttpRequest/interfaces-expected.txt": [ - "9af0abfb9789a9b77b7f8315507fdcaea17d57fe", - "support" - ], "XMLHttpRequest/interfaces.html": [ "a4c597d2bdb85e37ffe5f5ebba961d7f8a3aeb29", "testharness" @@ -140121,6 +145005,18 @@ "b960bef807da94c0146ed2f537eaa1e05ec9a0ab", "testharness" ], + "accelerometer/Accelerometer.https.html": [ + "cb802e1f9df53ef6e8e3a34daf54f9e02b019383", + "testharness" + ], + "accelerometer/Accelerometer_insecure_context.html": [ + "62c0fdfe1ee0752956b4c68e877cd7f47ac887a1", + "testharness" + ], + "accelerometer/Accelerometer_onerror-manual.https.html": [ + "e03faad7d297ce2c5d6fefa66a2397c3d9a32e2d", + "manual" + ], "accelerometer/idlharness.https-expected.txt": [ "adc83b19e793491b1c6ea0fd8b46cd9f32e592fc", "support" @@ -140129,6 +145025,10 @@ "eedb225d9e8a05d528e62cc2d689dbfe36858052", "testharness" ], + "accelerometer/support-iframe.html": [ + "5782b270802060f88a1842c2393fb7d18c8c75a8", + "support" + ], "apng/animated-png-timeout-ref.html": [ "dcd3c58b9200109868f2b98bda346bf26f823e07", "support" @@ -140174,11 +145074,11 @@ "reftest" ], "background-fetch/interfaces-expected.txt": [ - "2aaf5d1bd0464e1419d1228e51b0e9d9870852c2", + "19fa33f3051ab724d8d6bf3439feb459cfaec9ec", "support" ], "background-fetch/interfaces-worker.https-expected.txt": [ - "d7146d68bb32f56107616c7687e4755f49bdbd43", + "d5017ead5f32888979f3cf44ed1181c70b6b3158", "support" ], "background-fetch/interfaces-worker.https.html": [ @@ -140197,6 +145097,54 @@ "0c959d5fa41c3db70c326b83e064b8261a6f90b4", "testharness" ], + "battery-status/battery-charging-manual.html": [ + "8ebb3c62fc6b678f5b0583cf0c699ff732ce5aa4", + "manual" + ], + "battery-status/battery-discharging-manual.html": [ + "9704395bc6026b24d8ae4e5bfdb6edd04ef79b6b", + "manual" + ], + "battery-status/battery-full-manual.html": [ + "7f3860749feb26bb9cb87286cb6f66b62aa64737", + "manual" + ], + "battery-status/battery-interface-idlharness.html": [ + "c8f459ca2f9bd88d46484d8471dd3427c0e46394", + "testharness" + ], + "battery-status/battery-plugging-in-manual.html": [ + "6dd6b6e88db39056da714690941a704bea29100f", + "manual" + ], + "battery-status/battery-promise-iframe.html": [ + "43fc622c8b5eec5c9e78a0b640a73e2a16ad3dc2", + "testharness" + ], + "battery-status/battery-promise-window.html": [ + "4407bd4501d8a32849bb8725ef24bf78e06e9c53", + "testharness" + ], + "battery-status/battery-promise.html": [ + "197e72bf5cbad7e3b4bacd63c57db3dbabb525e0", + "testharness" + ], + "battery-status/battery-unplugging-manual.html": [ + "a9293caf021d95d94cc7a5d3828b9221dd9dbfd1", + "manual" + ], + "battery-status/support-iframe-initial.html": [ + "3c203529afca2f6b2a075eb8a42bf2206e4f16af", + "support" + ], + "battery-status/support-iframe.html": [ + "3c203529afca2f6b2a075eb8a42bf2206e4f16af", + "support" + ], + "battery-status/support-window-open.html": [ + "61b61d09a21daee964e0ebd26f7bdfdd1964c8ae", + "support" + ], "beacon/headers/header-referrer-no-referrer-when-downgrade.https-expected.txt": [ "d7120d5fd0d4f1a0503339bb4a86345a64fd3cbb", "support" @@ -140257,6 +145205,10 @@ "e70503e7fb71617b9be631d5f2a9e73cacd83e3f", "support" ], + "bluetooth/OWNERS": [ + "eac8b7eeda90e280724435cec01f545f04311746", + "support" + ], "bluetooth/idl-Bluetooth.html": [ "5d4d8278b1f24798765974c35777f70fcbfc9cfa", "testharness" @@ -140341,6 +145293,14 @@ "a575b8135e6ddb1501fc2a082d7544ee86011b7d", "support" ], + "common/object-association.js": [ + "c6955b7bbf00d73ec5959678391aa59d36da8321", + "support" + ], + "common/performance-timeline-utils.js": [ + "0616ad8871126af7a74ff6937f3f7c623adcbd3e", + "support" + ], "common/redirect-opt-in.py": [ "70caa012fa7b91e20b7a08e3708097d1c1da44a3", "support" @@ -142969,12 +147929,132 @@ "ff4d7ca289ea20fa00bca535fdcf929876a2278b", "testharness" ], + "cors/304.htm": [ + "644c902be2861bed6dfa48ed12a12b08c6d9a2f5", + "testharness" + ], + "cors/README.md": [ + "acf95ba2292a36d28bbe9aa857428b2d1741ad33", + "support" + ], + "cors/allow-headers.htm": [ + "e28cf5812e58e490ec28bb407c4575f3d33687dc", + "testharness" + ], + "cors/basic.htm": [ + "a3589dffef076a17cc33610ad49fae71485886c4", + "testharness" + ], + "cors/credentials-flag.htm": [ + "0c2e70a707db7426e86726fc8e9cf86159606227", + "testharness" + ], + "cors/late-upload-events.htm": [ + "fd228ae2b8c82e4ec4a13659c95f9e42f8030b50", + "testharness" + ], + "cors/origin.htm": [ + "4fd804db576f22f4afc4ebc9f339341969322dbb", + "testharness" + ], + "cors/preflight-cache.htm": [ + "9bbc0c447ed2837d6fe7743e8f4af0f022c59394", + "testharness" + ], + "cors/preflight-failure.htm": [ + "73662dfcfabf5301b326e3c08d940825f032b644", + "testharness" + ], + "cors/redirect-origin.htm": [ + "f95119805ab3693a444eb0b150e74173974e8e49", + "testharness" + ], + "cors/redirect-preflight-2.htm": [ + "06a24558c5122208b55264005a73f8678da372c2", + "testharness" + ], + "cors/redirect-preflight.htm": [ + "4ff2bbe8191e46bb1423731dade459e83cd0f516", + "testharness" + ], + "cors/redirect-userinfo.htm": [ + "a6d6e48a8f2a8c164c635cdff2a0f1fe4da490e3", + "testharness" + ], + "cors/remote-origin.htm": [ + "de77f7b61c505bcdad5ebfa33cfaee9db7088e1a", + "testharness" + ], + "cors/request-headers.htm": [ + "56de3a6d1f3e96750f35cc2cacbdbb9b13e32f3f", + "testharness" + ], + "cors/resources/.gitignore": [ + "cd808bdba86046b88e876b9fa9e1549b27a110db", + "support" + ], + "cors/resources/304.py": [ + "b3270117326add2e3709b1bf790747cf3a83a218", + "support" + ], + "cors/resources/checkandremove.py": [ + "d891a6e489124e4ef7f82faa51a5e2a7221925f9", + "support" + ], + "cors/resources/cors-cookie.py": [ + "ab7074e4617a011d87d65043c71d01e96461a10b", + "support" + ], + "cors/resources/cors-headers.asis": [ + "758f91ae0ce63c2f3f273a3588bea290d208e0d2", + "support" + ], + "cors/resources/cors-makeheader.py": [ + "153ae440de7512da3001507010b5ef7bbbfb391e", + "support" + ], + "cors/resources/preflight.py": [ + "d57c82ffc41dd9d78ea69df75dc11aa6a626f660", + "support" + ], + "cors/resources/remote-xhrer.html": [ + "c942d5cf7950ebd9b968654a06d3a616f80ce9c2", + "support" + ], + "cors/resources/status.py": [ + "736fa785c02e296acfbe37a61e191f61ebea3355", + "support" + ], + "cors/response-headers.htm": [ + "e26f213e67940865d3d535f9fa173c999dbef31e", + "testharness" + ], + "cors/simple-requests.htm": [ + "73671cf4dd3474c70b065a7f34e706677c6abb62", + "testharness" + ], + "cors/status-async.htm": [ + "85670a399a068dbbd1f560c15d278cefce5f245b", + "testharness" + ], + "cors/status-preflight.htm": [ + "dbb3d1c71c732c0f575a50d4f20e4f27ee815f16", + "testharness" + ], + "cors/status.htm": [ + "1dd55535f1759d4ec23b9bb3652e7b56f0f82234", + "testharness" + ], + "cors/support.js": [ + "8307ed240a531033c96da89197dcfb5ea25cde87", + "support" + ], "credential-management/idl.https-expected.txt": [ - "fec68f08d6274aa393955df186bac40c4c937e8c", + "5e188755a9ce94c09b22bd1dbb1a0fcbe8a1b343", "support" ], "credential-management/idl.https.html": [ - "bb80379aab6b421bcf86e0f8f0538e3228fb1095", + "c9664273f5786aae604f86c136197e0ee5270a71", "testharness" ], "css-font-loading/fontfacesetloadevent-constructor.html": [ @@ -156693,40 +161773,320 @@ "f7a5738de1e8c4231afad100668cf18ba46a7b51", "support" ], + "css/css-grid-1/abspos/positioned-grid-items-001-ref.html": [ + "1673c68d597b136ecd71aff6bc1bf0c336e79f03", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-001.html": [ + "8258e9e56a3bd60c6538e393efb2d7dc922d8b4f", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-002.html": [ + "448ff634fb002b8485575f01fc0f85ebc819542b", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-003.html": [ + "7fc0c1d474e6989d169eebe69c90766f8d179bcc", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-004.html": [ + "2bffd5ea91a62f5a92db467b07e41064b17f9713", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-005-ref.html": [ + "b122fea36fae79fb18b33f5a664525eeb469c871", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-005.html": [ + "b1c596e2b27b6e4da03d6dbc6e6e96e606d1c8ff", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-006-ref.html": [ + "84fb3dbbac71e99420765d9a6eb1c9a5a599da9e", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-006.html": [ + "73ad585a34948226e899e3e606b107fc969a0df0", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-007-ref.html": [ + "c5ee44cd49c989d1e9b378d5c89776cd5192e476", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-007.html": [ + "64efed1425fcb5f299fcad039c463c8c6583d376", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-008-ref.html": [ + "8ba65302792a66eb2a2c470986763a468f8dfc1d", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-008.html": [ + "fdb285c399994d50597adaeea1ac07b256b76bb7", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-009-ref.html": [ + "e2b497cf7fafae8e7966e4b6ab00182b35905bd4", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-009.html": [ + "d287eb287ba56f558c57bcce6da3382af74e6926", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-010.html": [ + "6c4567902d785409ed21da7fecd21fd29399d34f", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-011-ref.html": [ + "afd109a769fe804bccc3a21e25bdce324f98930d", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-011.html": [ + "9595bee339cc454fdbb21640d20ae218002f4505", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-012-ref.html": [ + "ce38108aa80906852bbbf8ef5ccc99045abbb42e", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-012.html": [ + "5ca03ba877372b7da1b7293b76c82b829d397da0", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-013-ref.html": [ + "2f6a961e31e34c7e9867b974d088653f77acbb32", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-013.html": [ + "c616a111b38b34db007cc30d6e7bc04d64f8e5da", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-014-ref.html": [ + "32e82acc03d527f9e158bcee1db77ee56c7801d2", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-014.html": [ + "c6a339a995574c7de3ca66ca36a216cf31cd3193", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-015-ref.html": [ + "40c5d9f8714ae92931e2de319c05fa530a548f2a", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-015.html": [ + "3157b439f61a09b52d2d2eb37af627aa751a78ba", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-016-ref.html": [ + "31376a55b028760a681ba1ce35756c1510629134", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-016.html": [ + "91ccbd61eb0bd75e218fce3852cf8ade998f4d44", + "reftest" + ], + "css/css-grid-1/abspos/positioned-grid-items-017-ref.html": [ + "b3df58b256846bc883c52128b76169b7f13755eb", + "support" + ], + "css/css-grid-1/abspos/positioned-grid-items-017.html": [ + "6e0f7a2262ec3476d8cf32ea562fe0f67ad5a7f1", + "reftest" + ], "css/css-grid-1/alignment/grid-content-distribution-001.html": [ - "20d2c3cddd2051401966ffcf707ef1910f37a77d", + "71d678f48849879663d199ec57a5f19fb5e026b3", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-002.html": [ - "6175f1a4fffe61b4a968351ecf2d807131be5c6f", + "a20d044edc50199306349700b03522225841fc72", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-003.html": [ - "34021e8425010e83d16d6192ca67ca64d91d4ee6", + "4ef0c09a8c51e4fd2979887fe7420a62eb783027", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-004.html": [ - "9b7d162b20ccc39827e207f2ade978acad72c936", + "f1f2f65fad70478230f2456cbdf68ead9c6de7f6", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-005.html": [ "cf1c4546b569bea0bea062736ccea0e9e4f934ac", "reftest" ], + "css/css-grid-1/alignment/grid-content-distribution-006.html": [ + "f0f17f458563b57a39ff7b684996edfede82e510", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-007.html": [ + "08db6086c6a30888fee6881d6646d42c509d218b", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-008.html": [ + "66d112eae6876a44c2246312719c2e6a3b93a5eb", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-009.html": [ + "a27003f50acf7ff550d99b14a4a4435f80e791c0", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-010.html": [ + "1f59c3d1af79df13007d0ba29132917a6e075e54", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-011.html": [ + "edaf37eff5ed1db1709729e669aee460457de3ec", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-012.html": [ + "6ba269671145f1f8d5a32f6a1efe5927a695f693", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-013.html": [ + "a2036358ed56a79580d675cccd820e40b82bb3d0", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-014.html": [ + "9e20812f1655d4bbbde261694deee0c1d09ff214", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-015.html": [ + "d49d3b8b7a92a7cae108d7baa9d40b95699149aa", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-016.html": [ + "9ac8ed870190e63aa9e248cf41c81c41b4816442", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-017.html": [ + "7295162365f4929cf68ebad634be1d3bd6f7227a", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-018.html": [ + "872fdebe89d9ddad40efbd19c5b429675a8fc1ce", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-019.html": [ + "5e97218c93c95bd57edd96219a520a894184b2b6", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-020.html": [ + "228cd6b2312f64f7ae7bb1421fb6b8c5e6bb4c22", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-021.html": [ + "a626f563a51ef70a0a6221dd397c4ea9dce74f2c", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-022.html": [ + "0699d18ff695b8920588304e9685f843fa006b4f", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-023.html": [ + "788e76b9f562e1a2af800b8939d8cd6dccdaf991", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-024.html": [ + "d0f957e475c3c0934a3d84e64ea6552e47cfac7a", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-025.html": [ + "136e1a1999f3696a5742cb53a0d30e6411cfa6f4", + "reftest" + ], "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-001.html": [ - "88b01b5a68672c2cc6fbb44a32e98dfcd451a0c0", + "0681924a44ddc7c141a8c20203289c0862e7ec7c", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-002.html": [ - "152f9f4aa0579aded139f86cca9de26ac00b62e9", + "e7771a519139a375f641125ea2a0a90102d228c7", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-003.html": [ - "32e2645b47b613941b00270027c9ada5844563ff", + "7ff3085ec34b3fe9664ef0a9e02ebe862c42c22f", "reftest" ], "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-004.html": [ - "d3a50f9c1cf717df90a9c8184b5c2a414a61b3c4", + "c474e6c83ca32385734a035fd36ef41e2e666f24", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-005.html": [ + "c5a5d80b273add95223306d99471d3a030fb8be6", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-006.html": [ + "55d9f476640c87eb1663114599ddb6eafd91b7f0", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-007.html": [ + "d81f70fda4665e94cd32483127e069dec9b760cc", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-008.html": [ + "d4f0fde36ff5b437ebda34698d199cce359f00fa", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-009.html": [ + "5a50c58f6b9ba8b4b51b020b93ee61d23bfb500f", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-010.html": [ + "fa5cc94c766ac0d455326bb117ae530df0ce6d4d", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-011.html": [ + "3f02b75738ac80f1875a3adc0ce07052841c6be4", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-012.html": [ + "97dac1879d441e29c97743e9e63bb44f6a413f67", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-013.html": [ + "99832804da447b3cc35db8bb60492781a03ffb62", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-014.html": [ + "2cc1f4a715b939a882d7394cb0d49d5ba4b127c7", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-015.html": [ + "8b1947a434ec968a5bd0170334e7e2c907e69f28", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-016.html": [ + "998612427cda18f277c5edf484892fd3b313bffc", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-017.html": [ + "080c87419291575847c9e94eadf5096f4a438bb3", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-018.html": [ + "aec32266b3e66fb38f45888140bf773d537728c9", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-019.html": [ + "6891c290c82adce07bb2409732789b627f07ded0", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-020.html": [ + "0ea2837b789ce2289aa2ec1c514006899d13def7", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-021.html": [ + "0e2a972619d21b4de097ddca6f39f2cae486cc5c", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-022.html": [ + "fb73bdbdff8fda79519e4fe387127ca539506357", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-023.html": [ + "c8b2681075b476b15221bcb1fe1ea6a4e0c40409", + "reftest" + ], + "css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024.html": [ + "6446e5dede7383a43ac46b8083b6012b312a8124", "reftest" ], "css/css-grid-1/grid-definition/fr-unit-with-percentage.html": [ @@ -171861,8 +177221,12 @@ "88d834aadcd7b547720992a2894b9ab3251e3e04", "support" ], + "css/geometry-1/DOMMatrix-001-expected.txt": [ + "ac33c3d83430e843341d2745b93cc834af0ed71d", + "support" + ], "css/geometry-1/DOMMatrix-001.html": [ - "44c5a08d5e04aa37d4085c0166c449861b6eb313", + "67d37a8b37720e8a43e8c96a5d27bf07e87d7562", "testharness" ], "css/geometry-1/DOMMatrix-002.html": [ @@ -171873,6 +177237,14 @@ "546e1556be89eddb7d24adc97bb1024f686d7df6", "testharness" ], + "css/geometry-1/DOMMatrix-css-string.worker.js": [ + "b640ee1ef405e0edca83b6665de838b2e64e5785", + "testharness" + ], + "css/geometry-1/DOMPoint-001-expected.txt": [ + "1d1653e3a532efe9ecd8fb474e7bd3e51a7a3467", + "support" + ], "css/geometry-1/DOMPoint-001.html": [ "75a1c984c5a9b414bce5276e01f2b0b017bc49d3", "testharness" @@ -171881,6 +177253,10 @@ "30ca7cda7adda2bddda3643488a478af116f14cd", "testharness" ], + "css/geometry-1/DOMQuad-001-expected.txt": [ + "ece00d8625a4d1e70573027ffdf829676bb39418", + "support" + ], "css/geometry-1/DOMQuad-001.html": [ "5f48cfc224a18cfe37a7cf94cf48665a19681f21", "testharness" @@ -171893,6 +177269,18 @@ "f24895dc1d994388c45fb6fa39132a7e1c03d18b", "testharness" ], + "css/geometry-1/WebKitCSSMatrix.html": [ + "353fb5d2950784a88ce7764bb23c4267ac837ca8", + "testharness" + ], + "css/geometry-1/WebKitCSSMatrix.worker.js": [ + "35d9a1d1a7f655b55d94d0b409e9562a3fd08db5", + "testharness" + ], + "css/geometry-1/historical.html": [ + "0246effb1d5cc1136dcea4f70de08c66cabbaa89", + "testharness" + ], "css/geometry-1/support/dommatrix-test-util.js": [ "d0f0c482648ac39ccaebe359880b079369a8ba21", "support" @@ -171957,6 +177345,10 @@ "c7c664ce492ddee12caeebc45235073b65b46c42", "support" ], + "css/reference/ref-filled-green-300px-square.html": [ + "ae0b29e989b96750353e32c1cc5f597604cb26dc", + "support" + ], "css/reference/single_square_list_marker.xht": [ "24f700c8434ba676f079c99ad02bbc5c05be49da", "support" @@ -171993,8 +177385,12 @@ "86dd5c49bb80eb7c5fc31fa5ccde03cb3cd1eaa6", "reftest" ], + "css/selectors4/focus-within-006-ref.html": [ + "cd252364cc3bcdbd1ee08cb05fd7f3170743b6a5", + "support" + ], "css/selectors4/focus-within-006.html": [ - "559c91d9c1fde3acff64e8306c5336a128403f77", + "98c8ac4a0a0af6fdf5cc223665a80905a49ebab5", "reftest" ], "css/selectors4/focus-within-007-ref.html": [ @@ -172013,6 +177409,10 @@ "099cc34fc6e8303f6698fa173950c969f626f1c5", "testharness" ], + "css/selectors4/focus-within-010.html": [ + "150745c52d09926db02fdff2038858aa9c3bbf7d", + "reftest" + ], "css/selectors4/focus-within-display-none-001.html": [ "d6cf51a6bc63173550d4822fe6bf9c2cb6a74ad0", "testharness" @@ -172022,23 +177422,23 @@ "support" ], "css/selectors4/focus-within-shadow-001.html": [ - "04bea6ccfca052e4f1145bbc2ee29eafea6ec28c", + "d40955b06bcfe9b301ee107a9ed5bf04185778f2", "reftest" ], "css/selectors4/focus-within-shadow-002.html": [ - "7d42c180427eeb8914a2d87a5de6041962cde606", + "2cdc61827ca490926c7b6b9a66c667792ef2bc33", "reftest" ], "css/selectors4/focus-within-shadow-003.html": [ - "bb2a85b95b8d3a3bf9d99035522f02f2a85710d8", + "3350a0d3f5f50f150b7fb08a7d973a7a2f55fa29", "reftest" ], "css/selectors4/focus-within-shadow-004.html": [ - "4339aa03e5120ddcca25a268e2d94539b1e04523", + "a5721ff3e15dc01114f823b43ad8411f9817fecf", "reftest" ], "css/selectors4/focus-within-shadow-005.html": [ - "99c5fcb361ae4903b4e87315dfb8ba80f0296037", + "3a350e398a252d9687070f5dd02aaae3449c2425", "reftest" ], "css/selectors4/focus-within-shadow-006.html": [ @@ -174477,16 +179877,12 @@ "8fb3e3327f8f657e2215c91c75f49fd739c15c57", "testharness" ], - "cssom-view/cssom-view/media-query-list-interface-expected.txt": [ - "e10c7bbf158a0652b0ee64b7f16408bad7f3b774", - "support" - ], "cssom-view/cssom-view/media-query-list-interface.xht": [ "62f0fdd48d1a4194d439ee22829b3346bed9a154", "testharness" ], "cssom-view/cssom-view/window-interface-expected.txt": [ - "2d90834d824a27b9aada1b977630dfbb3879f215", + "f9c91ee81e61bbe5168efcfb6c710abcbdf265a0", "support" ], "cssom-view/cssom-view/window-interface.xht": [ @@ -174798,7 +180194,7 @@ "testharness" ], "cssom/CSSKeyframesRule-expected.txt": [ - "e252f60bc98e752751720a295459cc684a1b9e97", + "9d4a0e70fbf9e2a937eb1b9085d2151b6bf78e16", "support" ], "cssom/CSSKeyframesRule.html": [ @@ -174889,6 +180285,10 @@ "c9ed57c7ef7a035c25feff4ea60547a57d727f31", "testharness" ], + "cssom/getComputedStyle-pseudo.html": [ + "6c74e57a2e32a13cc3b7e955a2d89dafdf6d1730", + "testharness" + ], "cssom/historical.html": [ "2c78218b89efb9bdf60cf708920be142051347c7", "testharness" @@ -174918,7 +180318,7 @@ "testharness" ], "cssom/interfaces-expected.txt": [ - "f7a3e84adbeaefbee836699ae65e783652e5bcc7", + "0ba723a5501bf6c1ee8a9a16daac103b3e8638a8", "support" ], "cssom/interfaces.html": [ @@ -175213,6 +180613,10 @@ "0c1c8fb977b24bb3b5ca33051b32932f36f5a960", "testharness" ], + "cssom/variable-names.html": [ + "5ab67b9e86fd700a556d153898c2896448cc1759", + "testharness" + ], "custom-elements/CustomElementRegistry.html": [ "d1661ab1734f7d1a252030aeac7e9842a7a4cb3b", "testharness" @@ -175253,6 +180657,10 @@ "724060b276a1f3254fd226e329631005ec5a5e87", "testharness" ], + "custom-elements/custom-element-registry/per-global.html": [ + "3b143f80d77a0b15b59cc6e6f5344f85dafe4f4e", + "testharness" + ], "custom-elements/disconnected-callbacks-expected.txt": [ "74388ea24fbfe987cb0c26c8a4d92e04c216e48e", "support" @@ -175706,7 +181114,7 @@ "testharness" ], "dom/interfaces-expected.txt": [ - "51df51ac34194dc11f9ff4e2ea3993333c76910c", + "71eee7be7b4ec74490a7f52fea4d28aeaccf7b4e", "support" ], "dom/interfaces.html": [ @@ -176326,7 +181734,7 @@ "support" ], "dom/nodes/Element-classlist.html": [ - "dc4e8741784889b34d1710e4423fe05c6b89c6ed", + "c197df35960b77a7794eed10a1a927867a6658f4", "testharness" ], "dom/nodes/Element-closest-expected.txt": [ @@ -177262,7 +182670,7 @@ "testharness" ], "domxpath/interfaces-expected.txt": [ - "2b5d022a5dab228aaac03cb32b042179f9673adb", + "cb3cfe20146cbb757602172dcfc75cfddeea67ca", "support" ], "domxpath/interfaces.html": [ @@ -177382,7 +182790,7 @@ "support" ], "editing/data/misc.js": [ - "b3665906b4490411e15fcfd26e52df64a3470186", + "5e7a34bcaccb5ef4c2efa782fbc19991931bf8bc", "support" ], "editing/data/multitest.js": [ @@ -177477,6 +182885,10 @@ "c812df13215631719f8ff17eee4e0a854684670d", "testharness" ], + "editing/other/extra-text-nodes.html": [ + "ae2676afe7fb739c9fe7f2557971d8c1e9b58fdc", + "testharness" + ], "editing/other/restoration-expected.txt": [ "44e469414a6a79011ef935a70af52aeee7b3689d", "support" @@ -177745,10 +183157,6 @@ "30bdfc96ffaff0277ceca69aad43d82d5ac691b6", "testharness" ], - "encoding/idlharness-expected.txt": [ - "3f791bd20aaf834b865bce624535c26c83cb9ea8", - "support" - ], "encoding/idlharness.html": [ "7f1eee3e9d3554fe49e04014501ed12bc57b89e8", "testharness" @@ -178501,6 +183909,298 @@ "17c7a7646bd10a09035bfbc48f6a29c033b44bda", "support" ], + "eventsource/README.md": [ + "f450de54700a6057f2acb57d2c52257684b337f8", + "support" + ], + "eventsource/dedicated-worker/eventsource-close.htm": [ + "700107771158b22fa280f30a5a52d1aac617ff6e", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm": [ + "559eef919d29e8db8d0e8c58d71803d3ceb9d761", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm": [ + "d97370612a324674cc3c9db744656efc2c517573", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-eventtarget.worker.js": [ + "44793f9f72a6210b2dc8e188e9d0719d55d7f557", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-onmesage.htm": [ + "d70f4546165557fcffb4f9fc7629110101ecdde4", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-onopen.htm": [ + "b5eeab94f6c2e6968d4eddf51e602f014803189c", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-prototype.htm": [ + "e456055918c6de9aeba8a6f190e3b1026bad5002", + "testharness" + ], + "eventsource/dedicated-worker/eventsource-url.htm": [ + "bf2cb242561dd44ff3179a397fdf76e2b6721eda", + "testharness" + ], + "eventsource/event-data.html": [ + "d4c12398f299da6facce4afc785d9959d9c2f59b", + "testharness" + ], + "eventsource/eventsource-close.htm": [ + "1ef734e03c84ac74b6a0d2d6be57593cdc3dc973", + "testharness" + ], + "eventsource/eventsource-constructor-document-domain.htm": [ + "f44e3f48de8e62ea50a3a6bf6fa91c117357ce26", + "testharness" + ], + "eventsource/eventsource-constructor-non-same-origin.htm": [ + "a4c501a1bd6dbc04dbead8326b5f804a2b832be1", + "testharness" + ], + "eventsource/eventsource-constructor-stringify.htm": [ + "44861ddb6ebd37e1ef8b496ed734c0264f46a512", + "testharness" + ], + "eventsource/eventsource-constructor-url-bogus.htm": [ + "579a6dc4342108d40a64300f94459a83a84f3d4a", + "testharness" + ], + "eventsource/eventsource-constructor-url-multi-window.htm": [ + "83acdbb4b960268da4c476c833ca12b6e1a9d891", + "testharness" + ], + "eventsource/eventsource-cross-origin.htm": [ + "968a3083770ed51e8875e59cde05a1591fb359e6", + "testharness" + ], + "eventsource/eventsource-eventtarget.htm": [ + "6c310a29fead70bf530da7fb8606622f2b0b1f5a", + "testharness" + ], + "eventsource/eventsource-onmessage-realm-support.htm": [ + "c6cb7f6b619c7e06150d7a52d7fb5db032398b52", + "support" + ], + "eventsource/eventsource-onmessage-realm.htm": [ + "5b6b6a404b32e6feeda50994e847a51e8d05f37e", + "testharness" + ], + "eventsource/eventsource-onmessage-trusted.htm": [ + "2e1db82bd52328761053868053e64b891c329a99", + "testharness" + ], + "eventsource/eventsource-onmessage.htm": [ + "df7317125e36f62825d915f0bc156b24e1f473a9", + "testharness" + ], + "eventsource/eventsource-onopen.htm": [ + "ca18dac3866e9614a16c847f2bfb19f06c22378c", + "testharness" + ], + "eventsource/eventsource-prototype.htm": [ + "325c4c08b7bfd7fdf9fa3836508cb6853feecdac", + "testharness" + ], + "eventsource/eventsource-reconnect.htm": [ + "b3e5285923d6d8d2d9065fdc6817f3b833f85140", + "testharness" + ], + "eventsource/eventsource-request-cancellation.htm": [ + "d39a24ac7b6fa059d6a81375774c3ae62bfa3fa2", + "testharness" + ], + "eventsource/eventsource-url.htm": [ + "9c9e6787d2a548732fa3a9b7daaa40a960454465", + "testharness" + ], + "eventsource/format-bom-2.htm": [ + "66c286eaca02c11c753c3b78b4b9ffa48dd4774c", + "testharness" + ], + "eventsource/format-bom.htm": [ + "0af0ca8628da33f201820c72dd44b4e8e2dee552", + "testharness" + ], + "eventsource/format-comments.htm": [ + "f4d259fd156f61f83a1165daaccbe4872056ef48", + "testharness" + ], + "eventsource/format-data-before-final-empty-line.htm": [ + "260a48e731b6264879e4069ba608121de5f20427", + "testharness" + ], + "eventsource/format-field-data.htm": [ + "868530cc2d403b1b5ecd5bfdcef2e5be66f7cc61", + "testharness" + ], + "eventsource/format-field-event-empty.htm": [ + "c5b9b6f9f28d5e66f742ac1e0f31a28fd09fa8a3", + "testharness" + ], + "eventsource/format-field-event.htm": [ + "1c7a77a1f3cdb6cca816cb1944256892e6473e24", + "testharness" + ], + "eventsource/format-field-id-2.htm": [ + "5704f240a4b83319e1ad436caebec40f5005e946", + "testharness" + ], + "eventsource/format-field-id.htm": [ + "a33303664c6604026bcde699386d8d64647066d2", + "testharness" + ], + "eventsource/format-field-parsing.htm": [ + "451a7acee5abb9c0cbec826506e39e5ececfcb7d", + "testharness" + ], + "eventsource/format-field-retry-bogus.htm": [ + "36b3ab19c6cc026f8b853f53125dca872fb852f4", + "testharness" + ], + "eventsource/format-field-retry-empty.htm": [ + "3e0e52881b91c3c3e0a2c09679f057ae86c26cf5", + "testharness" + ], + "eventsource/format-field-retry.htm": [ + "ff77911ac434593326e06a450c1ad745a4675221", + "testharness" + ], + "eventsource/format-field-unknown.htm": [ + "9be3a5363dfee1de580edf5979f8b61d4cce2fc6", + "testharness" + ], + "eventsource/format-leading-space.htm": [ + "b0cffd5c72d1aee687c6774b3db9d9961b7ff6bc", + "testharness" + ], + "eventsource/format-mime-bogus.htm": [ + "6941014dcabde9c35dc9f757e0c5c27cb331c62f", + "testharness" + ], + "eventsource/format-mime-trailing-semicolon.htm": [ + "a24cf6a36134814e331ca64fe3c9a5771fd40f3c", + "testharness" + ], + "eventsource/format-mime-valid-bogus.htm": [ + "e84580bf514c5ddfd54153090a1a1cd364776adf", + "testharness" + ], + "eventsource/format-newlines.htm": [ + "35858a5a6f6313b2f52bb26787fcd4e7ebd17aa0", + "testharness" + ], + "eventsource/format-null-character.html": [ + "260577b0b2013eea1e2b163ca70a73fdc6258439", + "testharness" + ], + "eventsource/format-utf-8.htm": [ + "150899caa81465d6ee79b0f190225e477e852944", + "testharness" + ], + "eventsource/interfaces.html": [ + "7c6142901b523241a7d4f37924b5ac23ca326dd3", + "testharness" + ], + "eventsource/request-accept.htm": [ + "ef5b92a2396e77beca045e84933e7b1481cb6eb5", + "testharness" + ], + "eventsource/request-cache-control.htm": [ + "9ef66188bb2413f0eb175abc85a99b1a044a63e7", + "testharness" + ], + "eventsource/request-credentials.htm": [ + "010be5d86c8a720c0b21834c4be26d993de17285", + "testharness" + ], + "eventsource/request-redirect.htm": [ + "50ad3c4126510681998fbf6bc645cd9461780344", + "testharness" + ], + "eventsource/request-status-error.htm": [ + "05e310c3c51b0c6cbaf3d5948e29f9110d524f42", + "testharness" + ], + "eventsource/resources/accept.event_stream": [ + "65722eb0b5da8423b12e4fa9de12b9bcfe1dbea1", + "support" + ], + "eventsource/resources/cache-control.event_stream": [ + "da25f849ba134437ac1f0af6a17ecc90e3e319b5", + "support" + ], + "eventsource/resources/cors-cookie.py": [ + "86d2b8ed9fdfc974e7d28d990e8709e79c93b131", + "support" + ], + "eventsource/resources/cors.py": [ + "ce7af1571fd65a33698344465352b48e600a8650", + "support" + ], + "eventsource/resources/init.htm": [ + "4faead7af5f158efef5edc7ed04a47dcb2651df5", + "support" + ], + "eventsource/resources/last-event-id.py": [ + "9f4a48ce1f216200763937429f5a70d2f356b611", + "support" + ], + "eventsource/resources/message.py": [ + "e0b16b61818b74560e6b53e75fc06ef100a85a1b", + "support" + ], + "eventsource/resources/message2.py": [ + "1b993f3a10b39a76f209a4beb6191a83c769eb8f", + "support" + ], + "eventsource/resources/reconnect-fail.py": [ + "69571dcc7a756fe02d4f59d22cc5db45e5b4da34", + "support" + ], + "eventsource/resources/status-error.py": [ + "2a79947e7c0da4621a0299fbc279bc7eaefb2c0f", + "support" + ], + "eventsource/resources/status-reconnect.py": [ + "96ec5d58d8558ca3b78c351c3fdf6835f709f4ca", + "support" + ], + "eventsource/shared-worker/eventsource-close.htm": [ + "196601fcbfdb216fdf99730986e796a0f8164ddb", + "testharness" + ], + "eventsource/shared-worker/eventsource-constructor-non-same-origin.htm": [ + "a9814bf1b62a81a39012d85d4a2daa4e58e2e298", + "testharness" + ], + "eventsource/shared-worker/eventsource-constructor-url-bogus.htm": [ + "dfc1b40c7b127a1041cf9344cc11dcce342b65ca", + "testharness" + ], + "eventsource/shared-worker/eventsource-eventtarget.htm": [ + "91574e0db564ce5f35a6d07b177b4333ebc6b53d", + "testharness" + ], + "eventsource/shared-worker/eventsource-onmesage.htm": [ + "9baa0b480754acf4cc5fbf2360408b21e21088ce", + "testharness" + ], + "eventsource/shared-worker/eventsource-onopen.htm": [ + "7daabfe1cbefd1bc64916bbc01af078a7bdbe6e6", + "testharness" + ], + "eventsource/shared-worker/eventsource-prototype.htm": [ + "cd056d8608d651ef9e44c57e89c24102d6fdb963", + "testharness" + ], + "eventsource/shared-worker/eventsource-url.htm": [ + "db0ae6b9e15f03d83dd5fcf870eb135dc75f42db", + "testharness" + ], "fetch/README.md": [ "cc3f679ff78bf2e3b39cf967102c257b84fd7680", "support" @@ -178753,10 +184453,6 @@ "c360fd3d220fc13b35e5858dd9c7ddb49256ae72", "testharness" ], - "fetch/api/headers/headers-basic-expected.txt": [ - "c7aa1da80c76986abd8e190ba07af702a4005565", - "support" - ], "fetch/api/headers/headers-basic.html": [ "2eadcace244bb97aae5aee14657bf07f19df22aa", "testharness" @@ -178774,7 +184470,7 @@ "testharness" ], "fetch/api/headers/headers-idl-expected.txt": [ - "e6908e18e9b16088954e80a788ef94014bc777af", + "9b7cf6bf382d80378214443eec3f96f09d502fc9", "support" ], "fetch/api/headers/headers-idl.html": [ @@ -179146,7 +184842,7 @@ "testharness" ], "fetch/api/request/request-idl-expected.txt": [ - "8c6c169325ac608963a21a0f9ad0311155665f77", + "e09072192ced173c4e4ad4fb0f8ceac51b40ec87", "support" ], "fetch/api/request/request-idl.html": [ @@ -179306,7 +185002,7 @@ "testharness" ], "fetch/api/response/response-idl-expected.txt": [ - "3418cf393722f28985e4ebc8d74f072628c87215", + "bd59cadc79d90c6b2fb119bb9c634529b6f28dbc", "support" ], "fetch/api/response/response-idl.html": [ @@ -179717,10 +185413,90 @@ "e401e8e8bcd97446991398d6021a9bd712c923c5", "support" ], + "gamepad/OWNERS": [ + "1e787fb5c201a568863a2953cf910a10e45cc23b", + "support" + ], "gamepad/idlharness.html": [ "5a3fc1b9be284ad92d9cc252325e6f8eae02e1cc", "testharness" ], + "generic-sensor/generic-sensor-tests.js": [ + "7b36a69dd7d9148f70a1d40d4108dcd747cb2913", + "support" + ], + "generic-sensor/idlharness.html": [ + "0e3f29a3a065a3db2f6e0e77d9c6bbdf47bf5ca8", + "testharness" + ], + "geolocation-API/PositionOptions.https.html": [ + "772c305b5b9e6a8ae61a44b395771b8d60bd7187", + "testharness" + ], + "geolocation-API/clearWatch_TypeError.html": [ + "cce531a95f13a25148903807da87725390dd13dc", + "testharness" + ], + "geolocation-API/getCurrentPosition_IDL.https.html": [ + "5c7c8f7406a82140384687bfc66b2ef1d8bdc259", + "testharness" + ], + "geolocation-API/getCurrentPosition_TypeError.html": [ + "d00057185b0641895b700d43df91063beb0529ca", + "testharness" + ], + "geolocation-API/getCurrentPosition_permission-manual.html": [ + "c4bd25b48591ab5078eafa3439363eaa0a24e7cb", + "manual" + ], + "geolocation-API/getCurrentPosition_permission_allow-manual.html": [ + "e75a1408296aeed55b5edee35d86cb523cce5a4c", + "manual" + ], + "geolocation-API/getCurrentPosition_permission_allow.https.html": [ + "02b0a2b3c021da0b811ba1c21ce0fc63d7839652", + "testharness" + ], + "geolocation-API/getCurrentPosition_permission_deny-manual.html": [ + "44b2d8846c79ddf7eb8cb3ab76d8899b7e783fad", + "manual" + ], + "geolocation-API/getCurrentPosition_permission_deny.https.html": [ + "aabbc7b2d392e2bbc26c08262bae4d57348da7a2", + "testharness" + ], + "geolocation-API/interfaces.html": [ + "c5e300b504b6bf75818fbe79728c87b086ccce3d", + "testharness" + ], + "geolocation-API/support.js": [ + "68515a39a244240502d7a871be505a079360cdce", + "support" + ], + "geolocation-API/watchPosition_TypeError.html": [ + "84c57288bdc42dd2c6d97f81e2608a19769272b9", + "testharness" + ], + "geolocation-API/watchPosition_permission-manual.html": [ + "39f9b8442320f67323f55f26a417deb2ae12eacf", + "manual" + ], + "geolocation-API/watchPosition_permission_deny.https.html": [ + "ca3036737a662e8673477b1a09b6fce89f0f98f4", + "testharness" + ], + "gyroscope/Gyroscope.https.html": [ + "03510d4964a52a53fc7648b5435e810e75ea747a", + "testharness" + ], + "gyroscope/Gyroscope_insecure_context.html": [ + "319bcf346337ccdd67f94ba2d0d4849e5b57da5e", + "testharness" + ], + "gyroscope/Gyroscope_onerror-manual.https.html": [ + "1e15b883bd317ca83783864fc563794cb0f6df8e", + "manual" + ], "gyroscope/idlharness.https-expected.txt": [ "adc83b19e793491b1c6ea0fd8b46cd9f32e592fc", "support" @@ -179729,14 +185505,14 @@ "567b200f0ea88894bbffbffb6d20ea546f516e7d", "testharness" ], + "gyroscope/support-iframe.html": [ + "b02be6c1cdae86e449b8bf635e18e0b60957bb81", + "support" + ], "hr-time/basic.any.js": [ "5c727eed4efd84b4b280b2584b7338217971a9e7", "testharness" ], - "hr-time/idlharness-expected.txt": [ - "bb9c7549a8514d7906753a36550f1f51cdf85ca9", - "support" - ], "hr-time/idlharness.html": [ "b56993b32650d40226e08beee147bc28c76cfa22", "testharness" @@ -179857,6 +185633,10 @@ "16a810530a8101a0c672bad9c425ca0e8f1e16cc", "manual" ], + "html-media-capture/capture_reflect-expected.txt": [ + "0cff3dfa8811bfafd066ee4e0194aa1aa4108cc4", + "support" + ], "html-media-capture/capture_reflect.html": [ "81518a10ed38fa5e077430ce6fdf8ed844297a01", "testharness" @@ -179881,6 +185661,10 @@ "acef04c2541d30fdff411c74ccce81ee2086c9d2", "manual" ], + "html-media-capture/idlharness-expected.txt": [ + "03ed7481bfae8eec07f40a6a76a48e0f5f1e13f1", + "support" + ], "html-media-capture/idlharness.html": [ "32b3d387100f0e7ecda93d1fb88351680b259df0", "testharness" @@ -180010,7 +185794,7 @@ "testharness" ], "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html": [ - "18bd98353460da1c9d376e9453d9a96b7c273291", + "0f8425ba4fcdd12e357ec975c6439c89c72c1c3e", "testharness" ], "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html": [ @@ -181301,6 +187085,10 @@ "48192ef9970a0e258e790e69174755c3872604f1", "testharness" ], + "html/browsers/history/the-location-interface/per-global.window.js": [ + "04de6e863ec1816fccda38e50b81d67bbcedb125", + "support" + ], "html/browsers/history/the-location-interface/reload_document_open_write-1.html": [ "464fa292c3fa04da8594401bbdb7cbe2a30b41dc", "support" @@ -184158,7 +189946,7 @@ "testharness" ], "html/dom/reflection-metadata-expected.txt": [ - "6cd0f738b34dcfd16495e4f8f6a42d3c635d5d1c", + "693042f0a15cd1045670ba6b0706ab9257507197", "support" ], "html/dom/reflection-metadata.html": [ @@ -184190,7 +189978,7 @@ "testharness" ], "html/dom/reflection-tabular-expected.txt": [ - "ae690ebf1c242116b0bebd94293b3a6d19067c66", + "ad7f43965720a5d69d8fd808ef07cbc9d860086c", "support" ], "html/dom/reflection-tabular.html": [ @@ -187637,6 +193425,50 @@ "e3e7f3973cf8f9b466d4f22d1ec3b9b9241fb906", "support" ], + "html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html": [ + "a21ca78b9c6a8795eb4e2fa95f30a51a553a3e52", + "support" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html": [ + "5c20688ee9f871cdc0b1553287dfe6d4d64dcf15", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-002.html": [ + "80318bc3c90f72803255831a95c482bf99105d29", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-003.html": [ + "ae4f1d7e6c954fd1f3fa53fcd77833954bcdf6d9", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-004.html": [ + "ace6101644d2c0e426d611016a3cb3dc30968f4a", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-005.html": [ + "5aae7d56aa63f90160ba1e296378b0a0832c07f0", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-006.html": [ + "e329657b5ebf7211237fa7712a3c710d3ea4b956", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-007.html": [ + "10c986cf6e428c782a09572be5c5438d256b17c1", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-008.html": [ + "c026d35ec89818f5624daad20163fb4ceed62828", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-009.html": [ + "68e7e27bc3777a8fe0807380a28c1ce60aa3becc", + "reftest" + ], + "html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-010.html": [ + "0320abd956316beff38f2ff06e0f32ee2b2e9887", + "reftest" + ], "html/editing/editing-0/spelling-and-grammar-checking/user-interaction-editing-spellcheck.html": [ "228e52ef1987df94158305799dc53086e435b24b", "testharness" @@ -187825,10 +193657,6 @@ "de0ed7f283f4e17155cd3fc07dd5cb688d6fd8be", "support" ], - "html/infrastructure/common-dom-interfaces/collections/domstringlist-interface-expected.txt": [ - "4ba4f7e089dc138e38eb1d1a9d5265d7cd5fcd1f", - "support" - ], "html/infrastructure/common-dom-interfaces/collections/domstringlist-interface.html": [ "ca8af91733f0b0704409e26f17d4a14977ce14f7", "testharness" @@ -188005,22 +193833,42 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure-expected.txt": [ + "f1a92556756ba2367d58775e9b4e4f56d3d22464", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html": [ "8375e9daeb9a11e53a9841874fef50677f0970dc", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-expected.txt": [ + "5b71103526f9bdc73d6cb0c952b341cd7aeb802d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html": [ "12bd51a62830514325b89263abc5710bbe6b510f", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved-expected.txt": [ + "b8bbcf78db5a8c1373a592d36818ee8feb20d092", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html": [ "594d11e18e7ef8e9aaa0eca3dc2865033827ce7c", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-dedicatedworker-expected.txt": [ + "dca7776baefe8e2c5758475769c3e28f265171bb", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-dedicatedworker.html": [ "1fa9a3ae8d33bfd08d37a18853d511b9de66889b", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-sharedworker-expected.txt": [ + "dca7776baefe8e2c5758475769c3e28f265171bb", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-sharedworker.html": [ "c93bd6d985380cde5e3309897ad56fccd0a73709", "testharness" @@ -188029,6 +193877,10 @@ "42b788cb6d8a9509239bbb5c141c1f014dd9a6bf", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring-expected.txt": [ + "677ad31ab2ad8327f3c9fda6214093162ee0289d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html": [ "17b67f8d75e558be808493f5cba82f978a0b6822", "testharness" @@ -188109,6 +193961,10 @@ "a8d3ce61436cb0d5b23c275820fcde7d63cdafec", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history-expected.txt": [ + "5330724ff028597c0f67b064f8a3238387d98ee8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html": [ "8f66e9b640ba812f3846a8fb0dc8f29fcf502f1e", "testharness" @@ -188121,26 +193977,50 @@ "bba8979a9270460b976f8c2ca6912c1b3dedeab2", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub-expected.txt": [ + "3fe5917b592d3fd122560ba1ae1855194ddfeaa1", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html": [ "dac4b1fd873c3ec42d05e24166e77424b15377d4", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success-expected.txt": [ + "5bc3d99b084de09db7302a029b742d40f193fe9b", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html": [ "298b5dba54eafaee6dafe5356b5196ed37f59b21", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https-expected.txt": [ + "b171c76db386b300ed5de0e3d1528bb129669f3e", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html": [ "11794f2d67e97eb97ad1871027b4a19e017e9624", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure-expected.txt": [ + "73b4d2fe27182f7958e1558aa9fca10fb3854779", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html": [ "735bfeda2e72815f331766b32ac02af71179902b", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub-expected.txt": [ + "2aa5e9fcaa4376b0034c49feb2bf85cd7400e9c2", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html": [ "5d30957d37646bd4ebc7112db8c055bae8cc6e23", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success-expected.txt": [ + "6819b2199c308f6d3f006e0274e891484cf1ff79", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html": [ "7c0b8b2e411236aeeed3a8b7962dc70d8a94969f", "testharness" @@ -188902,7 +194782,7 @@ "support" ], "html/rendering/non-replaced-elements/tables/OWNERS": [ - "9d89a9a80094b90ae9bdc0c8501aafef3adcbcf2", + "fde7a2ad96981226f11f642f440f872ff92cbee4", "support" ], "html/rendering/non-replaced-elements/tables/table-border-1-ref.html": [ @@ -190898,7 +196778,7 @@ "testharness" ], "html/semantics/forms/textfieldselection/selection-after-content-change-expected.txt": [ - "158d99363f5aaf434fffe94941eb9f9436261265", + "fe3e555124aa9d768ec354636888452faa49a346", "support" ], "html/semantics/forms/textfieldselection/selection-after-content-change.html": [ @@ -191182,7 +197062,7 @@ "testharness" ], "html/semantics/forms/the-input-element/radio.html": [ - "f80348bd3b3947eefc993323988799df13e7280e", + "e7b37335f58290c4f5a8e1a098c1cc50fb78a7b2", "testharness" ], "html/semantics/forms/the-input-element/range-2.html": [ @@ -192185,6 +198065,14 @@ "d18faac90e11617824f0a2bc2ead29ad14de3622", "testharness" ], + "html/semantics/scripting-1/the-script-element/module/currentScript-null.html": [ + "20f8022ca7d47c57a08c20a17b547d0d89630fb3", + "testharness" + ], + "html/semantics/scripting-1/the-script-element/module/currentscript.js": [ + "6bd1fff05e91002539688b03eff9d7313e0de9dc", + "support" + ], "html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-common.js": [ "ff9af4e5253db096cd5de8d2e7ed74cd05ed2561", "support" @@ -192258,7 +198146,7 @@ "support" ], "html/semantics/scripting-1/the-script-element/module/execorder.html": [ - "a1b14284d50eda5bd745c113cf9df10a621895f2", + "2180793400b87fa0793a9e30ec35608bc156a25e", "testharness" ], "html/semantics/scripting-1/the-script-element/module/imports-a.js": [ @@ -192313,12 +198201,16 @@ "f2a20180b6bf5f9c89f5b9541885d55dc8a8ade6", "support" ], + "html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js": [ + "ad9a90f05a7a64901b18474c49d0baa579bfc60d", + "support" + ], "html/semantics/scripting-1/the-script-element/nomodule-reflect.html": [ "ac2b3c16e9e9263cd4c14de205b63709c14ec2e3", "testharness" ], "html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html": [ - "5b4a532b21caa6235bed10a28878c65523a816aa", + "6ef870db74ba0dbb6171c74437a78cef4a6f6062", "testharness" ], "html/semantics/scripting-1/the-script-element/nomodule-set-on-external-module-script.html": [ @@ -194061,10 +199953,50 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], - "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm": [ - "060659a3aafbbf51c8e1a909d5e7d451fdba2893", + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm": [ + "3c58f1659b1e7a06fbc9068a243b8777fb00b730", "testharness" ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm": [ + "a57ac305ef379f0ddd61c0bb401278855b87146c", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm": [ + "a599308e7803ede1851741a813f4eb4838554a32", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm": [ + "2313b85385e2cad99257ca985c005126eb2fc009", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm": [ + "af4c7c1bb4b26dcc8c6e8dc53201499f0086de4e", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm": [ + "5e4189278e14a78fc78edb7960ff33c69f9fa4bf", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm": [ + "0fd5c5703309abab66cf553da9685d8e766f5278", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm": [ + "b7a95380287b3c8299f2028d055cb68e1f11fc6e", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm": [ + "61c32e514cdc7b3d40f6a7bdb0d4babf19ec562c", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm": [ + "c35672e53b9ebe1d778de8ec8ea654390389bea5", + "testharness" + ], + "html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm": [ + "f675bac0053a5e0b8dffe83cbaf48709537409d7", + "support" + ], "html/the-xhtml-syntax/parsing-xhtml-fragments/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -194146,7 +200078,7 @@ "testharness" ], "html/webappapis/idle-callbacks/callback-multiple-calls.html": [ - "6375309c43a1e7c9fafdc95f01fcccb4c92f8afc", + "af6e6a65fda2486ac8669340988b1d57a178e77a", "testharness" ], "html/webappapis/idle-callbacks/callback-removed-frame.html": [ @@ -194513,18 +200445,34 @@ "6427c8ff06c11f2877f026124d46748b5270bc8e", "support" ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker-expected.txt": [ + "af176e5146cc29228a79f938a4213a7dee9a7bb5", + "support" + ], "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html": [ "e9ef057de8593404b63e34c8c2ff038236f26d7b", "testharness" ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https-expected.txt": [ + "de5070cdadcb7ba3183ced73c67dd41fac93e9b8", + "support" + ], "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html": [ "f6cdef79aefb4739025c0c805dfc1ee7fcddef52", "testharness" ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker-expected.txt": [ + "065db60d0b5d575c0757abe9cc05eebb471dc79d", + "support" + ], "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html": [ "6927215d83fc6562dabf74b1a089531556256f5c", "testharness" ], + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window-expected.txt": [ + "6db918561d530cb3693ca40927130bf4c66f9e45", + "support" + ], "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html": [ "5aab1e791ad444eb73383e06f4e2fbb1fb512072", "testharness" @@ -194901,6 +200849,26 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], + "http/basic-auth-cache-test-ref.html": [ + "42fbbd76956a8d2a84221500f70bd5c42cf5c75a", + "support" + ], + "http/basic-auth-cache-test.html": [ + "3695684b66b1929a582d7b1cffee9487400b9c1c", + "reftest" + ], + "http/content_length.html": [ + "5ade7f549fe195af4e897debb4913e07ad237243", + "testharness" + ], + "http/content_length.html.headers": [ + "c86f164a128d02814744e0456e4588062eb016c8", + "support" + ], + "http/resources/securedimage.py": [ + "bc4c7a8b5eef0e082a5fa7c8c763957d92730747", + "support" + ], "images/anim-gr.gif": [ "d348de95f364f6654edc197ac5c72ebd4339f11b", "support" @@ -195121,6 +201089,10 @@ "3fabcfa40caf9c66bc74bcd83663eddb0f385051", "support" ], + "interfaces/webrtc-pc.idl": [ + "4f94c4236168ed722f71d81bd957e0da72b29c71", + "support" + ], "longtask-timing/longtask-attributes.html": [ "a88bd658adcb9ef3dcbfa803397910e531bc864b", "testharness" @@ -195169,6 +201141,18 @@ "4acb6764c2fb60ad55733c420dfd7c1946542f17", "support" ], + "magnetometer/Magnetometer.https.html": [ + "4e7d890f37469aecbce415187bb0bcf239dac37b", + "testharness" + ], + "magnetometer/Magnetometer_insecure_context.html": [ + "9708569b2e2764c973efe31e9f2f4e3de7f7a449", + "testharness" + ], + "magnetometer/Magnetometer_onerror-manual.https.html": [ + "6adfb807ff2c1b24dad702b21f636e7805543704", + "manual" + ], "magnetometer/idlharness.https-expected.txt": [ "adc83b19e793491b1c6ea0fd8b46cd9f32e592fc", "support" @@ -195177,6 +201161,10 @@ "b21217da9dc986e605d172d72a5f4f3e7b2aa216", "testharness" ], + "magnetometer/support-iframe.html": [ + "4afaea574bcbd68422278c5e093cf6d37ab4f9f1", + "support" + ], "media-capabilities/README.md": [ "7d6ceec9a74d5485a6f7d51504f22e5eaf81bfee", "support" @@ -195186,7 +201174,7 @@ "testharness" ], "media-capabilities/idlharness-expected.txt": [ - "5dd584ee1063c3f84f1d50fc20f29870e97f9ca7", + "af14f23f4acbb383cded87cd505c385c6e2b7567", "support" ], "media-capabilities/idlharness.html": [ @@ -195246,7 +201234,7 @@ "support" ], "media-source/interfaces-expected.txt": [ - "00f357eeb3487d423ad537083a6f95d25f3b8c56", + "01312b6a76d9f1dd750d3657690c31504cb40450", "support" ], "media-source/interfaces.html": [ @@ -195774,19 +201762,27 @@ "support" ], "mediacapture-fromelement/idlharness-expected.txt": [ - "2a14bb74d8a729117abffcb33f37a7e5f4e95045", + "062e876f46293c80964767dbad631a6ef20b6022", "support" ], "mediacapture-fromelement/idlharness.html": [ "ceeb48e7982eb88561f4c1630cb0fcf15d9cf73c", "testharness" ], + "mediacapture-image/idlharness-expected.txt": [ + "7eaa5e273426a8d9b3472cb228091ed90f11a77e", + "support" + ], + "mediacapture-image/idlharness.html": [ + "7ccf7fcab0344a2e1893e89d7689e2312287b64d", + "testharness" + ], "mediacapture-record/BlobEvent-constructor.html": [ "29d5649ff97ca0631f8c841425a88248525f9774", "testharness" ], "mediacapture-record/idlharness-expected.txt": [ - "e04fb8879cf82709e5f6eaa40d1e64918665ef9d", + "15c47d282eedba507c099d404e44848b4e4b6e74", "support" ], "mediacapture-record/idlharness.html": [ @@ -195918,7 +201914,7 @@ "testharness" ], "mediacapture-streams/MediaStreamTrack-init.https-expected.txt": [ - "72eff44313d8fb45278de4da064eaa322ff63074", + "36aea560450ddb3cbeea30e6b8d3d34a55081699", "support" ], "mediacapture-streams/MediaStreamTrack-init.https.html": [ @@ -195938,7 +201934,7 @@ "support" ], "mediasession/idlharness-expected.txt": [ - "cc2ca247cfee9fd0be5cb80ac1e650d79341485e", + "1125d49b762768478de6f0521ec7f2b20983d368", "support" ], "mediasession/idlharness.html": [ @@ -197233,6 +203229,10 @@ "6a0548ef4b906e539d89940aa791a78bba905262", "support" ], + "mixed-content/imageset.https.sub.html": [ + "e2005b813384f38b64baec9bc431e25aa61f417f", + "testharness" + ], "mixed-content/optionally-blockable/http-csp/cross-origin-http/audio-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html": [ "9219890ab0efa31e4f2db0646e12882da3a5443d", "testharness" @@ -197609,10 +203609,6 @@ "2fd556b87de54659b3b02647c24fd4033c134ad7", "support" ], - "navigation-timing/idlharness-expected.txt": [ - "9ab5ec83962dfe74d44c054b00556545d9ebeec4", - "support" - ], "navigation-timing/idlharness.html": [ "12635e5ffcc457a3db40ec483ea724f60a2ef59f", "testharness" @@ -197622,7 +203618,7 @@ "support" ], "navigation-timing/nav2_idlharness-expected.txt": [ - "74c2dd20ecb939ba357339312ff83cfc7dbd16d8", + "291fda445c50ea3938b8a381b014f1eec5f733cb", "support" ], "navigation-timing/nav2_idlharness.html": [ @@ -197734,11 +203730,11 @@ "support" ], "navigation-timing/resources/webperftestharness.js": [ - "277312011faf560c6333a0810391e0cf50fdb61d", + "670154a84de50de0c6b310edfeb23a1f3d0d72d1", "support" ], "navigation-timing/test_document_open.html": [ - "13e0ed36e865e06060cfb4cf0d3efc6dfc09d684", + "627ec3a534f3e6ce030a7f5824a67f26f458b091", "testharness" ], "navigation-timing/test_document_readiness_exist.html": [ @@ -197746,71 +203742,71 @@ "testharness" ], "navigation-timing/test_navigate_within_document.html": [ - "c2a4e7340d17ed4dfbe0899e827a96a733997b7d", + "ee8c8581c79be154437e9765885c125d22593b9c", "testharness" ], "navigation-timing/test_navigation_attributes_exist.html": [ - "1dcf7144e6feb00f58fcfdf3c93b6bc65f49ff09", + "a1a9b3ebb814de031920729019d8917ddf906b12", "testharness" ], "navigation-timing/test_navigation_redirectCount_none.html": [ - "5b6f58efd9837f60f47d5ad1a691c8a183b6020b", + "d1308890904883b0a5d684f56b8201f30f8633ff", "testharness" ], "navigation-timing/test_navigation_type_backforward.html": [ - "39bafd06aab6f52e2e61181554cd5d1c0366c6d6", + "5a87b34ea921ef05ee43fe7cc3bdc4d2be56e2fd", "testharness" ], "navigation-timing/test_navigation_type_enums.html": [ - "65927fa5f352377fee57ff4ed86518f36efc4777", + "ca1a454659dd9b0790905ec4ebaa67fee16229c0", "testharness" ], "navigation-timing/test_navigation_type_reload.html": [ - "861072d2026f3fc4e35c7d3caf568eac2c8225a9", + "8b4e1b729a2f97932fe54018c8ea07629fb8ed00", "testharness" ], "navigation-timing/test_no_previous_document.html": [ - "7cf63a018da4a387b7c1f4599f786b6e0cf3211b", + "728aea673231311336585484140f975993198c9b", "testharness" ], "navigation-timing/test_performance_attributes_exist.html": [ - "93bb823553d23292d6f07b24d8d2e99135b5e75f", + "77ce7940ef510aad4545975e717bf5557dbfc948", "testharness" ], "navigation-timing/test_performance_attributes_exist_in_object.html": [ - "f20d7fca8a279f8df8ba221bf229374a387ce29d", + "2ab286b7504e1976d02e6880b758c22fba10ba17", "testharness" ], "navigation-timing/test_readwrite.html": [ - "f210f135fc9eb2040d81b3855eeccf34cfd81a35", + "20507630ddb21872b8eb5f0bca5d62064b8bd0ff", "testharness" ], "navigation-timing/test_timing_attributes_exist.html": [ - "c7d2b16b357482f0da04662d81f0bc1d9ff6696e", + "199aa3389a6a0adf6cb5b18d133c889728cb4411", "testharness" ], "navigation-timing/test_timing_attributes_order.html": [ - "db411d2ac783d49f059d24697fb0bea5e1b382d0", + "7719f088b9ff3bdedb8567ab9eab3f6ca776ecae", "testharness" ], "navigation-timing/test_timing_client_redirect.html": [ - "6d747b5ea0c0f56bbfa4fdbf44924b40fec39b04", + "c6aed0cb03b941e0b8c62a0b086099759b4b25ef", "testharness" ], "navigation-timing/test_timing_reload.html": [ - "8daff711c794f7e4f9d3f4fb4d2ef6df08df8ff9", + "57ba3573d672dbbc60695d049dec39efd5e1feb9", "testharness" ], "navigation-timing/test_timing_server_redirect.html": [ - "199cd011e687ac74b647c7f1fe5214f965d8f85c", + "10b7f221c4667e92a993f0aae70820a95ea445aa", "testharness" ], "navigation-timing/test_timing_xserver_redirect.html": [ - "f0ff9c47a25b6c6a93c6b5e0ffddc3b78444df14", + "a08120e4302c51307fa97de3d521c85c82adb53f", "testharness" ], "navigation-timing/test_unique_performance_objects.html": [ - "c7d89bf7a3119dbfe9a581f82b5ac43ff6645a64", + "b9d933d6a33eabc0b9c9f856c91b802677fa1094", "testharness" ], "notifications/body-basic-manual.html": [ @@ -197865,10 +203861,6 @@ "0d1c3d540163dc596080f7c09291d41a41f5c9b9", "testharness" ], - "notifications/interfaces-expected.txt": [ - "76c9a1418837227cbe3dfc5256cdcc5ffc9c6493", - "support" - ], "notifications/interfaces.html": [ "0a653fc93d0d01761fb642d426461130134d9cbf", "testharness" @@ -197913,6 +203905,10 @@ "f31d50ead567908aab1d1dad577eb06c912c97f3", "manual" ], + "orientation-event/OWNERS": [ + "6a0960087150c96612bb8760ca687a7722627a79", + "support" + ], "orientation-event/devicemotionevent-init.html": [ "fab191bbebab21f696fefc0ad9e8110b99855eee", "testharness" @@ -197938,7 +203934,7 @@ "manual" ], "orientation-event/idlharness-expected.txt": [ - "403db3c048083e01063e8da5babae300c35e9df0", + "0ed66e5c56365883369a9dd2f6f9f318d04e511c", "support" ], "orientation-event/idlharness.html": [ @@ -198001,6 +203997,10 @@ "6948dbbdc88ffd9aa84ad5a6c822b354809561b2", "manual" ], + "orientation-sensor/idlharness.https-expected.txt": [ + "adc83b19e793491b1c6ea0fd8b46cd9f32e592fc", + "support" + ], "orientation-sensor/idlharness.https.html": [ "049b5e9505165723cec70237e2ae5f0e2c7948f0", "testharness" @@ -198077,14 +204077,14 @@ "c0c611a34326ac2eba18e48d640aa358deaae551", "testharness" ], - "payment-request/interfaces.https-expected.txt": [ - "40a3d4893d2ad82a2569bb008fd670b6b5374155", - "support" - ], "payment-request/interfaces.https.html": [ "29af302db74de64e2bd1352ad92092a309d28c92", "testharness" ], + "payment-request/payment-request-constructor.https.html": [ + "b9e425c8169460535f344a23af4d52fdfa7daed3", + "testharness" + ], "payment-request/payment-request-id.https.html": [ "3e74f97fdf39bb1ca9f2cb5596155705cd15b5b0", "testharness" @@ -198097,6 +204097,10 @@ "88df88efdb1d44b56ac9758295f2e2920ae6c9ff", "support" ], + "payment-request/payment-request-show-method.https.html": [ + "026e28265a88be54a56e2dadc0fb485303864dfc", + "testharness" + ], "pointerevents/README.md": [ "91a8bd86357b0d96ba3ab8f08f88c28436de484c", "support" @@ -198105,10 +204109,6 @@ "cba44e2dd2a3c54106bfecc6cdd407643e2ba995", "manual" ], - "pointerevents/extension/idlharness-expected.txt": [ - "419c5106c9d9d41689bdf0bcc5480e191adb9e05", - "support" - ], "pointerevents/extension/idlharness.html": [ "64ed6d6c201773f0b5ab4b81369a2d601fe3363a", "testharness" @@ -198125,10 +204125,6 @@ "2af9a0d673339553ddfd30433c569f42b4803c22", "testharness" ], - "pointerevents/idlharness-expected.txt": [ - "8db80f38011d2ae4ceacd2040db42d3edce9c787", - "support" - ], "pointerevents/idlharness.html": [ "6ca74eb661910c27ed6cb8bbbb819b749007a75f", "testharness" @@ -198405,6 +204401,54 @@ "69023fcb8dcd5701d084e66c7b72ce121dc3435c", "support" ], + "pointerlock/constructor.html": [ + "6b77dd2bd357f9e902846b9f96059537dda35b3e", + "testharness" + ], + "pointerlock/idlharness.html": [ + "c2def90f67a355efc490ace9a27d873b87edb531", + "testharness" + ], + "pointerlock/movementX_Y_basic-manual.html": [ + "b8567207aa3112562738cc6ffd2f2e5e2af652c5", + "manual" + ], + "pointerlock/movementX_Y_no-jumps-manual.html": [ + "a58e494ab143d0658535cb571acbf85544c52c51", + "manual" + ], + "pointerlock/pointerlock_basic-manual.html": [ + "4914806f0c1dc76a630dc82a8a0ee9ceacef06b4", + "manual" + ], + "pointerlock/pointerlock_fullscreen-manual.html": [ + "c6cf680894c699d610716dfce34e8c67d0917498", + "manual" + ], + "pointerlock/pointerlock_indefinite-manual.html": [ + "d52319bd8c660491ac5528ae90aece83a2cf5642", + "manual" + ], + "pointerlock/pointerlock_leave_Tab-manual.html": [ + "41b0799807f5b7d88ebfc1e819ef10b5d4194aaf", + "manual" + ], + "pointerlock/pointerlock_leave_UA-manual.html": [ + "3794be5ea066cb99e32a5669f3e5d08b9732159d", + "manual" + ], + "pointerlock/pointerlock_remove_target-manual.html": [ + "6262b231ca8af095dee42c493e77662ee132dc05", + "manual" + ], + "pointerlock/pointerlock_remove_target_on_mouseup-manual.html": [ + "21bba49e139c491f29d3a04c72601d688dfe5977", + "manual" + ], + "pointerlock/pointerlock_shadow-manual.html": [ + "9e687345acc5b9966172bab7da04e3e7019e34c5", + "manual" + ], "preload/avoid-delaying-onload-link-preload.html": [ "7f7c89ffad6f9bc2909d56e36b238ffcba260849", "testharness" @@ -198497,6 +204541,30 @@ "3ee15736925ad7eed449ff3074353140598461bd", "testharness" ], + "progress-events/Status.html": [ + "2f34189d3c5515acab1431c80e4e97392a8afcc1", + "support" + ], + "progress-events/constructor.html": [ + "d38d6eebf28444181dfc59b49ee348845d06ff0c", + "testharness" + ], + "progress-events/interface.html": [ + "a614d8381b4fa9d04aef6c2a08889451b1b086a2", + "testharness" + ], + "progress-events/tests/submissions/Samsung/firing-events-http-content-length.html": [ + "2788ec7607b0d75049e84ea0edc75afe71bcb002", + "testharness" + ], + "progress-events/tests/submissions/Samsung/firing-events-http-no-content-length.html": [ + "9e5fbf0716e1a1ba3c0628ea2c1bc807d6819a9d", + "testharness" + ], + "progress-events/tests/submissions/Samsung/resources/no-content-length.py": [ + "1a6c21ff409b1c16a45a58d1fafd1c8da28ce7c5", + "support" + ], "quirks-mode/blocks-ignore-line-height.html": [ "01c5b2e89c88d4145429e8860eaa88f728d0601b", "testharness" @@ -205973,6 +212041,82 @@ "3d220a3cc0e6a05fbc40c0ab0e46a2e60162b2be", "testharness" ], + "secure-contexts/basic-dedicated-worker.html": [ + "075f4170b133fe13e282ff5450871ef7960faf50", + "testharness" + ], + "secure-contexts/basic-dedicated-worker.https.html": [ + "05beced009e36f577a1393f80198158f3d37063c", + "testharness" + ], + "secure-contexts/basic-popup-and-iframe-tests.html": [ + "4141fa0e0eef64d170ce787bd6eb03b516d3af0a", + "testharness" + ], + "secure-contexts/basic-popup-and-iframe-tests.https.html": [ + "cfa4222d01a569ca8619d9cb37f7ddb48d92bcb6", + "testharness" + ], + "secure-contexts/basic-popup-and-iframe-tests.https.js": [ + "69573c7565eacce1d1069f8ae116615340d404c2", + "support" + ], + "secure-contexts/basic-shared-worker.html": [ + "c9e83a73d9dfdf9880bc27f5f9ae5c20c918715d", + "testharness" + ], + "secure-contexts/basic-shared-worker.https.html": [ + "7241035c47bc2a0251826d2c9ad3bc5f9acd61d2", + "testharness" + ], + "secure-contexts/postMessage-helper.html": [ + "8b5438e8ff88bd322c5231b5116128f50652f43b", + "support" + ], + "secure-contexts/postMessage-helper.https.html": [ + "8b5438e8ff88bd322c5231b5116128f50652f43b", + "support" + ], + "secure-contexts/server-locations.sub.js": [ + "557c6bc670e807004ca08df15af14ca9edaa26aa", + "support" + ], + "secure-contexts/shared-worker-insecure-first.https.html": [ + "81c9cd152b620dd70b11b72db021f4324dad16fa", + "testharness" + ], + "secure-contexts/shared-worker-secure-first.https.html": [ + "38c411b3a8fa1acf9d87e4f68c58a52f54c3d379", + "testharness" + ], + "secure-contexts/support/dedicated-worker-script.js": [ + "6065750183241c13c29697a5f4a87f35a0116877", + "support" + ], + "secure-contexts/support/https-subframe-dedicated.html": [ + "5a9c1cee739efbad41f2ef6c4d70eda1f7b01646", + "support" + ], + "secure-contexts/support/https-subframe-shared.html": [ + "805fdd9f814c8486845165830353472830df3c35", + "support" + ], + "secure-contexts/support/parent-dedicated-worker-script.js": [ + "f30fd69030eb48c6d98f07f0f61cf7c75410991f", + "support" + ], + "secure-contexts/support/parent-shared-worker-script.js": [ + "fe110557d01f13b1b62606bf39d4ed54ebb5eb23", + "support" + ], + "secure-contexts/support/shared-worker-insecure-popup.html": [ + "5e5d40fe3b0a7d9b40fb272bb582772a7b36f716", + "support" + ], + "secure-contexts/support/shared-worker-script.js": [ + "c9b3ac77b8c62131dbe0f7228071fc6bf5e5e838", + "support" + ], "selection/Document-open.html": [ "31a5ee7a3619c62dbd35eafb66725bf4192639a0", "testharness" @@ -206101,12 +212245,8 @@ "4b5b638ae5cdaab02fbe9cca255a119134238a7d", "testharness" ], - "selection/interfaces-expected.txt": [ - "db570dc214d7d94698ee7215f8ea35d6e8f23bb5", - "support" - ], "selection/interfaces.html": [ - "dc08fae99f9b481a63ed5f78aa8b32eeaba28b35", + "55d32a5d2a362a2d7bd0ddc580fa24180f3d3579", "testharness" ], "selection/isCollapsed.html": [ @@ -206117,6 +212257,10 @@ "bd203d8878c4de59de476fe6fa7417bd2678dfcc", "testharness" ], + "selection/removeRange-expected.txt": [ + "97ec1164fdadc8db7737ad502dc2c9ed5ef7594a", + "support" + ], "selection/removeRange.html": [ "4a1ca00b32bca658f31bbff3f01a0d9154fb9779", "testharness" @@ -206141,8 +212285,32 @@ "01ae6e757d428800555012783e290ebba575bcab", "testharness" ], + "server-timing/resources/blue.png": [ + "7de5cdb5ad04ac365430b3b5f5ba01d2ba57ea23", + "support" + ], + "server-timing/resources/blue.png.sub.headers": [ + "d14ff7ce6dce67417c14192a89f4fe2d31c099a7", + "support" + ], + "server-timing/resources/green.png": [ + "ef91d21307a12b2cfaf33a90dffe16aa1cba42c9", + "support" + ], + "server-timing/resources/green.png.sub.headers": [ + "e2fca01ea5a9c31731a1d5c4199849bf728da892", + "support" + ], + "server-timing/test_server_timing.html": [ + "eab2a2be6984346d7fd83c8f3dcc99b2f3e09a08", + "testharness" + ], + "server-timing/test_server_timing.html.sub.headers": [ + "c49030e9c6dabb55bff24b633b6660212bd2ecca", + "support" + ], "service-workers/OWNERS": [ - "a41253fffa75a8aa9853bbc73c7107c94010f6a0", + "60cf1cd159aab93b711db350b6ee52e08e6cdf01", "support" ], "service-workers/cache-storage/common.https.html": [ @@ -206522,7 +212690,7 @@ "testharness" ], "service-workers/service-worker/client-navigate.https.html": [ - "e0c704605ec008a29662e1804d512284899ddd6f", + "c0403a4538bf063745a59f5848e30b13d1b3afc1", "testharness" ], "service-workers/service-worker/clients-get-client-types.https.html": [ @@ -206630,11 +212798,11 @@ "testharness" ], "service-workers/service-worker/fetch-event-async-respond-with.https.html": [ - "6ea721f98b2d145eeeb07b762901b9cfa1b51fbd", + "00c90429203c85ae8f10a6a6604cdf9619524f06", "testharness" ], "service-workers/service-worker/fetch-event-network-error.https.html": [ - "ee1cd2ed2c3204af53422116289c558f5eff68d9", + "07b81a0af207ee0723a9abae90e49482701f8935", "testharness" ], "service-workers/service-worker/fetch-event-redirect.https-expected.txt": [ @@ -206645,8 +212813,12 @@ "2a6f2d4f818ac325edd9c69c1b08801961728b20", "testharness" ], + "service-workers/service-worker/fetch-event-respond-with-argument.https.html": [ + "ce7e7cf76aace24a92d455cdb6b54fc9048960e8", + "testharness" + ], "service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html": [ - "2feaa5022ee31fb980f97075d932b0d87d6efe75", + "7d9e18d316c74f2b887f01a4576eb14b10d99b14", "testharness" ], "service-workers/service-worker/fetch-event-throws-after-respond-with.https.html": [ @@ -206666,11 +212838,11 @@ "testharness" ], "service-workers/service-worker/fetch-event.https-expected.txt": [ - "eacfa942f91037514c56d7d379897bd578aa2cfd", + "cf9a7058ac5946c1dd84596db1ac2f9c74f3e203", "support" ], "service-workers/service-worker/fetch-event.https.html": [ - "2b3d7086eb6733d81c7b06516721b655d853682d", + "9f991210c315a2d436f760b099a43871692c64c4", "testharness" ], "service-workers/service-worker/fetch-frame-resource.https.html": [ @@ -206682,11 +212854,11 @@ "testharness" ], "service-workers/service-worker/fetch-mixed-content-to-inscope.https.html": [ - "e3035bdf8cec65bb0322b5dfce10a3a827bd415e", + "c9bc425bca04f96866b14a2d89ae9dbfcc900d5a", "testharness" ], "service-workers/service-worker/fetch-mixed-content-to-outscope.https.html": [ - "45a83eeeb922301fc399a4808bb4d1014a541733", + "e48ab49326706532a754268211586f7a29f71ddb", "testharness" ], "service-workers/service-worker/fetch-request-css-base-url.https.html": [ @@ -206701,6 +212873,10 @@ "60dcb3a4c3b3ca2e79adfc7b779724cbe3ffa1c4", "testharness" ], + "service-workers/service-worker/fetch-request-html-imports.https.html": [ + "b854db3540539d20aa0bef0f869edabd0b8b4d47", + "testharness" + ], "service-workers/service-worker/fetch-request-no-freshness-headers.https.html": [ "9631947d3cec78547bd4666b8ca970d037648cc8", "testharness" @@ -206714,13 +212890,17 @@ "support" ], "service-workers/service-worker/fetch-request-resources.https.html": [ - "5ae2d1ae4eec846002635d6ff8d9d7c9a2aebd3f", + "cb072581704868845fe1ec57b3e7c70d53bac543", "testharness" ], "service-workers/service-worker/fetch-request-xhr.https.html": [ "840aafe30e5a0c8129c05e3b311084b8c00267a6", "testharness" ], + "service-workers/service-worker/fetch-response-taint.https.html": [ + "217383b4dddcc6f984c4cc7cd5f99e1f9b86cdd1", + "testharness" + ], "service-workers/service-worker/fetch-response-xhr.https.html": [ "6d50c69d78a1eb077108209b94fdf0efe540883d", "testharness" @@ -206750,7 +212930,19 @@ "testharness" ], "service-workers/service-worker/getregistrations.https.html": [ - "d76c66c08bd5c1addbdb149447f2268ac52ffcb2", + "15c2be991ec5b02a0aecf54e6c7bb455f240141d", + "testharness" + ], + "service-workers/service-worker/import-scripts-resource-map.https.html": [ + "6bc46467c667f942fd30de063806474e8c94cff0", + "testharness" + ], + "service-workers/service-worker/import-scripts-updated-flag.https-expected.txt": [ + "ad2763c9ca9eff1c4bd462256a63282e13ea378f", + "support" + ], + "service-workers/service-worker/import-scripts-updated-flag.https.html": [ + "e902940bec870cf548c576b5fd06d2e71fd3f97a", "testharness" ], "service-workers/service-worker/indexeddb.https.html": [ @@ -206766,7 +212958,7 @@ "testharness" ], "service-workers/service-worker/interfaces.https.html": [ - "9153cc6536203170ba8d2189d7646200a1ded72e", + "f5e18c249ad8264548923f3c875ffeff523ab424", "testharness" ], "service-workers/service-worker/invalid-blobtype.https.html": [ @@ -207017,10 +213209,6 @@ "7c49ce1c6170733033add6253a3f4a7e0483452e", "testharness" ], - "service-workers/service-worker/registration-useCache.https.html": [ - "73d662eafa93ca3dee4a4e5d34623cf069c2b8f8", - "testharness" - ], "service-workers/service-worker/registration.https-expected.txt": [ "36309067df5ff56185b6618affe450f7c298daaf", "support" @@ -207034,7 +213222,7 @@ "testharness" ], "service-workers/service-worker/request-end-to-end.https.html": [ - "0f7bee59205515c72ae6d4aa1f408e8414f9659a", + "e141f4daca379d95b8be9ebe16a2475a41f3c6f5", "testharness" ], "service-workers/service-worker/resource-timing.https-expected.txt": [ @@ -207086,7 +213274,7 @@ "support" ], "service-workers/service-worker/resources/client-navigate-worker.js": [ - "6b277e1dcde40babec32046f9e637a47830bf29b", + "876f60f8c7112cc0a7a2df2fe2b298a3c9504214", "support" ], "service-workers/service-worker/resources/client-navigated-frame.html": [ @@ -207237,12 +213425,20 @@ "f24007259baeab7e9a6932d35e0b2a5305b159a4", "support" ], + "service-workers/service-worker/resources/fetch-event-respond-with-argument-iframe.html": [ + "4a9d7e189909b5adfdd4d1c0ebddb7cd90fde159", + "support" + ], + "service-workers/service-worker/resources/fetch-event-respond-with-argument-worker.js": [ + "b58b92a145a89f71c414de5e837c1db026beb1d6", + "support" + ], "service-workers/service-worker/resources/fetch-event-respond-with-stops-propagation-worker.js": [ "900fd1c2080fbb386589f7d6ee52c49da9d4fcb8", "support" ], "service-workers/service-worker/resources/fetch-event-test-worker.js": [ - "ca79da139169762737411cb6cffb66b55b901d04", + "f9eab9a493f43ec5a8a662815a979e70fb3e3900", "support" ], "service-workers/service-worker/resources/fetch-event-within-sw-worker.js": [ @@ -207285,6 +213481,14 @@ "5195f7d76f6c77bd167c9192a0386c2f8b7863c1", "support" ], + "service-workers/service-worker/resources/fetch-request-html-imports-iframe.html": [ + "5828ad5fc04c9116419afe0ed02383b70b61c956", + "support" + ], + "service-workers/service-worker/resources/fetch-request-html-imports-worker.js": [ + "bb18b72ad06bf2ee179883e1e5df6cc8a9329d36", + "support" + ], "service-workers/service-worker/resources/fetch-request-no-freshness-headers-iframe.html": [ "6da48549aa02c25ffed99c9bdf3549e109f62e60", "support" @@ -207298,11 +213502,11 @@ "support" ], "service-workers/service-worker/resources/fetch-request-resources-iframe.https.html": [ - "0023475ba862c10277efb63a18275a79facdd9c2", + "95bcbc6a2f4560788f77fa717fa06d7d018d99c6", "support" ], "service-workers/service-worker/resources/fetch-request-resources-worker.js": [ - "db66bb2ec1cb1b70e1dddc50748ff134e623e401", + "4512140fe37ffd78086f54c6b0f6213675c0d74f", "support" ], "service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html": [ @@ -207313,6 +213517,10 @@ "fcbb50668ec1a3f7bdbd4331babda5b6e0295f2e", "support" ], + "service-workers/service-worker/resources/fetch-response-taint-iframe.html": [ + "ce934e0f8f0a77ce236053f17c57f22bc44e4c27", + "support" + ], "service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html": [ "8bef6d586f438fa912c7e40ac82a5aa73e05706a", "support" @@ -207365,6 +213573,22 @@ "7881cd81f7fe54bf3be799f3549098c78b896574", "support" ], + "service-workers/service-worker/resources/import-scripts-echo.py": [ + "95d29c9b8749cabf795d9a867e260827a8360640", + "support" + ], + "service-workers/service-worker/resources/import-scripts-resource-map-worker.js": [ + "bafc81b044c2a52f4ceefcd15a0b8b3c7553146e", + "support" + ], + "service-workers/service-worker/resources/import-scripts-updated-flag-worker.js": [ + "b83d48b7ed268293b4788e36bcd7293b1b15e751", + "support" + ], + "service-workers/service-worker/resources/import-scripts-version.py": [ + "1f508292f99f22a8b4105658ebdb9568d46d2004", + "support" + ], "service-workers/service-worker/resources/indexeddb-worker.js": [ "ed0ff45423ba74ad0b82e46debd865fdae2fbcb6", "support" @@ -207378,7 +213602,7 @@ "support" ], "service-workers/service-worker/resources/interfaces-worker.sub.js": [ - "67190b30c485fe743de1515fe5c593aad584fcb3", + "c94ee8dee0233f31c4f1577bf8b4bda5d2be2209", "support" ], "service-workers/service-worker/resources/interfaces.js": [ @@ -207641,14 +213865,6 @@ "cc8130f60240234fa216778dac70dd34fe4b2374", "support" ], - "service-workers/service-worker/resources/update-max-aged-worker-imported-script.py": [ - "23fa131d0d35e0e5394100b4bfaa5ebf1a349b4b", - "support" - ], - "service-workers/service-worker/resources/update-max-aged-worker.py": [ - "384ab2835ccb57316d59a911af57ba8638b26ad0", - "support" - ], "service-workers/service-worker/resources/update-nocookie-worker.py": [ "0790be63a2023cccf03f84b2e5c8f5daa7958dd0", "support" @@ -207714,11 +213930,11 @@ "testharness" ], "service-workers/service-worker/skip-waiting-installed.https.html": [ - "d668e51387bb680aeb0508a52f4fe73cbc56a552", + "8fb4d399affcfcc24b541e63390a94edf64bb771", "testharness" ], "service-workers/service-worker/skip-waiting-using-registration.https.html": [ - "3418673911e8c1424f67f5a6ff1f0370a9fa7e26", + "140a5a9c801c9d65a0fda0ea341fa00035fad1f8", "testharness" ], "service-workers/service-worker/skip-waiting-without-client.https.html": [ @@ -207726,11 +213942,11 @@ "testharness" ], "service-workers/service-worker/skip-waiting-without-using-registration.https.html": [ - "2460eb074582e031701732392dd9cfc8b771816a", + "fbae21429467d4a19b6020542460a3ad465def63", "testharness" ], "service-workers/service-worker/skip-waiting.https.html": [ - "4f00e2fbd9c5520cabcc019c68f7f1de50221cca", + "67ce73166e334af7658179373a6dbb8cdc48f230", "testharness" ], "service-workers/service-worker/state.https.html": [ @@ -208133,8 +214349,12 @@ "fa2864cbf8e88250a793beeacf737c7d9413cdf2", "testharness" ], + "shadow-dom/slots-fallback-in-document-expected.txt": [ + "df1bede4470827f16261fb3bc7ab913a2335fab6", + "support" + ], "shadow-dom/slots-fallback-in-document.html": [ - "75a8644216c1c9e3303e7d8ce622091443265f91", + "eac2fee4991725b4d2ca104a586c02d109b7d721", "testharness" ], "shadow-dom/slots-fallback.html": [ @@ -208481,10 +214701,6 @@ "bc28599cea839c13daf4739168f8c1ea42526050", "testharness" ], - "staticrange/idlharness-expected.txt": [ - "e522301af84363895b14bf2c9ca54c206a9ee3e7", - "support" - ], "staticrange/idlharness.html": [ "16f30a68d97edf19c5255328fd1460ac54a4c025", "testharness" @@ -208501,10 +214717,6 @@ "6e5db2d0c2f5d2d8f1e2d04da953a3f2c50bec7a", "testharness" ], - "storage/interfaces.https-expected.txt": [ - "9a8cf2bf1a59ee18acdb7207a0a8fb625ec4287c", - "support" - ], "storage/interfaces.https.html": [ "76fa61c3a87485266a7f9d6f66e5d08bb7881ff7", "testharness" @@ -208521,6 +214733,18 @@ "6ce5a9b14d80030f0adfa1808857294e8c923cb2", "testharness" ], + "storage/persist-permission-manual.https.html": [ + "6b7c0b9d5c8cee3922f6797dace85b441e5ea45c", + "manual" + ], + "storage/persisted-worker.https.html": [ + "87d7bf4c615b07b3fa701239fc1823826a054e80", + "testharness" + ], + "storage/persisted.https.html": [ + "98be04abdc48c76b30f90af007f214f9759083dd", + "testharness" + ], "storage/resources/storagemanager-persist-worker.js": [ "a9d24b2477938410371bae881a05a68cd56fe72e", "support" @@ -208533,6 +214757,10 @@ "660d3d068314c34d215df19c0b849ec711f57854", "support" ], + "storage/storage-persisted.js": [ + "dbf6e5bed3dec6ca59926c439ec9d6aca89d78b9", + "support" + ], "storage/storagemanager-estimate.https.html": [ "6319416d647f1671a7b8d36bbb4d79495e76a956", "testharness" @@ -209506,11 +215734,11 @@ "testharness" ], "svg/interfaces-expected.txt": [ - "10ee15299c71512ab720319784db50f62ac6c794", + "6e6a5e5a7d27f75d7fb8f99fcdc954212bc8b816", "support" ], "svg/interfaces.html": [ - "af04368e73b54ea570eba5fa483d3b1eeb462b17", + "0c355e7adc334d000991f4181d3bf254302eb915", "testharness" ], "svg/linking/reftests/href-a-element-attr-change.html": [ @@ -210013,6 +216241,114 @@ "4e49ff6d795fff54bc14069ab4f6f5fb5270f1c8", "testharness" ], + "url/README.md": [ + "165b2a70da8bc2a7df3fe424a540f36b4f7be899", + "support" + ], + "url/a-element-origin-xhtml.xhtml": [ + "56019fd2d3870324ba412e3e0c602bad3b90ef49", + "testharness" + ], + "url/a-element-origin.html": [ + "9e93740286ed4f6964b13861eedaf94705572d60", + "testharness" + ], + "url/a-element-origin.js": [ + "db3ac8253d1d877c49e365f89eea0ed1a5bad32e", + "support" + ], + "url/a-element-xhtml.xhtml": [ + "3c85e56094317c6babc96bdc187ee66ee4f040cd", + "testharness" + ], + "url/a-element.html": [ + "f1e6c1192c181236eb9bd32ead4f42338d020577", + "testharness" + ], + "url/a-element.js": [ + "cf3fd382286fe89570e68e0d90131db35e03e6ef", + "support" + ], + "url/failure.html": [ + "908456e354703473b0806bbdac6d60216505905f", + "testharness" + ], + "url/historical.any.js": [ + "89dd0f84e69896c802c7a2062c9f4846cdca98c6", + "testharness" + ], + "url/interfaces.html": [ + "25e16a1f57ab1acbb19a3b3acc77fccc3facf6cd", + "testharness" + ], + "url/setters_tests.json": [ + "6e388e46caf1a0259a6dc6778e7b33619e389751", + "support" + ], + "url/url-constructor.html": [ + "478523551e13b4066293fc2244972dd82b9bd87f", + "testharness" + ], + "url/url-origin.html": [ + "84a487b251a9f6dd320bf793050d1e43ae933ed9", + "testharness" + ], + "url/url-setters.html": [ + "f9746a232f2047deb0bf0b5a73376a69b0ec14e2", + "testharness" + ], + "url/url-tojson.html": [ + "d961e88b6976933599ec06b1a2b6da6f200c150b", + "testharness" + ], + "url/urlencoded-parser.html": [ + "4eb385fec2e8cbd3e65dbf36edb47a6f2beb0de8", + "testharness" + ], + "url/urlsearchparams-append.html": [ + "df184eb089b0e639b96e901b10179cc4051f887e", + "testharness" + ], + "url/urlsearchparams-constructor.html": [ + "854e06efa9598f66705605bdef20c4a500ab2e9b", + "testharness" + ], + "url/urlsearchparams-delete.html": [ + "eaeaab453fb90ba939c4dca0db11a07d50acce26", + "testharness" + ], + "url/urlsearchparams-foreach.html": [ + "5bdc17d623884a8916681f19df55c4bef5965ff2", + "testharness" + ], + "url/urlsearchparams-get.html": [ + "33ae86cc4d7ae13385f3501dbe309562ecf965e8", + "testharness" + ], + "url/urlsearchparams-getall.html": [ + "0d7b0ec7e984048ed87f2ea2967bac413a55858e", + "testharness" + ], + "url/urlsearchparams-has.html": [ + "149f1a71e64135460f627bfc569f93a0dae18d73", + "testharness" + ], + "url/urlsearchparams-set.html": [ + "2a540fed628b86c8a59766a83c57fbb3e73dd620", + "testharness" + ], + "url/urlsearchparams-sort.html": [ + "6a3904b5dada6b1e071b16529e75c6ce18ce45d6", + "testharness" + ], + "url/urlsearchparams-stringifier.html": [ + "cac1f9bb91c391110bccdab2d8faab43a9232040", + "testharness" + ], + "url/urltestdata.json": [ + "f99eff3fa00a813fc77deaee2d2c08a19df10af9", + "support" + ], "user-timing/clear_all_marks.any.js": [ "61961fe36a9d1f9492ad0d54ab46dbd95202bc84", "testharness" @@ -210041,10 +216377,6 @@ "bb08ac2ee06bc12e75cc44b76f06d3f0262f44ba", "testharness" ], - "user-timing/idlharness-expected.txt": [ - "b40603fa131e36bf00ca21384e0f7d5ed527bc22", - "support" - ], "user-timing/idlharness.html": [ "b24d4d5faf5df5d67135560d5fe362cc6d72c28f", "testharness" @@ -210074,7 +216406,7 @@ "testharness" ], "user-timing/measure.html": [ - "9b753ac314aabc2e4ec6aee7381b956e7f345b78", + "8374bbae73ac549b6c8b953d25948ed33b579591", "testharness" ], "user-timing/measure_exceptions_navigation_timing.html": [ @@ -210082,7 +216414,7 @@ "testharness" ], "user-timing/measure_navigation_timing.html": [ - "9bc61c9ae7d5c83f883270c98db6cd088bb0ecd2", + "b54bbb96f5c24b61e4d64a3633229781213d9cd2", "testharness" ], "user-timing/measure_syntax_err.any.js": [ @@ -210090,7 +216422,7 @@ "testharness" ], "user-timing/resources/webperftestharness.js": [ - "8b534ce21f036d46da0183bd36676c7b0a2f468d", + "b1f81236de54467168bd09d749c2a6f453c5c3e1", "support" ], "user-timing/resources/webperftestharnessextension.js": [ @@ -210101,6 +216433,62 @@ "b042938e492c9017402e07d3a551d503ec32fa91", "testharness" ], + "vibration/api-is-present.html": [ + "0c3c74860bfa27bcdc22a29fe97aa1459a05148f", + "testharness" + ], + "vibration/cancel-when-hidden-manual.html": [ + "919d3a12fe1ae0b518f7a69a50bd95aaf06c4cd5", + "manual" + ], + "vibration/cancel-with-0-manual.html": [ + "98eeadb226d27685907319f364ac4091a962d995", + "manual" + ], + "vibration/cancel-with-array-0-manual.html": [ + "64a3b25d44cfe5773254ebdc6e22705177fb1eef", + "manual" + ], + "vibration/cancel-with-empty-array-manual.html": [ + "c5cb3390f2ba8af94f4f35398caa29b8f3c7c852", + "manual" + ], + "vibration/cancel-with-new-manual.html": [ + "4efea60445ee5349e58077cc06184f95d8c969af", + "manual" + ], + "vibration/idl.html": [ + "3d0038cd553484f527c2642284cba84adabf5f22", + "testharness" + ], + "vibration/invalid-values.html": [ + "52dda7cccc18982483eaba6fd3e8d8ebcb4155fd", + "testharness" + ], + "vibration/pattern-array-extra-manual.html": [ + "48f43b7ddc69b0cedb1f3077212ec554c0d5a818", + "manual" + ], + "vibration/pattern-array-manual.html": [ + "cb86e49638093e65b0660982649733e96fa9c813", + "manual" + ], + "vibration/pattern-array-with-0-manual.html": [ + "ce0e6f0374c75ca7f6067fb837580ed850de30af", + "manual" + ], + "vibration/silent-ignore.html": [ + "bfa8b3fd032dcddf8b2fb6ea83d449b15c74b6fb", + "testharness" + ], + "vibration/simple-array-manual.html": [ + "ae52d64dfea4e39179595d565f86c6a3a0fae756", + "manual" + ], + "vibration/simple-scalar-manual.html": [ + "f6ae98a534bfc2d0b57ef11f8f1ebb3d72629c3c", + "manual" + ], "web-animations/README.md": [ "d6cb0e31dc3cc6d83b5051cee38a0b8e118fd43f", "support" @@ -210118,11 +216506,11 @@ "testharness" ], "web-animations/animation-model/animation-types/property-list.js": [ - "09135b91237467c4fbeeda3fd7b4d459a82ff4fb", + "2843e53e0bf500d529062dce14889693fdf9f58a", "support" ], "web-animations/animation-model/animation-types/property-types.js": [ - "ebccba780b163032d4aba54cdbbf1b892464bcfa", + "b42366e9ef71bc6671543a05a85a5b932b2e2e03", "support" ], "web-animations/animation-model/animation-types/spacing-keyframes-filters-expected.txt": [ @@ -210273,14 +216661,6 @@ "b23b76881f4d38c07710d0e59c1f6c8569de9060", "testharness" ], - "web-animations/interfaces/Animation/reverse-expected.txt": [ - "abbbb6575c1ffc212e0380c3da3831d0500e79a9", - "support" - ], - "web-animations/interfaces/Animation/reverse.html": [ - "669b8b6722a2eed4383574c3fab9738b9702d723", - "testharness" - ], "web-animations/interfaces/Animation/startTime-expected.txt": [ "86d25e2be39e0991d8730796c37b66bf4a71c058", "support" @@ -210341,10 +216721,6 @@ "2df691f77422d0e64833addf0c099e44f9afe051", "testharness" ], - "web-animations/interfaces/AnimationTimeline/idlharness-expected.txt": [ - "5600b65e314d99ac198bd037e8298c527be236c3", - "support" - ], "web-animations/interfaces/AnimationTimeline/idlharness.html": [ "d8c0e90499563d96ac9802632840f5333f61c8ac", "testharness" @@ -210529,6 +216905,10 @@ "2b4f51977d43f9bf90c066bfcc57728ae096b6e9", "testharness" ], + "web-animations/timing-model/animations/reversing-an-animation.html": [ + "2b5631893d0d0846e5e57097ce4ae54dfa8a03e3", + "testharness" + ], "web-animations/timing-model/animations/set-the-animation-start-time-expected.txt": [ "87e1f9a20eae0d6ac1a39e10ff6a8930f4dd39d3", "support" @@ -210609,10 +216989,6 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], - "webaudio/the-audio-api/the-audiobuffer-interface/idl-test-expected.txt": [ - "6b284b6fc0ff092c5dd764d94a1bdcddd53033de", - "support" - ], "webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html": [ "11ec68dec57c960cea256c28237715866c58ac84", "testharness" @@ -210629,10 +217005,6 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], - "webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt": [ - "cce26d82c4feb990b66939dfb9f16cbd7490f0a3", - "support" - ], "webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html": [ "74770d22caf02df7fb3cd3fb1e7499436e69cbed", "testharness" @@ -210717,10 +217089,6 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], - "webaudio/the-audio-api/the-delaynode-interface/idl-test-expected.txt": [ - "341ab52c6d3a9d417cc839b4333bed8e32d34e47", - "support" - ], "webaudio/the-audio-api/the-delaynode-interface/idl-test.html": [ "55a67c98908e18856e55c2e9437b63e8dc6feb94", "testharness" @@ -210737,10 +217105,6 @@ "823f7ae1a5f5eb0c630e7d1881c50a1f710f9350", "support" ], - "webaudio/the-audio-api/the-gainnode-interface/idl-test-expected.txt": [ - "d15b9ffd10f6ab972a87c33516dc5a60b833e374", - "support" - ], "webaudio/the-audio-api/the-gainnode-interface/idl-test.html": [ "35c753a641939795d00ec7ce1a55bfc74324a075", "testharness" @@ -210809,6 +217173,30 @@ "3c9dc0358862e39dfc3be1d80add650d028283bb", "testharness" ], + "webauthn/helpers.js": [ + "bc38559e447710f701bc5392b0d02704ae97e970", + "support" + ], + "webauthn/interfaces.https.html": [ + "5a30981934a38e09328a946352b21a8abc90851f", + "testharness" + ], + "webauthn/interfaces.idl": [ + "78cdd63fc1b0e3eff699976b67b72d46cf108ed2", + "support" + ], + "webauthn/makecredential-badargs-accountinformation.https.html": [ + "7f81446a152ab31223b79e3089eb29505a8b603d", + "testharness" + ], + "webauthn/makecredential-badargs-attestationchallenge.https.html": [ + "26fbc55b0c313be854ddd59469baf6dcdd5d21c6", + "testharness" + ], + "webauthn/makecredential-badargs-cryptoparameters.https.html": [ + "9e2cbb2a667cf57f979c3e67516fb63fedd18d46", + "testharness" + ], "webmessaging/Channel_postMessage_DataCloneErr.htm": [ "a62fdac80932ca059c8853ca9a9f8edd13926f86", "testharness" @@ -210941,8 +217329,12 @@ "19fc5d2f7e0f30e9d35a8606c3fb05b537ea3a82", "testharness" ], + "webmessaging/messageerror-expected.txt": [ + "653ee33be30702fad9a9561d4cd2d4e118b17007", + "support" + ], "webmessaging/messageerror.html": [ - "41894048fbd03504650033355cc7769132ef45ee", + "92c5359ad64394cb2d30402204968d49227c5daf", "testharness" ], "webmessaging/postMessage_ArrayBuffer.sub.htm": [ @@ -211233,6 +217625,10 @@ "7665873355c531e009824021a2b75daaf2dd6e3f", "testharness" ], + "webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt": [ + "6a8a8a37f23934a864d8480f3dfa39424240b843", + "support" + ], "webrtc/RTCConfiguration-iceCandidatePoolSize.html": [ "9551402aed448bf6abde4aa815d174ba321cc655", "testharness" @@ -211241,10 +217637,18 @@ "8a8b30a23abddb5d11a802fead534fd56aacbb62", "testharness" ], + "webrtc/RTCPeerConnection-canTrickleIceCandidates-expected.txt": [ + "2ac075fe0ee3b4c0da551ad770db34192b426e8a", + "support" + ], "webrtc/RTCPeerConnection-canTrickleIceCandidates.html": [ "0f585a89bd8f25aa8f83b6ec39b704cbb8e970b2", "testharness" ], + "webrtc/RTCPeerConnection-constructor-expected.txt": [ + "44d65542c6dfcfe15b83f88172da69acb6f8d953", + "support" + ], "webrtc/RTCPeerConnection-constructor.html": [ "54fff02eab02b0be84c945ec7e77afe722d9f988", "testharness" @@ -211257,16 +217661,28 @@ "4e46c66c535a49573a3400355dde79b63f7b95d6", "testharness" ], + "webrtc/RTCPeerConnection-iceGatheringState-expected.txt": [ + "6be33b9fb07075dfc81993ff1753e48a86f295b4", + "support" + ], "webrtc/RTCPeerConnection-iceGatheringState.html": [ "4f752838326116e65543a10e023a0cbe9c07e9e8", "testharness" ], + "webrtc/RTCPeerConnection-idl-expected.txt": [ + "a8578ee98585cababd679ff4569850e81bf439ee", + "support" + ], "webrtc/RTCPeerConnection-idl.html": [ "e322b3ab7f8e0bc7ff802f00234a9a6e80b8285a", "testharness" ], + "webrtc/RTCPeerConnection-setRemoteDescription-expected.txt": [ + "0d463daf158bf55234120da2d1115763080f513f", + "support" + ], "webrtc/RTCPeerConnection-setRemoteDescription.html": [ - "987ba908b798954a80cdfcfdab476ac0bf62cca0", + "ee89fd092059a4cc489536898d4a47a7bbbf36f2", "testharness" ], "webrtc/RTCPeerConnectionIceEvent-constructor.html": [ @@ -211281,14 +217697,26 @@ "56a37968e489d6ee39a1234ca888dd628f17648e", "testharness" ], + "webrtc/datachannel-idlharness-expected.txt": [ + "de46e2abe3f943b563dad21be3840eff49284d39", + "support" + ], "webrtc/datachannel-idlharness.html": [ "a1753a9a537a626775194ccc5dfdbf6829c5df35", "testharness" ], + "webrtc/getstats-expected.txt": [ + "2ee9ce522b2b7ab95a38abfc3394c7c503caf589", + "support" + ], "webrtc/getstats.html": [ "6656998d4adfab0e6ca51c98cd141cf162d3879c", "testharness" ], + "webrtc/interfaces.html": [ + "bd71316e6efddce47bb4cf3218b3133f8c69c3db", + "testharness" + ], "webrtc/no-media-call-expected.txt": [ "d38f866ce4a9b8f3410903cd7c1497006d93933b", "support" @@ -211313,6 +217741,930 @@ "ce76df05d5866807a4b58c9509ce66efcddaf3d7", "testharness" ], + "websockets/Close-1000-reason.htm": [ + "a3733fc46f0a5358cc8dbfd74d422e1a598bdf64", + "testharness" + ], + "websockets/Close-1000.htm": [ + "0069f2d11be01418818303b4b684b66286e19b66", + "testharness" + ], + "websockets/Close-Reason-124Bytes.htm": [ + "2e5cba512f7c5ee4555dcbddfb828aefcc59a833", + "testharness" + ], + "websockets/Close-reason-unpaired-surrogates.htm": [ + "ceb97248d6008bb64cfba83db29ebcc10e0d1342", + "testharness" + ], + "websockets/Close-undefined.htm": [ + "ba4e24f11a947545effc1b1f3dbf88596bae07ca", + "testharness" + ], + "websockets/Create-Secure-extensions-empty.htm": [ + "43b0888236645f21b9d6bb47de5084416a84e9c5", + "testharness" + ], + "websockets/Create-Secure-url-with-space.htm": [ + "efbd97dc88a100d175319ee25d2348a775d81c38", + "testharness" + ], + "websockets/Create-Secure-valid-url-array-protocols.htm": [ + "2d50bb602ad9d63e3861f20b3036bddbc26d8652", + "testharness" + ], + "websockets/Create-Secure-valid-url-binaryType-blob.htm": [ + "d21546210669e9dee52ef2ee6e061cb58ed71793", + "testharness" + ], + "websockets/Create-Secure-valid-url-protocol-setCorrectly.htm": [ + "dc29257cc894ac0dca51274f2e3b4907f479709c", + "testharness" + ], + "websockets/Create-Secure-valid-url-protocol-string.htm": [ + "a75a612744e1dee1f880f6742fc911bcd479fa0a", + "testharness" + ], + "websockets/Create-Secure-valid-url.htm": [ + "38b96b5067655fd49e8ccba22ef3e9ba7781bc9c", + "testharness" + ], + "websockets/Create-Secure-verify-url-set-non-default-port.htm": [ + "42c638cfe0a02d34bb7280f0f3a046f9a86bcfc5", + "testharness" + ], + "websockets/Create-asciiSep-protocol-string.htm": [ + "36b2fb2c3e2f7592ef4c3ab0494bf89e514235ac", + "testharness" + ], + "websockets/Create-blocked-port.htm": [ + "7a385334740d92171f8a07dc63f7b43e7588160b", + "testharness" + ], + "websockets/Create-invalid-urls.htm": [ + "f5e8116cf1aafc7f307031c8eae3bca22017eb09", + "testharness" + ], + "websockets/Create-non-absolute-url.htm": [ + "f3255ca1da5c8e81c37e658cb2dc83e1a7dc2e63", + "testharness" + ], + "websockets/Create-nonAscii-protocol-string.htm": [ + "f556c52a5ba7370dfd94f57331d606b147b0932f", + "testharness" + ], + "websockets/Create-protocol-with-space.htm": [ + "923fd2681d86812d63347f995f91747ebec18a44", + "testharness" + ], + "websockets/Create-protocols-repeated-case-insensitive.htm": [ + "55a3dbf713cf45900f8af2e9c9bc2f41bb447141", + "testharness" + ], + "websockets/Create-protocols-repeated.htm": [ + "3c5bfbf4d7f15cdbb59c23d445478779756d0446", + "testharness" + ], + "websockets/Create-valid-url-array-protocols.htm": [ + "35ce12e805210326787f541c14ec51e05a690b14", + "testharness" + ], + "websockets/Create-valid-url-protocol-empty.htm": [ + "73f7c09d0ece2e04dc58fb7a7393d29cbfe0ea43", + "testharness" + ], + "websockets/Create-valid-url-protocol.htm": [ + "46072d6def631dd1ea02fb9c9ea2e3055fef030c", + "testharness" + ], + "websockets/Create-valid-url.htm": [ + "3e2100b411287b23ac1482042c41e38589258b7d", + "testharness" + ], + "websockets/Create-verify-url-set-non-default-port.htm": [ + "db720152509ca6e887861253bea84c0d4df26cfc", + "testharness" + ], + "websockets/Create-wrong-scheme.htm": [ + "a09b10dacf5cd94470b976b8129c63d76d554295", + "testharness" + ], + "websockets/README.md": [ + "1b8473c8d482b7628fc7337e263c78aca7ca5088", + "support" + ], + "websockets/Secure-Close-1000-reason.htm": [ + "efdaaff2b022593bb07ed84ff5908577ede569a7", + "testharness" + ], + "websockets/Secure-Close-1000-verify-code.htm": [ + "eae076f962a5cbd9486f5fbd789e312c4e5a3d2e", + "testharness" + ], + "websockets/Secure-Close-1000.htm": [ + "eab6ab47671ee679a0a44347a6fcf3f3549b7b94", + "testharness" + ], + "websockets/Secure-Close-1005-verify-code.htm": [ + "fb6c2597b519a20b35c0dd2c3f029389be6532a9", + "testharness" + ], + "websockets/Secure-Close-1005.htm": [ + "adb8d72ce31891ebca7c11f61692dd4f39339e92", + "testharness" + ], + "websockets/Secure-Close-2999-reason.htm": [ + "43c67789e3c68bc900411146a143219effb315bb", + "testharness" + ], + "websockets/Secure-Close-3000-reason.htm": [ + "0695a3ebc6c672938cbce1f789a0513ee6db568f", + "testharness" + ], + "websockets/Secure-Close-3000-verify-code.htm": [ + "feb82aba92cdaa40609259f1187d71ace00ab5af", + "testharness" + ], + "websockets/Secure-Close-4999-reason.htm": [ + "0b1951f1f1cf9c8cb60a55046c45ffdff556c081", + "testharness" + ], + "websockets/Secure-Close-Reason-124Bytes.htm": [ + "c53e247ed528f3cec25b8848260f0e7eaa643716", + "testharness" + ], + "websockets/Secure-Close-Reason-Unpaired-surrogates.htm": [ + "49b47b4ced20884680a8628ad9b357a66019fe96", + "testharness" + ], + "websockets/Secure-Close-onlyReason.htm": [ + "41c7c1faa23830c808f5f99768cabb30ec4edc53", + "testharness" + ], + "websockets/Secure-Close-readyState-Closed.htm": [ + "052c9bb606637edc33e59ba9fa3e67deaf5e74e5", + "testharness" + ], + "websockets/Secure-Close-readyState-Closing.htm": [ + "35704eaf42480235c09ba2bae0e34f8d733682b5", + "testharness" + ], + "websockets/Secure-Close-server-initiated-close.htm": [ + "b5937b68def472531f56b35d960734ce1b27d392", + "testharness" + ], + "websockets/Secure-Close-undefined.htm": [ + "d512819928be3394d94ac6d912e53937068b0f75", + "testharness" + ], + "websockets/Secure-Send-65K-data.htm": [ + "feb8e310899761a838be2629d5e7292da0a25c83", + "testharness" + ], + "websockets/Secure-Send-binary-65K-arraybuffer.htm": [ + "2cc593f16e1d0d7be2e294417b77d7859179632f", + "testharness" + ], + "websockets/Secure-Send-binary-arraybuffer.htm": [ + "78fb09f9b69bde01f34dae580488c7dc9f33af88", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-float32.htm": [ + "758da1119fc55fbe9429898b95097248c3c700ee", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-float64.htm": [ + "fa78032fd2927ec8f15cdc2fb62d41eb1b67dbe6", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-int32.htm": [ + "072b01fd222c48e764516c92813a4a2761d0bc12", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm": [ + "dc11615983d4284daa42ee8abbc7816102d4c466", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm": [ + "8fc6f7bc526a39fde7185659531c572a278e8549", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm": [ + "a2e88d419ce9fc3bfc068a5f08e63c19757ff4d8", + "testharness" + ], + "websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm": [ + "077a984a831b2ac1e671211a08a99e0e50629c39", + "testharness" + ], + "websockets/Secure-Send-binary-blob.htm": [ + "dcc7c4adac3cfb7e970011669665fc160bfa20c5", + "testharness" + ], + "websockets/Secure-Send-data.htm": [ + "11ea2e974c8783690f647056043539c707896062", + "testharness" + ], + "websockets/Secure-Send-null.htm": [ + "8836b74fd5560ddc2de107f39f3a55c9ae872c58", + "testharness" + ], + "websockets/Secure-Send-paired-surrogates.htm": [ + "cf37fc5bb12a0d5cccfb93f052db9244c27a425a", + "testharness" + ], + "websockets/Secure-Send-unicode-data.htm": [ + "f47a23c0b4ef9282e4186a57b42837bb2f5a072b", + "testharness" + ], + "websockets/Secure-Send-unpaired-surrogates.htm": [ + "42bae64815bac37b3af91cb069fa91e3a4ad4dde", + "testharness" + ], + "websockets/Send-0byte-data.htm": [ + "f9d31c7341f80323a6f3a45c50447fde5db3bccd", + "testharness" + ], + "websockets/Send-65K-data.htm": [ + "e4b64f085429773f757c02a3fd6e1a740929a411", + "testharness" + ], + "websockets/Send-Unpaired-Surrogates.htm": [ + "8a589aac896c1354ffb056b77542a407128bf560", + "testharness" + ], + "websockets/Send-before-open.htm": [ + "5fa9343d7b7378e496f18097748f0d268090b166", + "testharness" + ], + "websockets/Send-binary-65K-arraybuffer.htm": [ + "f45db48ab7d94c96b997628b5a431d1d992c98ac", + "testharness" + ], + "websockets/Send-binary-arraybuffer.htm": [ + "7f1337c564d41a4a0208bed137128a3ee0796047", + "testharness" + ], + "websockets/Send-binary-arraybufferview-int16-offset.htm": [ + "13dc817a45a97179bd155720d826d3d7dd683762", + "testharness" + ], + "websockets/Send-binary-arraybufferview-int8.htm": [ + "b1c1938fceea9f8e56848b67af0279028e97e1be", + "testharness" + ], + "websockets/Send-binary-blob.htm": [ + "2f225979d20881e5e8a7be665d439b320e2c631e", + "testharness" + ], + "websockets/Send-data.htm": [ + "564e6c8508b2eda5b194d5b901f2db12991894a9", + "testharness" + ], + "websockets/Send-data.worker.js": [ + "15e48679dd7355ad5d0a3abe3e21ec12494f804d", + "testharness" + ], + "websockets/Send-null.htm": [ + "aaea5803d872e01e9eda000a888dc601296798b8", + "testharness" + ], + "websockets/Send-paired-surrogates.htm": [ + "d01ddc6f6a84a97a32af15661385d316b42d6e05", + "testharness" + ], + "websockets/Send-unicode-data.htm": [ + "4dc9fad1832c1057a6818a71c458bf340bc2afb2", + "testharness" + ], + "websockets/binary/001.html": [ + "127d6a587adf6dd3cfd9dd96ad80dfad5afdeea3", + "testharness" + ], + "websockets/binary/002.html": [ + "904a6d9ac64b24a9b4b4e3ebc268a3f8d20726b2", + "testharness" + ], + "websockets/binary/004.html": [ + "8f6fa94cd40f4dd937e8e7e44d09bec4eb86d8ae", + "testharness" + ], + "websockets/binary/005.html": [ + "ead8c6611c8dedcd913f6021d457c2452ce0c793", + "testharness" + ], + "websockets/binaryType-wrong-value.htm": [ + "6873fe9127b4b5100f228e5821cfc41735906429", + "testharness" + ], + "websockets/close-invalid.any.js": [ + "d50557d4578f2d96080748315dcc8ffc7d6b7485", + "testharness" + ], + "websockets/closing-handshake/002.html": [ + "5b6e5f3f0b31a6eeaded1a137516405fa69ef8ec", + "testharness" + ], + "websockets/closing-handshake/003.html": [ + "942d33a4e56537421f1a54044a49882e7e7671fe", + "testharness" + ], + "websockets/closing-handshake/004.html": [ + "c9453f90be53c38d7b4a4e8aa8e8040d2d6f8ab9", + "testharness" + ], + "websockets/constants.js": [ + "d1aff62046b7ade8beb6bb762adc3a7871b3c71f", + "support" + ], + "websockets/constructor.html": [ + "d3b167c749ee22dbc935e0eaf5d65c2c488d3808", + "testharness" + ], + "websockets/constructor/001.html": [ + "04a3ceb6f0f0ee9cc8e58b298a9c086faf432fcd", + "testharness" + ], + "websockets/constructor/002.html": [ + "4288a4cfc4ae73afb9b93b2c2c8e05c182a6a5e1", + "testharness" + ], + "websockets/constructor/004.html": [ + "4d2986bb16eb72796627a6552461d80c29c444e4", + "testharness" + ], + "websockets/constructor/005.html": [ + "f53573d7362675c0ed4c9b52c857bad183a2d5f7", + "testharness" + ], + "websockets/constructor/006.html": [ + "1eb12c5646a800f1f69890991a9bd03b94afc998", + "testharness" + ], + "websockets/constructor/007.html": [ + "ebcf8a13064f433f567180b8cab79206ca19007a", + "testharness" + ], + "websockets/constructor/008.html": [ + "f57613b6ba8a7d56e0905fe77f2784a5f0f9ff24", + "testharness" + ], + "websockets/constructor/009.html": [ + "6375dd0856f08e24759951e5f0eec7bda1c41ea7", + "testharness" + ], + "websockets/constructor/010.html": [ + "c0c6f54f8c9290e6fbf8a1ddf22e6a1362ef586d", + "testharness" + ], + "websockets/constructor/011.html": [ + "60f0ca813c13a6003a3f376ffbddd38a8a7a6f98", + "testharness" + ], + "websockets/constructor/012.html": [ + "355a6c6ce54a84d75cec17d62a337ea0f98934e9", + "testharness" + ], + "websockets/constructor/013.html": [ + "bac0dc89e73a158b1a07b514646fd8be5a83da14", + "testharness" + ], + "websockets/constructor/014.html": [ + "13b62c474c2b1f2604cc1f65a13c3ae6705200df", + "testharness" + ], + "websockets/constructor/016.html": [ + "471adc2727ec28b9120e4f0ad22d4d2b845b6128", + "testharness" + ], + "websockets/constructor/017.html": [ + "41f717f7c3d080394d0889bc6d04f805dad87872", + "testharness" + ], + "websockets/constructor/018.html": [ + "43651cb19bd505cac4f47c21637fe03fa7517f50", + "testharness" + ], + "websockets/constructor/019.html": [ + "7a782cdb6acd101d7ab83dc10fad6e85a3689341", + "testharness" + ], + "websockets/constructor/020.html": [ + "a65f1aa9d316b72de66b722cf8e5fc06cebceb5b", + "testharness" + ], + "websockets/constructor/021.html": [ + "c6dca1babe148801793bb0dfbc35594ed8af4054", + "testharness" + ], + "websockets/constructor/022.html": [ + "7326a722a1b47f611c920ecd7e1ee1d6e6a5d0aa", + "testharness" + ], + "websockets/cookies/001.html": [ + "677a47c39a4b25fccc65f0d1bdfe2a90e98230d4", + "testharness" + ], + "websockets/cookies/002.html": [ + "e424609e5847011d2728530e472a2f8890781981", + "testharness" + ], + "websockets/cookies/003.html": [ + "f8a37f2350cce1c72fd2e5e4a6134bc487230e43", + "testharness" + ], + "websockets/cookies/004.html": [ + "d16b80545db418cf5e1feaaaf6585c1458c28e57", + "testharness" + ], + "websockets/cookies/005.html": [ + "6cb3b01be1541d1ae112f47bff27d7c154e3b99b", + "testharness" + ], + "websockets/cookies/006.html": [ + "676deb52c3b881fe96e12198a7f068d1392f63cf", + "testharness" + ], + "websockets/cookies/007.html": [ + "f6c909514090e36b756bdf2f04302b282dd4f50b", + "testharness" + ], + "websockets/cookies/support/set-cookie.py": [ + "4975c1735e1140a7528056c954c34a63227c3180", + "support" + ], + "websockets/eventhandlers.html": [ + "430d1e421f7a6b66ea924d922c69184edebffa7c", + "testharness" + ], + "websockets/extended-payload-length.html": [ + "13fe0096aeb23c249d41fb6dcafafeab1d319fc3", + "testharness" + ], + "websockets/handlers/echo-cookie_wsh.py": [ + "af25163add710a6dc87f40d7ef7e75ba056543d4", + "support" + ], + "websockets/handlers/echo-query_v13_wsh.py": [ + "4470992bce9e4e37f211f3a09d9cbd02cc4d5bd5", + "support" + ], + "websockets/handlers/echo-query_wsh.py": [ + "5b2dc7f7c15a6302159f83aff2304a4bc41da257", + "support" + ], + "websockets/handlers/echo_close_data_wsh.py": [ + "16a060418f69009accbad9412ca0a4ecef39962a", + "support" + ], + "websockets/handlers/echo_exit_wsh.py": [ + "c2c2cdae87d3b5f248a9e725806e55978d6c5b89", + "support" + ], + "websockets/handlers/echo_raw_wsh.py": [ + "01f12a280b6c5f5adfbdd02fff481c269a3b53cf", + "support" + ], + "websockets/handlers/echo_wsh.py": [ + "60b5cf207d3ccf566bb131897e86fb55f3a5a9bd", + "support" + ], + "websockets/handlers/empty-message_wsh.py": [ + "c0a0cff8432b590e07dfe583d71741d6cbd1844c", + "support" + ], + "websockets/handlers/handshake_no_protocol_wsh.py": [ + "402a157415d4a230fb74e37514b04e9a50e7acba", + "support" + ], + "websockets/handlers/handshake_protocol_wsh.py": [ + "d2bd6907be6dbf38e0f00352ea2f822f70cf8feb", + "support" + ], + "websockets/handlers/handshake_sleep_2_wsh.py": [ + "27cd83457ab10624c547242da7a59eee96b14cf8", + "support" + ], + "websockets/handlers/invalid_wsh.py": [ + "63ae697719d99764265d6b08d25f5fd4cd54a282", + "support" + ], + "websockets/handlers/origin_wsh.py": [ + "8902e32ac93447d12195fdd3a24e883173b42295", + "support" + ], + "websockets/handlers/protocol_array_wsh.py": [ + "8a0022cc80a4bf2c6d84a114e6602cdd7bc6928f", + "support" + ], + "websockets/handlers/protocol_wsh.py": [ + "b9faa29fb3d2bff4a373f0baf3b9c1e95b091f26", + "support" + ], + "websockets/handlers/set-cookie-secure_wsh.py": [ + "dcddb4ac3db1cdd74c39cd4f28d0498165d2e0aa", + "support" + ], + "websockets/handlers/set-cookie_http_wsh.py": [ + "9705c2e131a8b4c597f43b3677b06752a273cba4", + "support" + ], + "websockets/handlers/set-cookie_wsh.py": [ + "0c7c1a301abc149af3773fbec4c6fac4ff76e38e", + "support" + ], + "websockets/handlers/simple_handshake_wsh.py": [ + "505e18342ef95441f71868b9ef7ce275b38dfe6f", + "support" + ], + "websockets/handlers/sleep_10_v13_wsh.py": [ + "535fb27b2390171ec32577162cdeb331d94f06b6", + "support" + ], + "websockets/handlers/stash_responder_wsh.py": [ + "ccb39515d6c1076ce7645350627d1a976eb7b6f5", + "support" + ], + "websockets/handlers/wrong_accept_key_wsh.py": [ + "2f6a2cac69311e917cd52a40d942e1a422ea1ea6", + "support" + ], + "websockets/interfaces/CloseEvent/clean-close.html": [ + "9340da7ccf1f8ba5170258449332f6d90ea13db9", + "testharness" + ], + "websockets/interfaces/CloseEvent/constructor.html": [ + "ae9cb7462639dc7005b476449cd791eceeb408d0", + "testharness" + ], + "websockets/interfaces/CloseEvent/historical.html": [ + "56c581fc5664f4248d86e0c6c38d462c0e21c699", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html": [ + "1d4a66b40fe01794ddb7657963b26585e6bdbb4e", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html": [ + "1c13273c8c121d283401d4dc1b30679956d1115a", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html": [ + "466630e990131ebf0b1cd5df8f992a40e52eb6f2", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html": [ + "94b39458e66d79a34c5460eb77e7d2cd06dfe2c0", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html": [ + "b80b0aeaf6f75b9449602d996c7e801864ff3438", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html": [ + "b33e529d71e52a9b8760a335490d2cd4c2f15487", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html": [ + "1f30a1b5dd4b6b506c2428de6ed126efeaa13fc5", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html": [ + "6f3bb19d8a64467bad54a0379315738d4b4a6e2e", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html": [ + "d7bccf22f58fa29005b22107d1d5861b105f080c", + "testharness" + ], + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html": [ + "29d71f289b096480c74668855cfd1a744e96d763", + "testharness" + ], + "websockets/interfaces/WebSocket/close/close-basic.html": [ + "7b66ec99cd13c7a919fceab5e4254d1e33250874", + "testharness" + ], + "websockets/interfaces/WebSocket/close/close-connecting.html": [ + "74319c41269f449f54f2405705c84a908d5609c9", + "testharness" + ], + "websockets/interfaces/WebSocket/close/close-multiple.html": [ + "9b58c23715dbfb53f5a3a8a8d00fc176976cc94c", + "testharness" + ], + "websockets/interfaces/WebSocket/close/close-nested.html": [ + "a9e476bfe195cee756dd8da46f88924116757afe", + "testharness" + ], + "websockets/interfaces/WebSocket/close/close-replace.html": [ + "f97a87a3dc08346a4f5443fc1a6b50b2ab85e840", + "testharness" + ], + "websockets/interfaces/WebSocket/close/close-return.html": [ + "b1f87e7e898559bec64ee7438ed421bfbe54885b", + "testharness" + ], + "websockets/interfaces/WebSocket/constants/001.html": [ + "51090c4ef3a3d6227095a6b10243f47ee2921a9b", + "testharness" + ], + "websockets/interfaces/WebSocket/constants/002.html": [ + "94b4186ebfd0e587a98181c4fc14bff19f8a48b7", + "testharness" + ], + "websockets/interfaces/WebSocket/constants/003.html": [ + "4bc1005a0094277f91607327551a52ce980fbeab", + "testharness" + ], + "websockets/interfaces/WebSocket/constants/004.html": [ + "fcd09d1a2939e3f8f30831d5a8de2ad57b6c2b6a", + "testharness" + ], + "websockets/interfaces/WebSocket/constants/005.html": [ + "8384ab15e572c9ac41e46b9ca93bbdc875777e86", + "testharness" + ], + "websockets/interfaces/WebSocket/constants/006.html": [ + "d6afc2b56a254c19aabf11d910c19e4c1655dc21", + "testharness" + ], + "websockets/interfaces/WebSocket/events/001.html": [ + "cfc6fc5b3050aa7206234790c2925ce81303037f", + "testharness" + ], + "websockets/interfaces/WebSocket/events/002.html": [ + "cab4d96879c125e66d1c1a4f555191591dee2b70", + "testharness" + ], + "websockets/interfaces/WebSocket/events/003.html": [ + "53f23f50038691a76cea6d1ded8214607e917fc9", + "testharness" + ], + "websockets/interfaces/WebSocket/events/004.html": [ + "49e3aa8d2b578e21b16081248432047033b63dad", + "testharness" + ], + "websockets/interfaces/WebSocket/events/006.html": [ + "0293f6c4135df8a515dc281cd1e3f4d11e1af03f", + "testharness" + ], + "websockets/interfaces/WebSocket/events/007.html": [ + "e43b82e7b54c6fe5bd14a404d2fa57417f952ddf", + "testharness" + ], + "websockets/interfaces/WebSocket/events/008.html": [ + "160c6c1dfdb88cb369b01ec649035b04d9e14d3c", + "testharness" + ], + "websockets/interfaces/WebSocket/events/009.html": [ + "a62e49426dfc7984f5d6ee55466e345dbb8b5a05", + "testharness" + ], + "websockets/interfaces/WebSocket/events/010.html": [ + "4535c1224cd19b260f05b8ea53496f3bc9c6a71b", + "testharness" + ], + "websockets/interfaces/WebSocket/events/011.html": [ + "096891432c3dcbebe295aa30df9ef0d519e0bc74", + "testharness" + ], + "websockets/interfaces/WebSocket/events/012.html": [ + "3b62aef340efe8e598e2d4d4a481cb46c50b115e", + "testharness" + ], + "websockets/interfaces/WebSocket/events/013.html": [ + "5915630992a26cb55b570f25bc10a8147ce970e5", + "testharness" + ], + "websockets/interfaces/WebSocket/events/014.html": [ + "c52fc8cd54de45b20513caba4f71bb763f20dfa8", + "testharness" + ], + "websockets/interfaces/WebSocket/events/015.html": [ + "ec6d2d3c769f84b66fdab6e3504402f29ee475a9", + "testharness" + ], + "websockets/interfaces/WebSocket/events/016.html": [ + "0d5d64a9700f6bb72ea2c62d1f9368dfda24ab54", + "testharness" + ], + "websockets/interfaces/WebSocket/events/017.html": [ + "f3b141f588248e6cb257095c6297135bd6eb5b8e", + "testharness" + ], + "websockets/interfaces/WebSocket/events/018.html": [ + "858bd4937109754a3cd6d96ce098d6b23da1a619", + "testharness" + ], + "websockets/interfaces/WebSocket/events/019.html": [ + "69c3f71c1f01bd5fe68bcc42e51233ade5f5cd53", + "testharness" + ], + "websockets/interfaces/WebSocket/events/020.html": [ + "3f61fc525df3f6005bd373410bebbac46c3227f7", + "testharness" + ], + "websockets/interfaces/WebSocket/extensions/001.html": [ + "dbb8875cd70afed7bf533d8fe963aca52fe6f2e5", + "testharness" + ], + "websockets/interfaces/WebSocket/protocol/protocol-initial.html": [ + "adeb123d6d1fc06f85ff0a4a387b479148927e89", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/001.html": [ + "155bcee2312b200099c18a7aaa7b08d685bc9c1b", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/002.html": [ + "33c9eded70c36a50d05c72ce9806862aa91d270c", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/003.html": [ + "e41609436a7a4de147e48dfc8a9b0261f23a665b", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/004.html": [ + "da71ca7b7aa2aed5995365530764c8d13f6fe655", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/005.html": [ + "02f0cde93ac2fe000b30b80b3179f20dce633c07", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/006.html": [ + "66e54e302771b62d7ea41b250667e5ba4240f278", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/007.html": [ + "f98baa8fcdc7be984dc06c758f0db24f6e01e4f0", + "testharness" + ], + "websockets/interfaces/WebSocket/readyState/008.html": [ + "2f6b015fd73c9bfb647c919b1ca0eeea081b448f", + "testharness" + ], + "websockets/interfaces/WebSocket/send/001.html": [ + "da336c8d3344864cc435d44bdd6d1f4ef8d5fc9a", + "testharness" + ], + "websockets/interfaces/WebSocket/send/002.html": [ + "db5a416b53cfc3b5441bdd4cb4ee8b4f7e4f3099", + "testharness" + ], + "websockets/interfaces/WebSocket/send/003.html": [ + "79ba49c7dd438944fda8ec7efdf1d31675577141", + "testharness" + ], + "websockets/interfaces/WebSocket/send/004.html": [ + "035d1d172d49a471e38e195e7a2147d18364ed2e", + "testharness" + ], + "websockets/interfaces/WebSocket/send/005.html": [ + "f26ed4f1ca75788757173d9c5b380593ea43ad56", + "testharness" + ], + "websockets/interfaces/WebSocket/send/006.html": [ + "4084131e0225184084fb31ed16fa6b411ead6f16", + "testharness" + ], + "websockets/interfaces/WebSocket/send/007.html": [ + "a856dd0bc5c955c9b79c337a973b5868b882b48d", + "testharness" + ], + "websockets/interfaces/WebSocket/send/008.html": [ + "76e56c0de7ec28916ee8d953321fa60dd06a4108", + "testharness" + ], + "websockets/interfaces/WebSocket/send/009.html": [ + "2a6959894d31e4ca151822f5835fa3df7ea0e1fe", + "testharness" + ], + "websockets/interfaces/WebSocket/send/010.html": [ + "d6ef67502ffc5cb04ca3e97f490d6dddbdab7832", + "testharness" + ], + "websockets/interfaces/WebSocket/send/011.html": [ + "b2c0eca5b7ba85a2af31a6ab2fb9a1d202d2d052", + "testharness" + ], + "websockets/interfaces/WebSocket/send/012.html": [ + "483329f82e11bdb58409555c7c4c5cac3b559d49", + "testharness" + ], + "websockets/interfaces/WebSocket/url/001.html": [ + "a0a8787841aad8914354b51ec2ae1813d29ad761", + "testharness" + ], + "websockets/interfaces/WebSocket/url/002.html": [ + "07023a0c4ab0d33e48533544d09ec388ba7bf818", + "testharness" + ], + "websockets/interfaces/WebSocket/url/003.html": [ + "9f651fcbf3a96fda4ac6fdb9bbf7b89382ffcdcf", + "testharness" + ], + "websockets/interfaces/WebSocket/url/004.html": [ + "c38822d26a5e083cea019aec3424799ee4a7700f", + "testharness" + ], + "websockets/interfaces/WebSocket/url/005.html": [ + "7cdff7df864f782896add6fa7b17f54934c10ffc", + "testharness" + ], + "websockets/interfaces/WebSocket/url/006.html": [ + "0a2c31ddd2e15c207d9f9805dd84f01cbc1cf319", + "testharness" + ], + "websockets/interfaces/WebSocket/url/resolve.html": [ + "a5f79ff7857cf5f1ff722f1787cc2cedaa0da8b1", + "testharness" + ], + "websockets/keeping-connection-open/001.html": [ + "029f933714a7e2215ee54ce7cd0f6a1f0df403d6", + "testharness" + ], + "websockets/multi-globals/message-received.html": [ + "9b865062fdf1c96bac2b7b707130ef5fcbaf52ac", + "testharness" + ], + "websockets/multi-globals/support/incumbent.sub.html": [ + "8a183b27fd0171b80e812769b819b4e810d6ef96", + "support" + ], + "websockets/multi-globals/support/relevant.html": [ + "38946a76b98b46be5edf2031a16c3c4cfb4caab1", + "support" + ], + "websockets/opening-handshake/001.html": [ + "9e09154a0b784fb2449c5e96b2f867579fec677b", + "testharness" + ], + "websockets/opening-handshake/002.html": [ + "febd63b81e9f1be92381a7b286a8e14bc46166af", + "testharness" + ], + "websockets/opening-handshake/003-sets-origin.worker.js": [ + "b5a23172a68b23ac5ec5384b6c3a96c1b9ec0a20", + "testharness" + ], + "websockets/opening-handshake/003.html": [ + "e42909561f03341ab160dddb541fc27842ab79cc", + "testharness" + ], + "websockets/opening-handshake/005.html": [ + "bf330ce240331f39f78a34f638119d5f7b434347", + "testharness" + ], + "websockets/security/001.html": [ + "4de87e1c2660aa70754059971045ca86a6417ae5", + "testharness" + ], + "websockets/security/002.html": [ + "51e56fc8ceac3be2107872900c1930b1f5bd60da", + "testharness" + ], + "websockets/security/check.py": [ + "cc1a6f0c2659e3ca18a7dd487bde3eb4fe0d15b2", + "support" + ], + "websockets/unload-a-document/001-1.html": [ + "5388c58ec7f586a8c79da8955ea25ff0350a08ff", + "support" + ], + "websockets/unload-a-document/001.html": [ + "bcfd6cdc6b9dc497c3828fe0a77f1db3676be495", + "testharness" + ], + "websockets/unload-a-document/002-1.html": [ + "284ca768f294b0716ada9f2936f3862e075388c2", + "support" + ], + "websockets/unload-a-document/002.html": [ + "f39414dbf15f502f6be82324bbf389e75532cb6b", + "testharness" + ], + "websockets/unload-a-document/003.html": [ + "3d1861da30072c3e73f9f1e656f836b8cec7c150", + "testharness" + ], + "websockets/unload-a-document/004.html": [ + "a70ee20ff039315f7bcfd1ece1b54705d3479b5c", + "testharness" + ], + "websockets/unload-a-document/005-1.html": [ + "e887d64a40f838ffcf0179d1ad7631f7c5821320", + "support" + ], + "websockets/unload-a-document/005.html": [ + "19ea73ca1bd94adbf9205a511df6deedaa071b33", + "testharness" + ], + "websockets/websocket.sub.js": [ + "c62b0a641a1ac5487932ed1d79979c52d5f32f45", + "support" + ], "webstorage/OWNERS": [ "e831e24e141c3e6e8dc8232a1a0ee0f580356400", "support" @@ -211434,7 +218786,7 @@ "support" ], "webstorage/idlharness-expected.txt": [ - "9f33c851c39bff4d5a895075fcfe44dc91514d5e", + "be40f6fe8536914417a1e65756c540c36f7e25ee", "support" ], "webstorage/idlharness.html": [ @@ -211585,6 +218937,10 @@ "19fd5ede17b9c7e9d234e855eb7dd7fe343bc73e", "testharness" ], + "webusb/OWNERS": [ + "8ea92f4cb8f9ba417745337ecb38e4a8615f50d5", + "support" + ], "webusb/idlharness-expected.txt": [ "782c531643c47df8f225ca54eae57f1c7e7d72b4", "support" @@ -211594,7 +218950,7 @@ "testharness" ], "webvr/idlharness-expected.txt": [ - "c0960e8c78266a7a6fe49a91c963f393b04dd060", + "57556d1b78db42d2bfd8582376d4c200b1c9ebe4", "support" ], "webvr/idlharness.html": [ @@ -211734,7 +219090,7 @@ "support" ], "webvtt/api/interfaces-expected.txt": [ - "ae4ac09131979fe00e079bea72219691626dac16", + "951b9aa58e48d30f53e964ba0c98589e4a25b73e", "support" ], "webvtt/api/interfaces.html": [ @@ -214438,7 +221794,7 @@ "reftest" ], "workers/OWNERS": [ - "a41253fffa75a8aa9853bbc73c7107c94010f6a0", + "b0b1d8b5f995ce1f7aefd1ce9b454b7b398b578f", "support" ], "workers/README.md": [
diff --git a/third_party/WebKit/LayoutTests/external/wpt/README.md b/third_party/WebKit/LayoutTests/external/wpt/README.md index 266d4ec..33aa2dd 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/README.md +++ b/third_party/WebKit/LayoutTests/external/wpt/README.md
@@ -228,16 +228,16 @@ The lint tool is also run automatically for every submitted pull request, and reviewers will not merge branches with tests that have -lint errors, so you must fix any errors the lint tool reports. For -details on doing that, see the [lint-tool documentation][lint-tool]. +lint errors, so you must fix any errors the lint tool reports. -But in the unusual case of error reports for things essential to a +In the unusual case of error reports for things essential to a certain test or that for other exceptional reasons shouldn't prevent a merge of a test, update and commit the `lint.whitelist` file in the -web-platform-tests root directory to suppress the error reports. For -details on doing that, see the [lint-tool documentation][lint-tool]. +web-platform-tests root directory to suppress the error reports. -[lint-tool]: https://github.com/w3c/web-platform-tests/blob/master/docs/lint-tool.md +For more details, see the [lint-tool documentation][lint-tool]. + +[lint-tool]: http://web-platform-tests.org/writing-tests/lint-tool.html Adding command-line scripts ("tools" subdirs) --------------------------------------------- @@ -305,5 +305,5 @@ Documentation ============= -* [How to write and review tests](http://testthewebforward.org/docs/) +* [How to write and review tests](http://web-platform-tests.org/) * [Documentation for the wptserve server](http://wptserve.readthedocs.org/en/latest/)
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt deleted file mode 100644 index 5733e0b5..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: deriveBits() Using ECDH Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html deleted file mode 100644 index a1890382..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: deriveBits() Using ECDH</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-deriveBits"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="ecdh_bits.js"></script> - -<h1>deriveBits Tests for ECDH</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt deleted file mode 100644 index 93148818..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI:deriveKey() Using ECDH Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html deleted file mode 100644 index b303295f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI:deriveKey() Using ECDH</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-deriveKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="ecdh_keys.js"></script> - -<h1>deriveKey Tests for ECDH</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt deleted file mode 100644 index 68096e6..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt +++ /dev/null
@@ -1,3712 +0,0 @@ -This is a testharness.js-based test. -Found 3708 tests; 144 PASS, 3564 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-384, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-384, with normal info with missing salt -PASS short derivedKey, normal salt, SHA-384, with normal info with missing info -PASS short derivedKey, normal salt, SHA-384, with normal info with null length -FAIL short derivedKey, normal salt, SHA-384, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-384, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-384, with empty info with missing salt -PASS short derivedKey, normal salt, SHA-384, with empty info with missing info -PASS short derivedKey, normal salt, SHA-384, with empty info with null length -FAIL short derivedKey, normal salt, SHA-384, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-512, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-512, with normal info with missing salt -PASS short derivedKey, normal salt, SHA-512, with normal info with missing info -PASS short derivedKey, normal salt, SHA-512, with normal info with null length -FAIL short derivedKey, normal salt, SHA-512, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-512, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-512, with empty info with missing salt -PASS short derivedKey, normal salt, SHA-512, with empty info with missing info -PASS short derivedKey, normal salt, SHA-512, with empty info with null length -FAIL short derivedKey, normal salt, SHA-512, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-1, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-1, with normal info with missing salt -PASS short derivedKey, normal salt, SHA-1, with normal info with missing info -PASS short derivedKey, normal salt, SHA-1, with normal info with null length -FAIL short derivedKey, normal salt, SHA-1, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-1, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-1, with empty info with missing salt -PASS short derivedKey, normal salt, SHA-1, with empty info with missing info -PASS short derivedKey, normal salt, SHA-1, with empty info with null length -FAIL short derivedKey, normal salt, SHA-1, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-256, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-256, with normal info with missing salt -PASS short derivedKey, normal salt, SHA-256, with normal info with missing info -PASS short derivedKey, normal salt, SHA-256, with normal info with null length -FAIL short derivedKey, normal salt, SHA-256, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, normal salt, SHA-256, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, normal salt, SHA-256, with empty info with missing salt -PASS short derivedKey, normal salt, SHA-256, with empty info with missing info -PASS short derivedKey, normal salt, SHA-256, with empty info with null length -FAIL short derivedKey, normal salt, SHA-256, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, normal salt, PBKDF2, with normal info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, normal salt, PBKDF2, with empty info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-384, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-384, with normal info with missing salt -PASS short derivedKey, empty salt, SHA-384, with normal info with missing info -PASS short derivedKey, empty salt, SHA-384, with normal info with null length -FAIL short derivedKey, empty salt, SHA-384, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-384, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-384, with empty info with missing salt -PASS short derivedKey, empty salt, SHA-384, with empty info with missing info -PASS short derivedKey, empty salt, SHA-384, with empty info with null length -FAIL short derivedKey, empty salt, SHA-384, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-512, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-512, with normal info with missing salt -PASS short derivedKey, empty salt, SHA-512, with normal info with missing info -PASS short derivedKey, empty salt, SHA-512, with normal info with null length -FAIL short derivedKey, empty salt, SHA-512, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-512, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-512, with empty info with missing salt -PASS short derivedKey, empty salt, SHA-512, with empty info with missing info -PASS short derivedKey, empty salt, SHA-512, with empty info with null length -FAIL short derivedKey, empty salt, SHA-512, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-1, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-1, with normal info with missing salt -PASS short derivedKey, empty salt, SHA-1, with normal info with missing info -PASS short derivedKey, empty salt, SHA-1, with normal info with null length -FAIL short derivedKey, empty salt, SHA-1, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-1, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-1, with empty info with missing salt -PASS short derivedKey, empty salt, SHA-1, with empty info with missing info -PASS short derivedKey, empty salt, SHA-1, with empty info with null length -FAIL short derivedKey, empty salt, SHA-1, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-256, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-256, with normal info with missing salt -PASS short derivedKey, empty salt, SHA-256, with normal info with missing info -PASS short derivedKey, empty salt, SHA-256, with normal info with null length -FAIL short derivedKey, empty salt, SHA-256, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL short derivedKey, empty salt, SHA-256, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS short derivedKey, empty salt, SHA-256, with empty info with missing salt -PASS short derivedKey, empty salt, SHA-256, with empty info with missing info -PASS short derivedKey, empty salt, SHA-256, with empty info with null length -FAIL short derivedKey, empty salt, SHA-256, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short derivedKey, empty salt, PBKDF2, with normal info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short derivedKey, empty salt, PBKDF2, with empty info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-384, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-384, with normal info with missing salt -PASS long derivedKey, normal salt, SHA-384, with normal info with missing info -PASS long derivedKey, normal salt, SHA-384, with normal info with null length -FAIL long derivedKey, normal salt, SHA-384, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-384, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-384, with empty info with missing salt -PASS long derivedKey, normal salt, SHA-384, with empty info with missing info -PASS long derivedKey, normal salt, SHA-384, with empty info with null length -FAIL long derivedKey, normal salt, SHA-384, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-512, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-512, with normal info with missing salt -PASS long derivedKey, normal salt, SHA-512, with normal info with missing info -PASS long derivedKey, normal salt, SHA-512, with normal info with null length -FAIL long derivedKey, normal salt, SHA-512, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-512, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-512, with empty info with missing salt -PASS long derivedKey, normal salt, SHA-512, with empty info with missing info -PASS long derivedKey, normal salt, SHA-512, with empty info with null length -FAIL long derivedKey, normal salt, SHA-512, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-1, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-1, with normal info with missing salt -PASS long derivedKey, normal salt, SHA-1, with normal info with missing info -PASS long derivedKey, normal salt, SHA-1, with normal info with null length -FAIL long derivedKey, normal salt, SHA-1, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-1, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-1, with empty info with missing salt -PASS long derivedKey, normal salt, SHA-1, with empty info with missing info -PASS long derivedKey, normal salt, SHA-1, with empty info with null length -FAIL long derivedKey, normal salt, SHA-1, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-256, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-256, with normal info with missing salt -PASS long derivedKey, normal salt, SHA-256, with normal info with missing info -PASS long derivedKey, normal salt, SHA-256, with normal info with null length -FAIL long derivedKey, normal salt, SHA-256, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, normal salt, SHA-256, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, normal salt, SHA-256, with empty info with missing salt -PASS long derivedKey, normal salt, SHA-256, with empty info with missing info -PASS long derivedKey, normal salt, SHA-256, with empty info with null length -FAIL long derivedKey, normal salt, SHA-256, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, normal salt, PBKDF2, with normal info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, normal salt, PBKDF2, with empty info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-384, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-384, with normal info with missing salt -PASS long derivedKey, empty salt, SHA-384, with normal info with missing info -PASS long derivedKey, empty salt, SHA-384, with normal info with null length -FAIL long derivedKey, empty salt, SHA-384, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-384, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-384, with empty info with missing salt -PASS long derivedKey, empty salt, SHA-384, with empty info with missing info -PASS long derivedKey, empty salt, SHA-384, with empty info with null length -FAIL long derivedKey, empty salt, SHA-384, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-512, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-512, with normal info with missing salt -PASS long derivedKey, empty salt, SHA-512, with normal info with missing info -PASS long derivedKey, empty salt, SHA-512, with normal info with null length -FAIL long derivedKey, empty salt, SHA-512, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-512, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-512, with empty info with missing salt -PASS long derivedKey, empty salt, SHA-512, with empty info with missing info -PASS long derivedKey, empty salt, SHA-512, with empty info with null length -FAIL long derivedKey, empty salt, SHA-512, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-1, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-1, with normal info with missing salt -PASS long derivedKey, empty salt, SHA-1, with normal info with missing info -PASS long derivedKey, empty salt, SHA-1, with normal info with null length -FAIL long derivedKey, empty salt, SHA-1, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-1, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-1, with empty info with missing salt -PASS long derivedKey, empty salt, SHA-1, with empty info with missing info -PASS long derivedKey, empty salt, SHA-1, with empty info with null length -FAIL long derivedKey, empty salt, SHA-1, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-256, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-256, with normal info with missing salt -PASS long derivedKey, empty salt, SHA-256, with normal info with missing info -PASS long derivedKey, empty salt, SHA-256, with normal info with null length -FAIL long derivedKey, empty salt, SHA-256, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL long derivedKey, empty salt, SHA-256, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS long derivedKey, empty salt, SHA-256, with empty info with missing salt -PASS long derivedKey, empty salt, SHA-256, with empty info with missing info -PASS long derivedKey, empty salt, SHA-256, with empty info with null length -FAIL long derivedKey, empty salt, SHA-256, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long derivedKey, empty salt, PBKDF2, with normal info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long derivedKey, empty salt, PBKDF2, with empty info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-384, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-384, with normal info with missing salt -PASS empty derivedKey, normal salt, SHA-384, with normal info with missing info -PASS empty derivedKey, normal salt, SHA-384, with normal info with null length -FAIL empty derivedKey, normal salt, SHA-384, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-384, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-384, with empty info with missing salt -PASS empty derivedKey, normal salt, SHA-384, with empty info with missing info -PASS empty derivedKey, normal salt, SHA-384, with empty info with null length -FAIL empty derivedKey, normal salt, SHA-384, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-512, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-512, with normal info with missing salt -PASS empty derivedKey, normal salt, SHA-512, with normal info with missing info -PASS empty derivedKey, normal salt, SHA-512, with normal info with null length -FAIL empty derivedKey, normal salt, SHA-512, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-512, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-512, with empty info with missing salt -PASS empty derivedKey, normal salt, SHA-512, with empty info with missing info -PASS empty derivedKey, normal salt, SHA-512, with empty info with null length -FAIL empty derivedKey, normal salt, SHA-512, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-1, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-1, with normal info with missing salt -PASS empty derivedKey, normal salt, SHA-1, with normal info with missing info -PASS empty derivedKey, normal salt, SHA-1, with normal info with null length -FAIL empty derivedKey, normal salt, SHA-1, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-1, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-1, with empty info with missing salt -PASS empty derivedKey, normal salt, SHA-1, with empty info with missing info -PASS empty derivedKey, normal salt, SHA-1, with empty info with null length -FAIL empty derivedKey, normal salt, SHA-1, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-256, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-256, with normal info with missing salt -PASS empty derivedKey, normal salt, SHA-256, with normal info with missing info -PASS empty derivedKey, normal salt, SHA-256, with normal info with null length -FAIL empty derivedKey, normal salt, SHA-256, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, normal salt, SHA-256, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, normal salt, SHA-256, with empty info with missing salt -PASS empty derivedKey, normal salt, SHA-256, with empty info with missing info -PASS empty derivedKey, normal salt, SHA-256, with empty info with null length -FAIL empty derivedKey, normal salt, SHA-256, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, normal salt, PBKDF2, with normal info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, normal salt, PBKDF2, with empty info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, normal salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-384, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-384, with normal info with missing salt -PASS empty derivedKey, empty salt, SHA-384, with normal info with missing info -PASS empty derivedKey, empty salt, SHA-384, with normal info with null length -FAIL empty derivedKey, empty salt, SHA-384, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with normal info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-384, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-384, with empty info with missing salt -PASS empty derivedKey, empty salt, SHA-384, with empty info with missing info -PASS empty derivedKey, empty salt, SHA-384, with empty info with null length -FAIL empty derivedKey, empty salt, SHA-384, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with empty info with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-384, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-512, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-512, with normal info with missing salt -PASS empty derivedKey, empty salt, SHA-512, with normal info with missing info -PASS empty derivedKey, empty salt, SHA-512, with normal info with null length -FAIL empty derivedKey, empty salt, SHA-512, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with normal info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-512, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-512, with empty info with missing salt -PASS empty derivedKey, empty salt, SHA-512, with empty info with missing info -PASS empty derivedKey, empty salt, SHA-512, with empty info with null length -FAIL empty derivedKey, empty salt, SHA-512, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with empty info with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-512, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-1, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-1, with normal info with missing salt -PASS empty derivedKey, empty salt, SHA-1, with normal info with missing info -PASS empty derivedKey, empty salt, SHA-1, with normal info with null length -FAIL empty derivedKey, empty salt, SHA-1, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with normal info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-1, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-1, with empty info with missing salt -PASS empty derivedKey, empty salt, SHA-1, with empty info with missing info -PASS empty derivedKey, empty salt, SHA-1, with empty info with null length -FAIL empty derivedKey, empty salt, SHA-1, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with empty info with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-1, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-256, with normal info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-256, with normal info with missing salt -PASS empty derivedKey, empty salt, SHA-256, with normal info with missing info -PASS empty derivedKey, empty salt, SHA-256, with normal info with null length -FAIL empty derivedKey, empty salt, SHA-256, with normal info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with normal info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with normal info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with normal info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL empty derivedKey, empty salt, SHA-256, with empty info with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -PASS empty derivedKey, empty salt, SHA-256, with empty info with missing salt -PASS empty derivedKey, empty salt, SHA-256, with empty info with missing info -PASS empty derivedKey, empty salt, SHA-256, with empty info with null length -FAIL empty derivedKey, empty salt, SHA-256, with empty info with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with empty info with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with empty info with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, SHA-256, with empty info with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty derivedKey, empty salt, PBKDF2, with normal info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, PBKDF2, with normal info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty derivedKey, empty salt, PBKDF2, with empty info with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty derivedKey, empty salt, PBKDF2, with empty info assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf.html deleted file mode 100644 index 23143bdbc8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_hkdf.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: deriveBits() and deriveKey() Using HKDF</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-deriveBits"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-deriveKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="hkdf_vectors.js"></script> -<script src="hkdf.js"></script> - -<h1>deriveBits and deriveKey Tests for HKDF</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt deleted file mode 100644 index f545493..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt +++ /dev/null
@@ -1,8743 +0,0 @@ -This is a testharness.js-based test. -Found 8739 tests; 0 PASS, 8739 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, short salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, short salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, short salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, long salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, long salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, long salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL short password, empty salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL short password, empty salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL short password, empty salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using short password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, short salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, short salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, short salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, long salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, long salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, long salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL long password, empty salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL long password, empty salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL long password, empty salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using long password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, short salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, short salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, short salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, short salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, long salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, long salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, long salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, long salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations with bad hash name SHA384 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-384, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-384, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations with bad hash name SHA512 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-512, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-512, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations with bad hash name SHA1 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-1, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-1, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 1000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveBits failed with error TypeError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations assert_unreached: deriveKey failed with error TypeError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. Reached unreachable code -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveKey with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with missing deriveKey usage assert_equals: deriveKey with missing deriveKey usage correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveKey with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations with null length assert_equals: deriveBits with null length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations with 0 length assert_equals: deriveBits with 0 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations with non-multiple of 8 length assert_equals: deriveBits with non-multiple of 8 length correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations with bad hash name SHA256 assert_equals: deriveBits with bad hash name correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations with missing deriveBits usage assert_equals: deriveBits with missing deriveBits usage correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 100000 iterations with wrong (ECDH) key assert_equals: deriveBits with wrong (ECDH) key correctly threw InvalidAccessError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "InvalidAccessError" but got "TypeError" -FAIL empty password, empty salt, SHA-256, with 0 iterations assert_equals: deriveBits with 0 iterations correctly threw OperationError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, SHA-256, with 0 iterations assert_equals: derivekey with 0 iterations correctly threw OperationError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "OperationError" but got "TypeError" -FAIL empty password, empty salt, PBKDF2, with 1 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, PBKDF2, with 1 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, PBKDF2, with 1000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, PBKDF2, with 1000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL empty password, empty salt, PBKDF2, with 100000 iterations with non-digest algorithm PBKDF2 assert_equals: deriveBits with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveBits' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 128 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 192 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CBC length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 128 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 192 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-CTR length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 128 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 192 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-GCM length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 128 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 192 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: AES-KW length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-1 length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-256 length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-384 length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -FAIL Derived key of type name: HMAC hash: SHA-512 length: 256 using empty password, empty salt, PBKDF2, with 100000 iterations assert_equals: derivekey with non-digest algorithm correctly threw NotSupportedError: Failed to execute 'deriveKey' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'. expected "NotSupportedError" but got "TypeError" -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html deleted file mode 100644 index 0658b1a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: deriveBits() and deriveKey() Using PBKDF2</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-deriveBits"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-deriveKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="pbkdf2_vectors.js"></script> -<script src="pbkdf2.js"></script> - -<h1>deriveBits and deriveKey Tests for PBKDF2</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/digest/test_digest-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/digest/test_digest-expected.txt deleted file mode 100644 index cb90610..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/digest/test_digest-expected.txt +++ /dev/null
@@ -1,84 +0,0 @@ -This is a testharness.js-based test. -Found 80 tests; 0 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL SHA-1 with empty source data Cannot read property 'digest' of undefined -FAIL sha-1 with empty source data Cannot read property 'digest' of undefined -FAIL Sha-1 with empty source data Cannot read property 'digest' of undefined -FAIL SHA-1 with empty source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-256 with empty source data Cannot read property 'digest' of undefined -FAIL sha-256 with empty source data Cannot read property 'digest' of undefined -FAIL Sha-256 with empty source data Cannot read property 'digest' of undefined -FAIL SHA-256 with empty source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-384 with empty source data Cannot read property 'digest' of undefined -FAIL sha-384 with empty source data Cannot read property 'digest' of undefined -FAIL Sha-384 with empty source data Cannot read property 'digest' of undefined -FAIL SHA-384 with empty source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-512 with empty source data Cannot read property 'digest' of undefined -FAIL sha-512 with empty source data Cannot read property 'digest' of undefined -FAIL Sha-512 with empty source data Cannot read property 'digest' of undefined -FAIL SHA-512 with empty source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-1 with short source data Cannot read property 'digest' of undefined -FAIL sha-1 with short source data Cannot read property 'digest' of undefined -FAIL Sha-1 with short source data Cannot read property 'digest' of undefined -FAIL SHA-1 with short source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-256 with short source data Cannot read property 'digest' of undefined -FAIL sha-256 with short source data Cannot read property 'digest' of undefined -FAIL Sha-256 with short source data Cannot read property 'digest' of undefined -FAIL SHA-256 with short source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-384 with short source data Cannot read property 'digest' of undefined -FAIL sha-384 with short source data Cannot read property 'digest' of undefined -FAIL Sha-384 with short source data Cannot read property 'digest' of undefined -FAIL SHA-384 with short source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-512 with short source data Cannot read property 'digest' of undefined -FAIL sha-512 with short source data Cannot read property 'digest' of undefined -FAIL Sha-512 with short source data Cannot read property 'digest' of undefined -FAIL SHA-512 with short source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-1 with medium source data Cannot read property 'digest' of undefined -FAIL sha-1 with medium source data Cannot read property 'digest' of undefined -FAIL Sha-1 with medium source data Cannot read property 'digest' of undefined -FAIL SHA-1 with medium source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-256 with medium source data Cannot read property 'digest' of undefined -FAIL sha-256 with medium source data Cannot read property 'digest' of undefined -FAIL Sha-256 with medium source data Cannot read property 'digest' of undefined -FAIL SHA-256 with medium source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-384 with medium source data Cannot read property 'digest' of undefined -FAIL sha-384 with medium source data Cannot read property 'digest' of undefined -FAIL Sha-384 with medium source data Cannot read property 'digest' of undefined -FAIL SHA-384 with medium source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-512 with medium source data Cannot read property 'digest' of undefined -FAIL sha-512 with medium source data Cannot read property 'digest' of undefined -FAIL Sha-512 with medium source data Cannot read property 'digest' of undefined -FAIL SHA-512 with medium source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-1 with long source data Cannot read property 'digest' of undefined -FAIL sha-1 with long source data Cannot read property 'digest' of undefined -FAIL Sha-1 with long source data Cannot read property 'digest' of undefined -FAIL SHA-1 with long source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-256 with long source data Cannot read property 'digest' of undefined -FAIL sha-256 with long source data Cannot read property 'digest' of undefined -FAIL Sha-256 with long source data Cannot read property 'digest' of undefined -FAIL SHA-256 with long source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-384 with long source data Cannot read property 'digest' of undefined -FAIL sha-384 with long source data Cannot read property 'digest' of undefined -FAIL Sha-384 with long source data Cannot read property 'digest' of undefined -FAIL SHA-384 with long source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL SHA-512 with long source data Cannot read property 'digest' of undefined -FAIL sha-512 with long source data Cannot read property 'digest' of undefined -FAIL Sha-512 with long source data Cannot read property 'digest' of undefined -FAIL SHA-512 with long source data and altered buffer after call Cannot read property 'digest' of undefined -FAIL AES-GCM with empty Cannot read property 'digest' of undefined -FAIL RSA-OAEP with empty Cannot read property 'digest' of undefined -FAIL PBKDF2 with empty Cannot read property 'digest' of undefined -FAIL AES-KW with empty Cannot read property 'digest' of undefined -FAIL AES-GCM with short Cannot read property 'digest' of undefined -FAIL RSA-OAEP with short Cannot read property 'digest' of undefined -FAIL PBKDF2 with short Cannot read property 'digest' of undefined -FAIL AES-KW with short Cannot read property 'digest' of undefined -FAIL AES-GCM with medium Cannot read property 'digest' of undefined -FAIL RSA-OAEP with medium Cannot read property 'digest' of undefined -FAIL PBKDF2 with medium Cannot read property 'digest' of undefined -FAIL AES-KW with medium Cannot read property 'digest' of undefined -FAIL AES-GCM with long Cannot read property 'digest' of undefined -FAIL RSA-OAEP with long Cannot read property 'digest' of undefined -FAIL PBKDF2 with long Cannot read property 'digest' of undefined -FAIL AES-KW with long Cannot read property 'digest' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/digest/test_digest.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/digest/test_digest.html deleted file mode 100644 index e6e7aab..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/digest/test_digest.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: digest()</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#dfn-SubtleCrypto-method-digest"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="digest.js"></script> - -<h1>encrypt Tests for digest method</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt deleted file mode 100644 index acaf858f8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: encrypt() Using AES-CBC Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html deleted file mode 100644 index 7a2805d3..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: encrypt() Using AES-CBC</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-encrypt"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="aes_cbc_vectors.js"></script> -<script src="aes.js"></script> - -<h1>encrypt Tests for AES-CBC</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt deleted file mode 100644 index fe841be..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: encrypt() Using AES-CTR Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html deleted file mode 100644 index a48dfd3f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: encrypt() Using AES-CTR</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-encrypt"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="aes_ctr_vectors.js"></script> -<script src="aes.js"></script> - -<h1>encrypt Tests for AES-CTR</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt deleted file mode 100644 index 9cb67f8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: encrypt() Using AES-GCM Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html deleted file mode 100644 index 9f8b8bd..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: encrypt() Using AES-GCM</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-encrypt"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="aes_gcm_vectors.js"></script> -<script src="aes.js"></script> - -<h1>encrypt Tests for AES-GCM</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt deleted file mode 100644 index 1fd97bb..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: encrypt() Using RSA-OAEP Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html deleted file mode 100644 index df8d8f4..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: encrypt() Using RSA-OAEP</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-encrypt"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="rsa_vectors.js"></script> -<script src="rsa.js"></script> - -<h1>encrypt Tests for RSA-OAEP</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt deleted file mode 100644 index ff38b1b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt +++ /dev/null
@@ -1,292 +0,0 @@ -This is a testharness.js-based test. -Found 288 tests; 0 PASS, 288 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-cbc.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-cbc.html deleted file mode 100644 index a3054a5..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-cbc.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test("AES-CBC"); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt deleted file mode 100644 index 88aec1e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt +++ /dev/null
@@ -1,292 +0,0 @@ -This is a testharness.js-based test. -Found 288 tests; 0 PASS, 288 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-ctr.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-ctr.html deleted file mode 100644 index bb1abf0d..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_aes-ctr.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test("AES-CTR"); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures-expected.txt deleted file mode 100644 index 3356c8f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures-expected.txt +++ /dev/null
@@ -1,2372 +0,0 @@ -This is a testharness.js-based test. -Found 2368 tests; 0 PASS, 2368 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures.html deleted file mode 100644 index 14e57b2..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt deleted file mode 100644 index 28a2bf53f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt +++ /dev/null
@@ -1,742 +0,0 @@ -This is a testharness.js-based test. -Found 738 tests; 0 PASS, 738 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CBC.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CBC.html deleted file mode 100644 index 7650908c..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CBC.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["AES-CBC"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt deleted file mode 100644 index 417c1a4..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt +++ /dev/null
@@ -1,742 +0,0 @@ -This is a testharness.js-based test. -Found 738 tests; 0 PASS, 738 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CTR.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CTR.html deleted file mode 100644 index f08737c..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-CTR.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["AES-CTR"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt deleted file mode 100644 index 374f314..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt +++ /dev/null
@@ -1,742 +0,0 @@ -This is a testharness.js-based test. -Found 738 tests; 0 PASS, 738 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-GCM.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-GCM.html deleted file mode 100644 index 4ef6a777..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-GCM.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["AES-GCM"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt deleted file mode 100644 index 2eca11a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt +++ /dev/null
@@ -1,484 +0,0 @@ -This is a testharness.js-based test. -Found 480 tests; 0 PASS, 480 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 128, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 192, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-KW}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({length: 256, name: AES-KW}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-KW.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-KW.html deleted file mode 100644 index 7cbb4f8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_AES-KW.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["AES-KW"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt deleted file mode 100644 index 7242951..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt +++ /dev/null
@@ -1,444 +0,0 @@ -This is a testharness.js-based test. -Found 440 tests; 0 PASS, 440 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDH.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDH.html deleted file mode 100644 index c606a5b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDH.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["ECDH"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt deleted file mode 100644 index fbb4291..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt +++ /dev/null
@@ -1,422 +0,0 @@ -This is a testharness.js-based test. -Found 418 tests; 0 PASS, 418 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDSA.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDSA.html deleted file mode 100644 index 8b742e8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_ECDSA.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["ECDSA"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt deleted file mode 100644 index a2b49b32..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt +++ /dev/null
@@ -1,456 +0,0 @@ -This is a testharness.js-based test. -Found 452 tests; 0 PASS, 452 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_HMAC.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_HMAC.html deleted file mode 100644 index e037f0d..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_HMAC.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["HMAC"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt deleted file mode 100644 index 517efc1f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt +++ /dev/null
@@ -1,500 +0,0 @@ -This is a testharness.js-based test. -Found 496 tests; 0 PASS, 496 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html deleted file mode 100644 index ddd63beb..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["RSA-OAEP"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt deleted file mode 100644 index 465c02d..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt +++ /dev/null
@@ -1,396 +0,0 @@ -This is a testharness.js-based test. -Found 392 tests; 0 PASS, 392 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html deleted file mode 100644 index 2814b34..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["RSA-PSS"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt deleted file mode 100644 index 15f4f84..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt +++ /dev/null
@@ -1,396 +0,0 @@ -This is a testharness.js-based test. -Found 392 tests; 0 PASS, 392 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Bad algorithm: generateKey(AES, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) Cannot read property 'generateKey' of undefined -FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html deleted file mode 100644 index 0e28914..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html +++ /dev/null
@@ -1,18 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() for Failures</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="failures.js"></script> - -<h1>generateKey Tests for Bad Parameters</h1> - -<div id="log"></div> -<script> -run_test(["RSASSA-PKCS1-v1_5"]); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes-expected.txt deleted file mode 100644 index 0cb1849..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes-expected.txt +++ /dev/null
@@ -1,1390 +0,0 @@ -This is a testharness.js-based test. -Found 1386 tests; 0 PASS, 1386 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes.html deleted file mode 100644 index 384db1c..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt deleted file mode 100644 index ff38b1b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt +++ /dev/null
@@ -1,292 +0,0 @@ -This is a testharness.js-based test. -Found 288 tests; 0 PASS, 288 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CBC.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CBC.html deleted file mode 100644 index af80935..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CBC.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["AES-CBC"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt deleted file mode 100644 index 88aec1e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt +++ /dev/null
@@ -1,292 +0,0 @@ -This is a testharness.js-based test. -Found 288 tests; 0 PASS, 288 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CTR.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CTR.html deleted file mode 100644 index 3608a4f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-CTR.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["AES-CTR"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt deleted file mode 100644 index 9ae2da8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt +++ /dev/null
@@ -1,292 +0,0 @@ -This is a testharness.js-based test. -Found 288 tests; 0 PASS, 288 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-GCM.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-GCM.html deleted file mode 100644 index eb7c6b5d..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-GCM.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["AES-GCM"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt deleted file mode 100644 index 71ca90f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt +++ /dev/null
@@ -1,76 +0,0 @@ -This is a testharness.js-based test. -Found 72 tests; 0 PASS, 72 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-KW.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-KW.html deleted file mode 100644 index 9beab20..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_AES-KW.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["AES-KW"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt deleted file mode 100644 index 8c287e97..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt +++ /dev/null
@@ -1,76 +0,0 @@ -This is a testharness.js-based test. -Found 72 tests; 0 PASS, 72 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDH.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDH.html deleted file mode 100644 index 9871f57..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDH.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["ECDH"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt deleted file mode 100644 index 08251f36..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt +++ /dev/null
@@ -1,58 +0,0 @@ -This is a testharness.js-based test. -Found 54 tests; 0 PASS, 54 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDSA.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDSA.html deleted file mode 100644 index f32a556..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_ECDSA.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["ECDSA"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt deleted file mode 100644 index d9b24dc..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt +++ /dev/null
@@ -1,100 +0,0 @@ -This is a testharness.js-based test. -Found 96 tests; 0 PASS, 96 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_HMAC.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_HMAC.html deleted file mode 100644 index 819b35d..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_HMAC.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["HMAC"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt deleted file mode 100644 index 6d494aa..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt +++ /dev/null
@@ -1,160 +0,0 @@ -This is a testharness.js-based test. -Found 156 tests; 0 PASS, 156 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html deleted file mode 100644 index db58fd6..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["RSA-OAEP"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt deleted file mode 100644 index ac1e300..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt +++ /dev/null
@@ -1,39 +0,0 @@ -This is a testharness.js-based test. -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html deleted file mode 100644 index d6a3c1b0..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["RSA-PSS"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt deleted file mode 100644 index 459d650..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt +++ /dev/null
@@ -1,39 +0,0 @@ -This is a testharness.js-based test. -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html deleted file mode 100644 index 3567879..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: generateKey() Successful Calls</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="/WebCryptoAPI/util/helpers.js"></script> -<script src="successes.js"></script> - -<h1>generateKey Tests for Good Parameters</h1> -<p> - <strong>Warning!</strong> RSA key generation is intrinsically - very slow, so the related tests can take up to - several minutes to complete, depending on browser! -</p> - -<div id="log"></div> -<script> -run_test(["RSASSA-PKCS1-v1_5"]); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_ec_importKey-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_ec_importKey-expected.txt deleted file mode 100644 index 8a50483..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_ec_importKey-expected.txt +++ /dev/null
@@ -1,76 +0,0 @@ -This is a testharness.js-based test. -Found 72 tests; 0 PASS, 72 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, true, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, false, []) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_ec_importKey.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_ec_importKey.html deleted file mode 100644 index 54eea40..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_ec_importKey.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!DOCTYPE HTML> -<meta charset=utf-8> -<title>WebCryptoAPI: importKey() for EC keys</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href=https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-importKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="ec_importKey.js"></script> -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_rsa_importKey-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_rsa_importKey-expected.txt deleted file mode 100644 index d6184c38..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_rsa_importKey-expected.txt +++ /dev/null
@@ -1,484 +0,0 @@ -This is a testharness.js-based test. -Found 480 tests; 0 PASS, 480 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign]) Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_rsa_importKey.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_rsa_importKey.html deleted file mode 100644 index 219ad2d..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_rsa_importKey.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!DOCTYPE HTML> -<meta charset=utf-8> -<title>WebCryptoAPI: importKey() for RSA keys</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href=https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-importKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="rsa_importKey.js"></script> -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt deleted file mode 100644 index fe4799ba..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt +++ /dev/null
@@ -1,238 +0,0 @@ -This is a testharness.js-based test. -Found 234 tests; 0 PASS, 234 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [unwrapKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits]) Cannot read property 'importKey' of undefined -FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey]) Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_symmetric_importKey.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_symmetric_importKey.html deleted file mode 100644 index e82c4d78..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/import_export/test_symmetric_importKey.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!DOCTYPE HTML> -<meta charset=utf-8> -<title>WebCryptoAPI: importKey() for symmetric keys</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href=https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-importKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="symmetric_importKey.js"></script> -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt deleted file mode 100644 index 314634c..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: sign() and verify() Using ECDSA Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_ecdsa.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_ecdsa.html deleted file mode 100644 index 5f121f1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_ecdsa.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: sign() and verify() Using ECDSA</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-sign"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-verify"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="ecdsa_vectors.js"></script> -<script src="ecdsa.js"></script> - -<h1>sign and verify Tests for ECDSA</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_hmac-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_hmac-expected.txt deleted file mode 100644 index 43e62f6f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_hmac-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: sign() and verify() Using HMAC Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_hmac.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_hmac.html deleted file mode 100644 index 6d5ff926f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_hmac.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: sign() and verify() Using HMAC</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-sign"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-verify"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="hmac_vectors.js"></script> -<script src="hmac.js"></script> - -<h1>sign and verify Tests for HMAC</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pkcs-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pkcs-expected.txt deleted file mode 100644 index 18dc671..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pkcs-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: sign() and verify() Using RSASSA-PKCS1-v1_5 Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pkcs.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pkcs.html deleted file mode 100644 index de428c0f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pkcs.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: sign() and verify() Using RSASSA-PKCS1-v1_5</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-sign"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-verify"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="rsa_pkcs_vectors.js"></script> -<script src="rsa.js"></script> - -<h1>sign and verify Tests for RSASSA-PKCS1-v1_5</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pss-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pss-expected.txt deleted file mode 100644 index e84e6414..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pss-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: sign() and verify() Using RSA-PSS Uncaught TypeError: Cannot read property 'importKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pss.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pss.html deleted file mode 100644 index 3a2034f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/sign_verify/test_rsa_pss.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: sign() and verify() Using RSA-PSS</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-sign"> -<link rel="help" href="https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#SubtleCrypto-method-verify"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="rsa_pss_vectors.js"></script> -<script src="rsa.js"></script> - -<h1>sign and verify Tests for RSA-PSS</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey-expected.txt deleted file mode 100644 index d5c8d7e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL WebCryptoAPI: wrapKey() and unwrapKey() Uncaught TypeError: Cannot read property 'generateKey' of undefined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html deleted file mode 100644 index 337e078..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<meta name="timeout" content="long"> -<title>WebCryptoAPI: wrapKey() and unwrapKey()</title> -<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> -<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-wrapKey"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script src="wrapKey_unwrapKey.js"></script> - -<h1>wrapKey and unwrapKey Tests</h1> - -<div id="log"></div> -<script> -run_test(); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/has-instance.html b/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/has-instance.html index 986d27c..caf0be4 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/has-instance.html +++ b/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/has-instance.html
@@ -1,8 +1,11 @@ <!doctype html> <meta charset="utf-8"> -<title></title> +<title>instanceof behavior</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + +<iframe></iframe> + <script> test(function() { var obj = Object.create(Element.prototype); @@ -10,4 +13,14 @@ assert_true(obj instanceof Node); assert_false(obj instanceof Attr); }, "Manually-constructed prototype chains are correctly handled by instanceof"); + +test(() => { + // This tests that the historical override of [[HasInstance]] was removed: + // https://github.com/heycam/webidl/pull/356 + assert_false(document.body instanceof frames[0].Element); +}, "instanceof must return false across different globals, for platform objects"); + +test(() => { + assert_false(EventTarget.hasOwnProperty(Symbol.hasInstance)); +}, "platform objects do not have Symbol.hasInstance installed"); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/legacy-callback-interface-object.html b/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/legacy-callback-interface-object.html new file mode 100644 index 0000000..01a008d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/legacy-callback-interface-object.html
@@ -0,0 +1,69 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Legacy callback interface objects</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> +<link rel="help" href="https://heycam.github.io/webidl/#legacy-callback-interface-object"> + +<script> +test(() => { + assert_true(typeof NodeFilter === "function"); +}, "Must be a function according to typeof"); + +test(() => { + assert_true(Object.getPrototypeOf(NodeFilter) === Function.prototype); +}, "Must have the correct [[Prototype]]"); + +test(() => { + const propDesc = Object.getOwnPropertyDescriptor(window, "NodeFilter"); + assert_true(propDesc.writable, "writable"); + assert_false(propDesc.enumerable, "enumerable"); + assert_true(propDesc.configurable, "configurable"); +}, "Must have the correct property descriptor"); + +test(() => { + assert_throws(new TypeError(), () => NodeFilter(), "call"); + assert_throws(new TypeError(), () => new NodeFilter(), "construct"); +}, "Must throw a TypeError when called or constructed") + +test(() => { + assert_false(NodeFilter.hasOwnProperty("prototype")); +}, "Must not have a .prototype property"); + +test(() => { + assert_true(NodeFilter.hasOwnProperty("name")); + assert_equals(NodeFilter.name, "NodeFilter"); + + const propDesc = Object.getOwnPropertyDescriptor(NodeFilter, "name"); + assert_false(propDesc.writable, "writable"); + assert_false(propDesc.enumerable, "enumerable"); + assert_true(propDesc.configurable, "configurable"); +}, "Must have an own name property equal to the interface name and with the correct descriptors"); + +test(() => { + assert_true(NodeFilter.hasOwnProperty("length")); + assert_equals(NodeFilter.length, 0); + + const propDesc = Object.getOwnPropertyDescriptor(NodeFilter, "length"); + assert_false(propDesc.writable, "writable"); + assert_false(propDesc.enumerable, "enumerable"); + assert_true(propDesc.configurable, "configurable"); +}, "Must have an own length property with value zero and the correct descriptors"); + +test(() => { + // The JS spec (OrdinaryHasInstance) bails out early for non-objects + // Historically we overrode [[HasInstance]] to throw anyway, but this was removed: + // https://github.com/heycam/webidl/pull/356 + assert_false(5 instanceof NodeFilter, "5"); + + // OrdinaryHasInstance throws a TypeError if the right-hand-side doesn't have a .prototype object, + // which is the case for callback interfaces. + assert_throws(new TypeError(), () => { + (function () { }) instanceof NodeFilter; + }); + assert_throws(new TypeError(), () => { + ({ }) instanceof NodeFilter; + }); +}, "instanceof must throw but only when we don't bail out early"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/formdata-foreach.html b/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/formdata-foreach.html index 9b10367a..3ad184c4 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/formdata-foreach.html +++ b/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/formdata-foreach.html
@@ -14,8 +14,12 @@ fd.append('n2', 'v5'); fd.append('n3', 'v6'); fd.delete('n2'); - var expected_keys = ['n1', 'n3', 'n1', 'n3']; - var expected_values = ['v1', 'v3', 'v4', 'v6']; + + var file = new File(['hello'], "hello.txt"); + fd.append('f1', file); + + var expected_keys = ['n1', 'n3', 'n1', 'n3', 'f1']; + var expected_values = ['v1', 'v3', 'v4', 'v6', file]; test(function() { var mykeys = [], myvalues = []; for(var entry of fd) {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/send-conditional-cors-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/send-conditional-cors-expected.txt deleted file mode 100644 index be427a3..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/XMLHttpRequest/send-conditional-cors-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -FAIL 304 without appropriate CORS header CROSSDOMAIN is not defined -FAIL 304 with appropriate CORS header CROSSDOMAIN is not defined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html new file mode 100644 index 0000000..6421ab56 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Accelerometer Test</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/accelerometer/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<iframe src="support-iframe.html" id="frame" style="display:none" sandbox="allow-scripts"> +</iframe> +<script> + +runGenericSensorTests(Accelerometer); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html new file mode 100644 index 0000000..4ff4789c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Accelerometer Test: insecure context</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/accelerometer/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<h2>Precondition</h2> +<ol> + <li> + Run test in an insecure context, e.g. http://example.com/. + </li> +</ol> +<script> + +runGenericSensorInsecureContext(Accelerometer); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html new file mode 100644 index 0000000..a3e8150 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Accelerometer Test: onerror</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/accelerometer/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<h2>Precondition</h2> +<ol> + <li> + Disable the Accelerometer Sensor or run test on a device without Accelerometer Sensor. + </li> +</ol> +<script> + +runGenericSensorOnerror(Accelerometer); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/support-iframe.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/support-iframe.html new file mode 100644 index 0000000..a123f48 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/support-iframe.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<script> +try { + let sensor = new Accelerometer(); + parent.postMessage("sensor.start() can be fired within iframes", '*'); +} catch (e) { + parent.postMessage(e.name, '*'); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-charging-manual.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-charging-manual.html new file mode 100644 index 0000000..8e80e30a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-charging-manual.html
@@ -0,0 +1,52 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: battery neither empty or full, charger plugged in</title> +<meta name="flags" content="interact"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<h2>Description</h2> +<p> + This test validates that all of the BatteryManager attributes exist and are set to their correct values when battery is charging. +</p> + +<h2>Preconditions</h2> +<ol> + <li> + The device is plugged in to the charger before this test is run. + </li> + <li> + The battery must neither be empty or full, nor reach empty or full capacity during the test. + </li> + <li> + Waiting for battery level change to fire levelchange event, maybe need a long time + </li> +</ol> + +<script> + +setup({ explicit_timeout: true }); + +async_test(function (t) { + navigator.getBattery().then(function (battery) { + t.step(function () { + assert_true(battery.charging, 'charging must be set to true'); + assert_equals(battery.dischargingTime, Infinity, 'dischargingTime must be set to Infinity'); + assert_greater_than(battery.level, 0, 'level must be greater than 0'); + assert_less_than_equal(battery.level, 1.0, 'level must be less than or equal to 1.0'); + + var battery_level = battery.level; + battery.onlevelchange = t.step_func(function () { + assert_greater_than(battery.level, battery_level, 'The value of the level attribute must increase'); + t.done(); + }); + }); + }, function (error) { + t.step(function () { + assert_unreached(error.message); + }); + t.done(); + }); +}, document.title); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-discharging-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-discharging-manual-expected.txt new file mode 100644 index 0000000..6057a79e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-discharging-manual-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Battery Test: battery neither empty or full, charger unplugged in assert_false: charging must be set to false expected false got true +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-discharging-manual.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-discharging-manual.html new file mode 100644 index 0000000..c4ccbe44 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-discharging-manual.html
@@ -0,0 +1,52 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: battery neither empty or full, charger unplugged in</title> +<meta name="flags" content="interact"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<h2>Description</h2> +<p> + This test validates that all of the BatteryManager attributes exist and are set to their correct values when battery is discharging. +</p> + +<h2>Preconditions</h2> +<ol> + <li> + The device is unplugged from the charger before this test is run. + </li> + <li> + The battery must neither be empty or full, nor reach empty or full capacity during the test. + </li> + <li> + Waiting for battery level change to fire levelchange event, maybe need a long time + </li> +</ol> + +<script> + +setup({ explicit_timeout: true }); + +async_test(function (t) { + navigator.getBattery().then(function (battery) { + t.step(function () { + assert_false(battery.charging, 'charging must be set to false'); + assert_equals(battery.chargingTime, Infinity, 'chargingTime must be set to Infinity'); + assert_greater_than(battery.level, 0, 'level must be greater than 0'); + assert_less_than_equal(battery.level, 1.0, 'level must be less than or equal to 1.0'); + + var battery_level = battery.level; + battery.onlevelchange = t.step_func(function () { + assert_less_than(battery.level, battery_level, 'The value of the level attribute must decrease'); + t.done(); + }); + }); + }, function (error) { + t.step(function () { + assert_unreached(error.message); + }); + t.done(); + }); +}, document.title); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-full-manual.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-full-manual.html new file mode 100644 index 0000000..883d71f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-full-manual.html
@@ -0,0 +1,42 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: battery full, charger plugged in</title> +<meta name="flags" content="interact"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<h2>Description</h2> +<p> + This test validates that all of the BatteryManager attributes exist and are set to their correct values when battery is full. +</p> + +<h2>Preconditions</h2> +<ol> + <li> + The device is plugged in to the charger before this test is run. + </li> + <li> + The battery is full. + </li> +</ol> + +<script> + +async_test(function (t) { + navigator.getBattery().then(function (battery) { + t.step(function () { + assert_true(battery.charging, 'charging must be set to true'); + assert_equals(battery.chargingTime, 0, 'chargingTime must be set to 0'); + assert_equals(battery.dischargingTime, Infinity, 'dischargingTime must be set to Infinity'); + assert_equals(battery.level, 1.0, 'level must be set to 1.0'); + }); + t.done(); + }, function (error) { + t.step(function () { + assert_unreached(error.message); + }); + t.done(); + }); +}, document.title); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-interface-idlharness.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-interface-idlharness.html new file mode 100644 index 0000000..4e9b209d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-interface-idlharness.html
@@ -0,0 +1,74 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery test: IDL</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +<script type="text/plain" class="untested"> +interface Navigator { }; + +interface EventTarget { + void addEventListener(DOMString type, EventListener? callback, optional boolean capture); + void removeEventListener(DOMString type, EventListener? callback, optional boolean capture); + boolean dispatchEvent(Event event); +}; + +[Callback] +interface EventListener { + void handleEvent(Event event); +}; +[TreatNonObjectAsNull] +callback EventHandlerNonNull = any (Event event); +typedef EventHandlerNonNull? EventHandler; +</script> +<script type="text/plain"> +partial interface Navigator { + Promise<BatteryManager> getBattery (); +}; + +interface BatteryManager : EventTarget { + readonly attribute boolean charging; + readonly attribute unrestricted double chargingTime; + readonly attribute unrestricted double dischargingTime; + readonly attribute double level; + attribute EventHandler onchargingchange; + attribute EventHandler onchargingtimechange; + attribute EventHandler ondischargingtimechange; + attribute EventHandler onlevelchange; +}; +</script> +<script> +"use strict"; +var t = async_test(); +var idl_array = new IdlArray(); +var idls; +var manager; +[].forEach.call(document.querySelectorAll('script[type=text\\/plain]'), function(node) { + idls = node.textContent; + idl_array[(node.className === 'untested') ? 'add_untested_idls' : 'add_idls'](idls); +}); +t.step(function() { + assert_idl_attribute(navigator, 'getBattery', 'navigator must have getBattery attribute'); + navigator.getBattery().then(function(bm) { + manager = bm; + idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['manager']}); + idl_array.test(); + t.done(); + }).catch(function(err) { + t.assert_unreached("navigator.getBattery failed"); + }); +}); +</script> + +<h2>Description</h2> +<p> + This test validates the BatteryManager interface IDL. +</p> +<p> + This test uses <a href="/resources/idlharness.js">idlharness.js</a>, and + is complementary to the <a href="battery-interface.html">battery-interface.html</a> + test. +</p> + +<div id="log"></div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-plugging-in-manual.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-plugging-in-manual.html new file mode 100644 index 0000000..4d16cf1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-plugging-in-manual.html
@@ -0,0 +1,125 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: battery not full, charger plugging in</title> +<meta name="flags" content="interact"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #note { + background-color: #fef1b5; + border: solid 1px #cdab2d; + padding: 5px; + margin: 15px; + display: block; + } +</style> + +<h2>Description</h2> +<p> + This test validates that all of the BatteryManager attributes exist and + are set to correct values, with corresponding events fired, + when the charger is plugged in. +</p> + +<h2>Preconditions</h2> +<ol> + <li> + The device is unplugged from the charger before this test is run. + </li> + <li> + The battery must not be full or reach full capacity before the time the test is run. + </li> +</ol> + +<div id="note"> + <ol> + <li> + Plug in the charger and wait for all the tests to complete. + </li> + <li> + The tests may take long time since the definition of how + often the chargingtimechange, dischargingtimechange, and levelchange + events are fired is left to the implementation. + </li> + </ol> +</div> + +<div id="log"></div> + +<script> + +(function() { + + setup({ explicit_timeout: true }); + + var onchargingchange_test = async_test( + 'When the device is plugged in and its charging state is updated, ' + + 'must set the charging attribute\'s value to true and ' + + 'fire a chargingchange event.'); + var onchargingtimechange_test = async_test( + 'When the device is plugged in and its charging time is updated, ' + + 'must set the chargingTime attribute\'s value and fire ' + + 'a chargingtimechange event.'); + var ondischargingtimechange_test = async_test( + 'When the device is plugged in and its discharging time is updated, ' + + 'must set the dischargingTime attribute\'s value to Infinity and ' + + 'fire a dischargingtimechange event.'); + var onlevelchange_test = async_test( + 'When the device is plugged in and the battery level is updated, ' + + 'must set the level attribute\'s value and fire a levelchange event.'); + + var batterySuccess = function (battery) { + battery.onchargingchange = onchargingchange_test.step_func(function () { + assert_true(battery.charging, 'The charging attribute must be set to true.'); + onchargingchange_test.done(); + }); + + var battery_chargingtime = battery.chargingTime; + battery.onchargingtimechange = onchargingtimechange_test.step_func(function () { + assert_less_than(battery.chargingTime, battery_chargingtime, + 'The value of the chargingTime attribute must decrease.'); + onchargingtimechange_test.done(); + }); + + battery.ondischargingtimechange = ondischargingtimechange_test.step_func(function () { + if (battery.charging) { + assert_equals(battery.dischargingTime, Infinity, + 'The value of the dischargingTime attribute must be set to Infinity.'); + ondischargingtimechange_test.done(); + } + }); + + battery.onlevelchange = onlevelchange_test.step_func(function () { + assert_greater_than(battery.level, 0); + assert_less_than_equal(battery.level, 1.0); + onlevelchange_test.done(); + }); + }; + + var batteryFailure = function (error) { + onchargingchange_test.step(function () { + assert_unreached(error.message); + }); + onchargingchange_test.done(); + + onchargingtimechange_test.step(function () { + assert_unreached(error.message); + }); + onchargingtimechange_test.done(); + + ondischargingtimechange_test.step(function () { + assert_unreached(error.message); + }); + ondischargingtimechange_test.done(); + + onlevelchange_test.step(function () { + assert_unreached(error.message); + }); + onlevelchange_test.done(); + }; + + navigator.getBattery().then(batterySuccess, batteryFailure); + +})(); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-iframe-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-iframe-expected.txt new file mode 100644 index 0000000..a69f52e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-iframe-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +PASS iframe has a different Navigator object thus getting another battery promise +FAIL setting src of an iframe with initial about:blank makes same Navigator object and battery promise assert_equals: navigator objects shall be same expected object "[object Navigator]" but got object "[object Navigator]" +PASS setting src of an iframe with initial frame makes its Navigator object vary thus getting another battery promise +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-iframe.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-iframe.html new file mode 100644 index 0000000..6add861 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-iframe.html
@@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: iframe has a different Navigator object</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + iframe { + display: none; + } +</style> +<div id="log"></div> +<iframe id="blank" src="about:blank"></iframe> +<iframe id="frame"></iframe> +<script> +promise_test(function(t) { + var iframe = document.querySelector('#blank'); + var originalPromise = navigator.getBattery(); + + return originalPromise.then(function(originalManager) { + var promise = iframe.contentWindow.navigator.getBattery(); + + assert_true(originalManager instanceof BatteryManager); + assert_not_equals(iframe.contentWindow.navigator, + navigator, + 'navigator objects shall be different'); + assert_not_equals(promise, + originalPromise, + 'battery promises in different navigators shall be different'); + assert_equals(iframe.contentWindow.navigator.getBattery(), + promise, + 'battery promises in same navigator shall be same'); + + return promise; + }).then(function(manager) { + assert_equals(manager.__proto__, + iframe.contentWindow.BatteryManager.prototype); + assert_true(manager instanceof iframe.contentWindow.BatteryManager); + }); + +}, 'iframe has a different Navigator object thus getting another battery promise'); + +async_test(function (t) { + var iframe = document.querySelector('#blank'); + var originalNavigator = iframe.contentWindow.navigator; + var originalPromise = iframe.contentWindow.navigator.getBattery(); + + iframe.onload = t.step_func(function() { + assert_equals(iframe.contentWindow.navigator, + originalNavigator, + 'navigator objects shall be same'); + assert_equals(iframe.contentWindow.navigator.getBattery(), + originalPromise, + 'battery status promises shall be same'); + t.done(); + }); + + iframe.src = 'support-iframe.html'; +}, 'setting src of an iframe with initial about:blank makes same Navigator object and battery promise'); + +async_test(function (t) { + var iframe = document.querySelector('#frame'); + iframe.src = 'support-iframe-initial.html'; + iframe.onload = t.step_func(function() { + var originalNavigator = iframe.contentWindow.navigator; + var originalPromise = iframe.contentWindow.navigator.getBattery(); + + iframe.onload = t.step_func(function() { + assert_not_equals(iframe.contentWindow.navigator, + originalNavigator, + 'navigator objects shall be changed'); + assert_not_equals(iframe.contentWindow.navigator.getBattery(), + originalPromise, + 'battery status promises shall be different'); + t.done(); + }); + + iframe.src = 'support-iframe.html'; + }); +}, 'setting src of an iframe with initial frame makes its Navigator object vary thus getting another battery promise'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-window.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-window.html new file mode 100644 index 0000000..a7d708c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise-window.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: window.open() makes a different Navigator object</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #note { + background-color: #fef1b5; + border: solid 1px #cdab2d; + padding: 5px; + margin: 15px; + display: block; + } +</style> +<div id="note"> + Allow pop-up windows before running the tests. +</div> +<div id="log"></div> +<script> +async_test(function (t) { + var win = window.open('support-window-open.html'); + window.onmessage = t.step_func(function(e) { + assert_array_equals(e.data, [false, false, true]); + win.close(); + t.done(); + }); +}, 'window.open() makes a different Navigator object thus getting another battery promise'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise.html new file mode 100644 index 0000000..8c552eb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-promise.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: navigator.getBattery() always return same battery promise</title> +<link rel="author" title="YuichiNukiyama" href="https://github.com/YuichiNukiyama"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +promise_test(function () { + return navigator.getBattery().then(function (result) { + assert_class_string(result, 'BatteryManager', + 'getBattery should return BatteryManager Object.'); + }); +}, 'navigator.getBattery() shall return BatteryManager as a promise'); + +test(function () { + assert_equals(navigator.getBattery(), navigator.getBattery()); +}, 'navigator.getBattery() shall always return the same promise'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-unplugging-manual.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-unplugging-manual.html new file mode 100644 index 0000000..bb576da --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/battery-unplugging-manual.html
@@ -0,0 +1,110 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Battery Test: charger unplugging</title> +<meta name="flags" content="interact"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #note { + background-color: #fef1b5; + border: solid 1px #cdab2d; + padding: 5px; + margin: 15px; + display: block; + } +</style> + +<h2>Description</h2> +<p> + This test validates that all of the BatteryManager attributes exist and + are set to correct values, with corresponding events fired, + when the charger is unplugged. +</p> + +<h2>Preconditions</h2> +<ol> + <li> + The device is plugged in to the charger before this test is run. + </li> +</ol> + +<div id="note"> + Unplug the charger and wait for all the tests to complete. +</div> + +<div id="log"></div> + +<script> + +(function() { + + setup({ explicit_timeout: true }); + + var onchargingchange_test = async_test( + 'When the device is unplugged in and its charging state is updated, ' + + 'must set the charging attribute\'s value to false and ' + + 'fire a chargingchange event.'); + var onchargingtimechange_test = async_test( + 'When the device is unplugged in and its charging time is updated, ' + + 'must set the chargingTime attribute\'s value to Infinity and ' + + 'fire a chargingtimechange event.'); + var ondischargingtimechange_test = async_test( + 'When the device is unplugged in and its discharging time is updated, ' + + 'must set the dischargingTime attribute\'s value and ' + + 'fire a dischargingtimechange event.'); + var onlevelchange_test = async_test( + 'When the device is unplugged in and the battery level is updated, ' + + 'must set the level attribute\'s value and fire a levelchange event.'); + + var batterySuccess = function (battery) { + battery.onchargingchange = onchargingchange_test.step_func(function () { + assert_false(battery.charging, 'The charging attribute must be set to false.'); + onchargingchange_test.done(); + }); + + battery.onchargingtimechange = onchargingtimechange_test.step_func(function () { + assert_equals(battery.chargingTime, Infinity, + 'The value of the chargingTime attribute must be set to Infinity.'); + onchargingtimechange_test.done(); + }); + + battery.ondischargingtimechange = ondischargingtimechange_test.step_func(function () { + assert_less_than(battery.dischargingTime, Infinity, + 'The value of the dischargingTime attribute must be set to the remaining discharging time.'); + ondischargingtimechange_test.done(); + }); + + battery.onlevelchange = onlevelchange_test.step_func(function () { + assert_greater_than(battery.level, 0); + assert_less_than_equal(battery.level, 1.0); + onlevelchange_test.done(); + }); + }; + + var batteryFailure = function (error) { + onchargingchange_test.step(function () { + assert_unreached(error.message); + }); + onchargingchange_test.done(); + + onchargingtimechange_test.step(function () { + assert_unreached(error.message); + }); + onchargingtimechange_test.done(); + + ondischargingtimechange_test.step(function () { + assert_unreached(error.message); + }); + ondischargingtimechange_test.done(); + + onlevelchange_test.step(function () { + assert_unreached(error.message); + }); + onlevelchange_test.done(); + }; + + navigator.getBattery().then(batterySuccess, batteryFailure); + +})(); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-iframe-initial.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-iframe-initial.html new file mode 100644 index 0000000..d4e5b31 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-iframe-initial.html
@@ -0,0 +1,5 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<div> +Hello! +</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-iframe.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-iframe.html new file mode 100644 index 0000000..d4e5b31 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-iframe.html
@@ -0,0 +1,5 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<div> +Hello! +</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-window-open.html b/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-window-open.html new file mode 100644 index 0000000..afffc3a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/battery-status/support-window-open.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<script> +var data = [ + navigator === window.opener.navigator, + navigator.getBattery() === window.opener.navigator.getBattery(), + navigator.getBattery() === navigator.getBattery() +]; +window.opener.postMessage(data, '*'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/check_stability.py b/third_party/WebKit/LayoutTests/external/wpt/check_stability.py index 6230e2b..6109a73 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/check_stability.py +++ b/third_party/WebKit/LayoutTests/external/wpt/check_stability.py
@@ -33,6 +33,7 @@ logger = None + def do_delayed_imports(): """Import and set up modules only needed if execution gets to this point.""" global BaseHandler @@ -410,10 +411,7 @@ def install_wptrunner(): - """Clone and install wptrunner.""" - call("git", "clone", "--depth=1", "https://github.com/w3c/wptrunner.git", wptrunner_root) - git = get_git_cmd(wptrunner_root) - git("submodule", "update", "--init", "--recursive") + """Install wptrunner.""" call("pip", "install", wptrunner_root) @@ -489,9 +487,19 @@ return changed, ignored + +def _in_repo_root(full_path): + rel_path = os.path.relpath(full_path, wpt_root) + path_components = rel_path.split(os.sep) + return len(path_components) < 2 + + def get_affected_testfiles(files_changed, skip_tests): """Determine and return list of test files that reference changed files.""" affected_testfiles = set() + # Exclude files that are in the repo root, because + # they are not part of any test. + files_changed = [f for f in files_changed if not _in_repo_root(f)] nontests_changed = set(files_changed) manifest_file = os.path.join(wpt_root, "MANIFEST.json") test_types = ["testharness", "reftest", "wdspec"] @@ -500,6 +508,8 @@ support_files = {os.path.join(wpt_root, path) for _, path, _ in wpt_manifest.itertypes("support")} + wdspec_test_files = {os.path.join(wpt_root, path) + for _, path, _ in wpt_manifest.itertypes("wdspec")} test_files = {os.path.join(wpt_root, path) for _, path, _ in wpt_manifest.itertypes(*test_types)} @@ -509,19 +519,30 @@ for full_path in nontests_changed: rel_path = os.path.relpath(full_path, wpt_root) path_components = rel_path.split(os.sep) - if len(path_components) < 2: - # This changed file is in the repo root, so skip it - # (because it's not part of any test). - continue top_level_subdir = path_components[0] if top_level_subdir in skip_tests: continue repo_path = "/" + os.path.relpath(full_path, wpt_root).replace(os.path.sep, "/") nontest_changed_paths.add((full_path, repo_path)) + def affected_by_wdspec(test): + affected = False + if test in wdspec_test_files: + for support_full_path, _ in nontest_changed_paths: + # parent of support file or of "support" directory + parent = os.path.dirname(support_full_path) + if os.path.basename(parent) == "support": + parent = os.path.dirname(parent) + relpath = os.path.relpath(test, parent) + if not relpath.startswith(os.pardir): + # testfile is in subtree of support file + affected = True + break + return affected + for root, dirs, fnames in os.walk(wpt_root): # Walk top_level_subdir looking for test files containing either the - # relative filepath or absolute filepatch to the changed files. + # relative filepath or absolute filepath to the changed files. if root == wpt_root: for dir_name in skip_tests: dirs.remove(dir_name) @@ -530,6 +551,10 @@ # Skip any file that's not a test file. if test_full_path not in test_files: continue + if affected_by_wdspec(test_full_path): + affected_testfiles.add(test_full_path) + continue + with open(test_full_path, "rb") as fh: file_contents = fh.read() if file_contents.startswith("\xfe\xff"): @@ -689,6 +714,7 @@ log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols)) log("") + def write_inconsistent(inconsistent, iterations): """Output inconsistent tests to logger.error.""" logger.error("## Unstable results ##\n") @@ -805,7 +831,7 @@ setup_logging() wpt_root = os.path.abspath(os.curdir) - wptrunner_root = os.path.normpath(os.path.join(wpt_root, "..", "wptrunner")) + wptrunner_root = os.path.normpath(os.path.join(wpt_root, "tools", "wptrunner")) if not os.path.exists(args.root): logger.critical("Root directory %s does not exist" % args.root)
diff --git a/third_party/WebKit/LayoutTests/external/wpt/common/object-association.js b/third_party/WebKit/LayoutTests/external/wpt/common/object-association.js new file mode 100644 index 0000000..cd1453e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/common/object-association.js
@@ -0,0 +1,64 @@ +"use strict"; + +// For now this only has per-Window tests, but we could expand it to also test per-Document + +window.testIsPerWindow = propertyName => { + test(t => { + const iframe = document.createElement("iframe"); + document.body.appendChild(iframe); + const frame = iframe.contentWindow; + + const before = frame[propertyName]; + assert_true(before !== undefined && before !== null, `window.${propertyName} must be implemented`); + + iframe.remove(); + + const after = frame[propertyName]; + assert_equals(after, before); + }, `Discarding the browsing context must not change window.${propertyName}`); + + async_test(t => { + const iframe = document.createElement("iframe"); + document.body.appendChild(iframe); + const frame = iframe.contentWindow; + + const before = frame[propertyName]; + assert_true(before !== undefined && before !== null, `window.${propertyName} must be implemented`); + + // Note: cannot use step_func_done for this because it might be called twice, per the below comment. + iframe.onload = t.step_func(() => { + if (frame.location.href === "about:blank") { + // Browsers are not reliable on whether about:blank fires the load event; see + // https://github.com/whatwg/html/issues/490 + return; + } + + const after = frame[propertyName]; + assert_equals(after, before); + t.done(); + }); + + iframe.src = "/common/blank.html"; + }, `Navigating from the initial about:blank must not replace window.${propertyName}`); + + // Note: document.open()'s spec doesn't match most browsers; see https://github.com/whatwg/html/issues/1698. + // However, as explained in https://github.com/whatwg/html/issues/1698#issuecomment-298748641, even an updated spec + // will probably still reset Window-associated properties. + async_test(t => { + const iframe = document.createElement("iframe"); + + iframe.onload = t.step_func_done(() => { + const frame = iframe.contentWindow; + const before = frame[propertyName]; + assert_true(before !== undefined && before !== null, `window.${propertyName} must be implemented`); + + frame.document.open(); + + const after = frame[propertyName]; + assert_not_equals(after, before); + }); + + iframe.src = "/common/blank.html"; + document.body.appendChild(iframe); + }, `document.open() must replace window.${propertyName}`); +};
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/304.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/304.htm new file mode 100644 index 0000000..f93cd2d7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/304.htm
@@ -0,0 +1,97 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - 304 Responses</title> +<meta name=author title="Mark Nottingham" href="mailto:mnot@mnot.net"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>CORS - 304 Responses</h1> +<div id=log></div> +<script> + + +/* + * 304 Responses + */ + +// A header used to correlate requests and responses +var state_header = "content-language" + +/* Make a request; call ready(client) when done */ +function req(url, id, t, ready) { + var client = new XMLHttpRequest() + client.open('GET', url, true) + client.setRequestHeader(state_header, id) + client.send() + client.onreadystatechange = function() { + if (client.readyState == client.DONE) { + t.step(function() { + assert_true(client.status != 299, "req " + id + " server says: " + client.responseText) + }) + ready(client) + } + } + return client +} + +/* + * Make two requests to test cache behaviour. + * The second is made after the first is done and a delay, to make sure it gets into cache. + */ +function two_reqs(id1, id2, should_have_same_body, t, done) { + var rand = Date.now() + var url = CROSSDOMAIN + 'resources/304.py?id=' + id1 + '&r=%s' + rand + + var client1 = req(url, id1, t, function(client1) { + t.step(function() { + assert_equals(client1.response, "Success", "didn't get successful 1st response;") + assert_equals(client1.getResponseHeader(state_header), id1, "1st response didn't come from server;") + }) + + t.step_timeout(function() { + req(url, id2, t, function(client2) { + t.step(function() { + if (should_have_same_body) { + assert_equals(client1.response, client2.response, "response bodies were different;") +// var res_id2 = client2.getResponseHeader(state_header) +// assert_not_equals(res_id2, id1, "2nd response doesn't appear to have updated cached headers;") +// assert_not_equals(res_id2, null, "2nd response didn't expose request identifier;") +// assert_equals(res_id2, id2, "2nd response is associated with a different request (!);") + } + done(client1, client2) + }) + t.done() + }) + }, 5000) + }) +} + +async_test(function(t) { + two_reqs('1', '2', true, t, function(client1, client2) { + assert_equals(client1.getResponseHeader("A"), null, "'A' header exposed without permission;") + }) +}, "A 304 response with no CORS headers inherits from the stored response") + +async_test(function(t) { + two_reqs('3', '4', true, t, function(client1, client2) { + assert_equals(client2.getResponseHeader("A"), "4", "304 didn't expose 'A' header, even though allowed;") + assert_equals(client2.getResponseHeader("B"), "4", "304 didn't expose 'B' header even though allowed;") + }) +}, "A 304 can expand Access-Control-Expose-Headers") + +async_test(function(t) { + two_reqs('5', '6', true, t, function(client1, client2) { + assert_equals(client2.getResponseHeader("B"), null, "2nd 304 exposed 'B' header;") + }) +}, "A 304 can contract Access-Control-Expose-Headers") + +async_test(function(t) { + two_reqs('7', '8', false, t, function(client1, client2) { + assert_not_equals(client1.response, client2.response, "Access granted even though 304 updated it to disallow;") + }) +}, "A 304 can change Access-Control-Allow-Origin") + + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/README.md b/third_party/WebKit/LayoutTests/external/wpt/cors/README.md new file mode 100644 index 0000000..b239462 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/README.md
@@ -0,0 +1,8 @@ +Tests for the [Fetch Standard](https://fetch.spec.whatwg.org/). + +These tests are located here as originally the CORS protocol was defined on its own. + +More CORS tests can be found in + +* /fetch +* /XMLHttpRequest
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/allow-headers-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/cors/allow-headers-expected.txt new file mode 100644 index 0000000..3d92c67 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/allow-headers-expected.txt
@@ -0,0 +1,47 @@ +This is a testharness.js-based test. +PASS Allow origin: * +PASS Allow origin: _*__ +PASS Allow origin: [tab]* +PASS Allow origin: http://web-platform.test:8001 +PASS Allow origin: _http://web-platform.test:8001 +PASS Allow origin: _http://web-platform.test:8001___[tab]_ +PASS Allow origin: [tab]http://web-platform.test:8001 +PASS Disallow origin: http://www1.web-platform.test:8001 +PASS Disallow origin: //web-platform.test:8001 +PASS Disallow origin: ://web-platform.test:8001 +PASS Disallow origin: ftp://web-platform.test:8001 +PASS Disallow origin: http:://web-platform.test:8001 +PASS Disallow origin: http:/web-platform.test:8001 +PASS Disallow origin: http:web-platform.test:8001 +PASS Disallow origin: web-platform.test:8001 +PASS Disallow origin: http://web-platform.test:8001? +PASS Disallow origin: http://web-platform.test:8001/ +PASS Disallow origin: http://web-platform.test:8001 / +PASS Disallow origin: http://web-platform.test:8001# +PASS Disallow origin: http://web-platform.test:8001%23 +PASS Disallow origin: http://web-platform.test:8001:80 +PASS Disallow origin: http://web-platform.test:8001, * +FAIL Disallow origin: http://web-platform.test:8001\0 assert_throws: send function "function () { client.send() }" did not throw +PASS Disallow origin: HTTP://WEB-PLATFORM.TEST:8001 +PASS Disallow origin: HTTP://web-platform.test:8001 +PASS Disallow origin: - +PASS Disallow origin: ** +FAIL Disallow origin: \0* assert_throws: send function "function () { client.send() }" did not throw +FAIL Disallow origin: *\0 assert_throws: send function "function () { client.send() }" did not throw +PASS Disallow origin: '*' +PASS Disallow origin: "*" +PASS Disallow origin: * * +PASS Disallow origin: *http://* +PASS Disallow origin: *http://web-platform.test:8001 +PASS Disallow origin: * http://web-platform.test:8001 +PASS Disallow origin: *, http://web-platform.test:8001 +FAIL Disallow origin: \0http://web-platform.test:8001 assert_throws: send function "function () { client.send() }" did not throw +PASS Disallow origin: null http://web-platform.test:8001 +PASS Disallow origin: http://example.net +PASS Disallow origin: null +PASS Disallow origin: +PASS Disallow origin: http://web-platform.test:8001/cors/allow-headers.htm +PASS Disallow origin: http://web-platform.test:8001/cors/ +PASS Disallow origin: http://www1.web-platform.test:8001/cors/ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/allow-headers.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/allow-headers.htm new file mode 100644 index 0000000..8f25f3e4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/allow-headers.htm
@@ -0,0 +1,89 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Access-Control-Allow-Headers handling</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Access-Control-Allow-Headers handling</h1> + +<div id=log></div> + +<script> + +/* + * Origin header + */ +function shouldPass(origin) { + test(function () { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + + '/resources/cors-makeheader.py?origin=' + + encodeURIComponent(origin), + false) + client.send() + r = JSON.parse(client.response) + var host = location.protocol + "//" + location.host + assert_equals(r['origin'], host, 'Request Origin: should be ' + host) + }, 'Allow origin: ' + origin.replace(/\t/g, "[tab]").replace(/ /g, '_')); +} + +shouldPass('*'); +shouldPass(' * '); +shouldPass(' *'); +shouldPass(location.protocol + "//" + location.host); +shouldPass(" "+location.protocol + "//" + location.host); +shouldPass(" "+location.protocol + "//" + location.host + " "); +shouldPass(" "+location.protocol + "//" + location.host); + + +function shouldFail(origin) { + test(function () { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + + '/resources/cors-makeheader.py?origin=' + + encodeURIComponent(origin), + false) + assert_throws("NetworkError", function() { client.send() }, 'send') + }, 'Disallow origin: ' + origin.replace('\0', '\\0')); +} + +shouldFail(location.protocol + "//" + SUBDOMAIN + "." + location.host) +shouldFail("//" + location.host) +shouldFail("://" + location.host) +shouldFail("ftp://" + location.host) +shouldFail("http:://" + location.host) +shouldFail("http:/" + location.host) +shouldFail("http:" + location.host) +shouldFail(location.host) +shouldFail(location.protocol + "//" + location.host + "?") +shouldFail(location.protocol + "//" + location.host + "/") +shouldFail(location.protocol + "//" + location.host + " /") +shouldFail(location.protocol + "//" + location.host + "#") +shouldFail(location.protocol + "//" + location.host + "%23") +shouldFail(location.protocol + "//" + location.host + ":80") +shouldFail(location.protocol + "//" + location.host + ", *") +shouldFail(location.protocol + "//" + location.host + "\0") +shouldFail((location.protocol + "//" + location.host).toUpperCase()) +shouldFail(location.protocol.toUpperCase() + "//" + location.host) +shouldFail("-") +shouldFail("**") +shouldFail("\0*") +shouldFail("*\0") +shouldFail("'*'") +shouldFail('"*"') +shouldFail("* *") +shouldFail("*" + location.protocol + "//" + "*") +shouldFail("*" + location.protocol + "//" + location.host) +shouldFail("* " + location.protocol + "//" + location.host) +shouldFail("*, " + location.protocol + "//" + location.host) +shouldFail("\0" + location.protocol + "//" + location.host) +shouldFail("null " + location.protocol + "//" + location.host) +shouldFail('http://example.net') +shouldFail('null') +shouldFail('') +shouldFail(location.href) +shouldFail(dirname(location.href)) +shouldFail(CROSSDOMAIN) + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/basic.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/basic.htm new file mode 100644 index 0000000..96cc4b98 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/basic.htm
@@ -0,0 +1,63 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Basic CORS</title> +<link rel=help href=https://fetch.spec.whatwg.org/> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> +<div id=log></div> + +<script> + +var counter = 0; + +function cors(desc, scheme, subdomain, port) { + if (!scheme) { + var url = ""; + } else { + if (!port) { + port = location.port; + } + var url = scheme + "://" + (subdomain ? subdomain + "." : "") + location.hostname + ":" + port + dirname(location.pathname) + } + async_test(desc).step(function() { + var client = new XMLHttpRequest(); + this.count = counter++; + + client.open("GET", url + "resources/cors-makeheader.py?get_value=hest_er_best&origin=none&" + this.count); + + client.onreadystatechange = this.step_func(function(e) { + // First request, test that it fails with no origin + if (client.readyState < 4) return; + if (!url) + assert_true(client.response.indexOf("hest_er_best") != -1, "Got response"); + else + assert_false(!!client.response, "Got CORS-disallowed response"); + + client = new XMLHttpRequest(); + client.open("GET", url + "resources/cors-makeheader.py?get_value=hest_er_best&" + this.count); + client.onreadystatechange = this.step_func(function(e) { + // Second request, test that it passes with the allowed-origin + if (client.readyState < 4) return; + assert_true(client.response.indexOf("hest_er_best") != -1, "Got CORS-allowed response"); + this.done(); + }); + client.send(); + }); + client.send(); + }); +} + +cors("Same domain basic usage"); +cors("Cross domain basic usage", "http", "www1"); +cors("Same domain different port", "http", undefined, PORT); + +cors("Cross domain different port", "http", "www1", PORT); + +cors("Cross domain different protocol", "https", "www1", PORTS); + +cors("Same domain different protocol different port", "https", undefined, PORTS); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/credentials-flag.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/credentials-flag.htm new file mode 100644 index 0000000..bacd43c4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/credentials-flag.htm
@@ -0,0 +1,129 @@ +<!DOCTYPE html> +<title>CORS - Access-Control-Allow-Credentials</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>CORS - Access-Control-Allow-Credentials</h1> +<div id=log></div> +<script> + +var url = CROSSDOMAIN + 'resources/cors-cookie.py?ident=' + + +/* + * widthCredentials + */ +// XXX Do some https tests here as well + +test(function () { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN, false) + client.withCredentials = true; +}, 'Setting withCredentials on a sync XHR object should not throw') + +async_test(function () { + var id = new Date().getTime() + '_1', + client = new XMLHttpRequest() + client.open("GET", url + id, true) + client.onload = this.step_func(function() { + assert_equals(client.response, "NO_COOKIE") + client.open("GET", url + id, true) + client.onload = this.step_func(function() { + assert_equals(client.response, "NO_COOKIE") + this.done() + }) + client.send(null) + }) + client.send(null) + +}, "Don't send cookie by default"); + +async_test(function () { + var id = new Date().getTime() + '_2', + client = new XMLHttpRequest() + + client.open("GET", url + id, true) + client.withCredentials = true + client.onload = this.step_func(function() { + assert_equals(client.response, "NO_COOKIE", "No cookie in initial request"); + + /* We have cookie, but the browser shouldn't send */ + client.open("GET", url + id, true) + client.withCredentials = false + client.onload = this.step_func(function() { + assert_equals(client.response, "NO_COOKIE", "No cookie after withCredentials=false sync request") + + /* Reads and deletes the cookie */ + client.open("GET", url + id, true) + client.withCredentials = true + client.onload = this.step_func(function() { + assert_equals(client.response, "COOKIE", "Cookie sent in withCredentials=true sync request") + this.done() + }) + client.send(null) + }) + client.send(null) + }) + client.send(null) +}, "Don't send cookie part 2"); + +async_test(function () { + var id = new Date().getTime() + '_3', + client = new XMLHttpRequest() + + /* Shouldn't set the response cookie */ + client.open("GET", url + id, true) + client.withCredentials = false + client.onload = this.step_func(function() { + assert_equals(client.response, "NO_COOKIE", "first"); + + /* Sets the cookie */ + client.open("GET", url + id, true) + client.withCredentials = true + client.onload = this.step_func(function() { + assert_equals(client.response, "NO_COOKIE", "second") + + /* Reads and deletes the cookie */ + client.open("GET", url + id, true) + client.withCredentials = true + client.onload = this.step_func(function() { + assert_equals(client.response, "COOKIE", "third") + this.done() + }) + client.send(null) + }) + client.send(null) + }) + client.send(null) +}, "Don't obey Set-Cookie when withCredentials=false"); + +function test_response_header(allow) { + var resp_test = async_test('Access-Control-Allow-Credentials: ' + allow + ' should be disallowed (async)') + resp_test.step(function() { + var client = new XMLHttpRequest() + client.open('GET', + CROSSDOMAIN + 'resources/cors-makeheader.py?credentials=' + allow, + true) + client.withCredentials = true; + client.onload = resp_test.step_func(function() { + assert_unreached("onload") + }) + client.onerror = resp_test.step_func(function () { + assert_equals(client.readyState, client.DONE, 'readyState') + resp_test.done() + }) + client.send() + }) +} + +test_response_header('TRUE') +test_response_header('True') +test_response_header('"true"') +test_response_header('false') +test_response_header('1') +test_response_header('0') + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/late-upload-events.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/late-upload-events.htm new file mode 100644 index 0000000..02cd2732 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/late-upload-events.htm
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Adding upload event listeners after send()</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Adding upload event listeners after send()</h1> + +<div id=log></div> + +<script> +function doTest(desc, headers) { + async_test("Late listeners: " + desc).step(function() { + var client = new XMLHttpRequest(); + var eventCounter = 0; + client.open("POST", CROSSDOMAIN + "resources/status.py?headers=custom-header"); + + for (var name in headers) { + client.setRequestHeader(name, headers[name]); + } + + client.onreadystatechange = this.step_func(function(e) { + // Irrelevant if request is not finished + if (client.readyState < 4) return; + assert_equals(client.status, 200); + assert_equals(eventCounter, 0, 'Events fired, but should not have'); + this.done(); + }); + client.send((new Array(3000)).join('xo')); + client.upload.onprogress = client.upload.onloadend = client.upload.onloadstart = client.upload.onload = this.step_func(function(e) { + eventCounter++; + assert_unreached("Upload events should not fire, but did: " + e.type); + }); + }); +} + +doTest("No preflight", {}); +doTest("Preflight", {"custom-header":"test"}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/origin-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/cors/origin-expected.txt new file mode 100644 index 0000000..57fcbc6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/origin-expected.txt
@@ -0,0 +1,62 @@ +This is a testharness.js-based test. +Found 58 tests; 54 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Allow origin: * +PASS Allow origin: _*__ +PASS Allow origin: [tab]* +PASS Allow origin: http://web-platform.test:8001 +PASS Allow origin: _http://web-platform.test:8001 +PASS Allow origin: _http://web-platform.test:8001___[tab]_ +PASS Allow origin: [tab]http://web-platform.test:8001 +PASS Disallow origin: http://www1.web-platform.test:8001 +PASS Disallow origin: //web-platform.test:8001 +PASS Disallow origin: ://web-platform.test:8001 +PASS Disallow origin: ftp://web-platform.test:8001 +PASS Disallow origin: http:://web-platform.test:8001 +PASS Disallow origin: http:/web-platform.test:8001 +PASS Disallow origin: http:web-platform.test:8001 +PASS Disallow origin: web-platform.test:8001 +PASS Disallow origin: http://web-platform.test:8001? +PASS Disallow origin: http://web-platform.test:8001/ +PASS Disallow origin: http://web-platform.test:8001 / +PASS Disallow origin: http://web-platform.test:8001# +PASS Disallow origin: http://web-platform.test:8001%23 +PASS Disallow origin: http://web-platform.test:8001:80 +PASS Disallow origin: http://web-platform.test:8001, * +FAIL Disallow origin: http://web-platform.test:8001\0 assert_throws: send function "function () { client.send() }" did not throw +PASS Disallow origin: HTTP://WEB-PLATFORM.TEST:8001 +PASS Disallow origin: HTTP://web-platform.test:8001 +PASS Disallow origin: - +PASS Disallow origin: ** +FAIL Disallow origin: \0* assert_throws: send function "function () { client.send() }" did not throw +FAIL Disallow origin: *\0 assert_throws: send function "function () { client.send() }" did not throw +PASS Disallow origin: '*' +PASS Disallow origin: "*" +PASS Disallow origin: * * +PASS Disallow origin: * null +PASS Disallow origin: *http://* +PASS Disallow origin: *http://web-platform.test:8001 +PASS Disallow origin: * http://web-platform.test:8001 +PASS Disallow origin: *, http://web-platform.test:8001 +FAIL Disallow origin: \0http://web-platform.test:8001 assert_throws: send function "function () { client.send() }" did not throw +PASS Disallow origin: null http://web-platform.test:8001 +PASS Disallow origin: http://example.net +PASS Disallow origin: null +PASS Disallow origin: null * +PASS Disallow origin: +PASS Disallow origin: http://web-platform.test:8001/cors/origin.htm +PASS Disallow origin: http://web-platform.test:8001/cors/ +PASS Disallow origin: http://www1.web-platform.test:8001/cors/ +PASS Disallow origin: test:8001 +PASS Disallow origin: .test:8001 +PASS Disallow origin: *.test:8001 +PASS Disallow origin: http://test:8001 +PASS Disallow origin: http://.test:8001 +PASS Disallow origin: http://*.test:8001 +PASS Disallow multiple headers (, *) +PASS Disallow multiple headers (*, ) +PASS Disallow multiple headers (*, *) +PASS Disallow multiple headers (, http://web-platform.test:8001) +PASS Disallow multiple headers (*, http://web-platform.test:8001) +PASS Disallow multiple headers (http://web-platform.test:8001, http://web-platform.test:8001) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/origin.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/origin.htm new file mode 100644 index 0000000..a04a29e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/origin.htm
@@ -0,0 +1,119 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Access-Control-Allow-Origin handling</title> +<link rel=help href=https://fetch.spec.whatwg.org/> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Access-Control-Allow-Origin handling</h1> + +<div id=log></div> + +<script> + +/* + * Origin header + */ +function shouldPass(origin) { + test(function () { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + + '/resources/cors-makeheader.py?origin=' + + encodeURIComponent(origin), + false) + client.send() + r = JSON.parse(client.response) + var host = location.protocol + "//" + location.host + assert_equals(r['origin'], host, 'Request Origin: should be ' + host) + }, 'Allow origin: ' + origin.replace(/\t/g, "[tab]").replace(/ /g, '_')); +} + +shouldPass('*'); +shouldPass(' * '); +shouldPass(' *'); +shouldPass(location.protocol + "//" + location.host); +shouldPass(" "+location.protocol + "//" + location.host); +shouldPass(" "+location.protocol + "//" + location.host + " "); +shouldPass(" "+location.protocol + "//" + location.host); + + +function shouldFail(origin) { + test(function () { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + + '/resources/cors-makeheader.py?origin=' + + encodeURIComponent(origin), + false) + assert_throws("NetworkError", function() { client.send() }, 'send') + }, 'Disallow origin: ' + origin.replace(/\0/g, "\\0")); +} + +shouldFail(location.protocol + "//" + SUBDOMAIN + "." + location.host) +shouldFail("//" + location.host) +shouldFail("://" + location.host) +shouldFail("ftp://" + location.host) +shouldFail("http:://" + location.host) +shouldFail("http:/" + location.host) +shouldFail("http:" + location.host) +shouldFail(location.host) +shouldFail(location.protocol + "//" + location.host + "?") +shouldFail(location.protocol + "//" + location.host + "/") +shouldFail(location.protocol + "//" + location.host + " /") +shouldFail(location.protocol + "//" + location.host + "#") +shouldFail(location.protocol + "//" + location.host + "%23") +shouldFail(location.protocol + "//" + location.host + ":80") +shouldFail(location.protocol + "//" + location.host + ", *") +shouldFail(location.protocol + "//" + location.host + "\0") +shouldFail((location.protocol + "//" + location.host).toUpperCase()) +shouldFail(location.protocol.toUpperCase() + "//" + location.host) +shouldFail("-") +shouldFail("**") +shouldFail("\0*") +shouldFail("*\0") +shouldFail("'*'") +shouldFail('"*"') +shouldFail("* *") +shouldFail("* null") +shouldFail("*" + location.protocol + "//" + "*") +shouldFail("*" + location.protocol + "//" + location.host) +shouldFail("* " + location.protocol + "//" + location.host) +shouldFail("*, " + location.protocol + "//" + location.host) +shouldFail("\0" + location.protocol + "//" + location.host) +shouldFail("null " + location.protocol + "//" + location.host) +shouldFail('http://example.net') +shouldFail('null') +shouldFail('null *') +shouldFail('') +shouldFail(location.href) +shouldFail(dirname(location.href)) +shouldFail(CROSSDOMAIN) +shouldFail(location.host.replace(/^[^\.]+\./, "")) +shouldFail("." + location.host.replace(/^[^\.]+\./, "")) +shouldFail("*." + location.host.replace(/^[^\.]+\./, "")) +shouldFail("http://" + location.host.replace(/^[^\.]+\./, "")) +shouldFail("http://." + location.host.replace(/^[^\.]+\./, "")) +shouldFail("http://*." + location.host.replace(/^[^\.]+\./, "")) + +function doubleOrigin(origin, origin2) { + test(function () { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + + '/resources/cors-makeheader.py?origin=' + + encodeURIComponent(origin) + + '&origin2=' + encodeURIComponent(origin2), + false) + assert_throws("NetworkError", function() { client.send() }, 'send') + }, 'Disallow multiple headers (' + origin + ', ' + origin2 + ')'); +} + +doubleOrigin('', '*'); +doubleOrigin('*', ''); +doubleOrigin('*', '*'); +doubleOrigin('', location.protocol + "//" + location.host); +doubleOrigin('*', location.protocol + "//" + location.host); +doubleOrigin(location.protocol + "//" + location.host, location.protocol + "//" + location.host); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-cache-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-cache-expected.txt new file mode 100644 index 0000000..4e848661 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-cache-expected.txt
@@ -0,0 +1,8 @@ +This is a testharness.js-based test. +PASS Test preflight +PASS preflight for x-print should be cached +PASS age = 0, should not be cached +FAIL age = -1, should not be cached assert_equals: did preflight expected "1" but got "0" +PASS preflight first request, second from cache, wait, third should preflight again +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-cache.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-cache.htm new file mode 100644 index 0000000..72e0fed --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-cache.htm
@@ -0,0 +1,140 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - preflight cache</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Preflight cache</h1> + +<div id=log></div> +<script> + +/* + * Cache + */ + +function did_preflight(expect, client, settings) { + var uuid_token = (settings && settings.token) || token(); + if(!settings) + settings = {} + + set = { + method: 'method' in settings ? settings.method : 'GET', + extra: 'extra' in settings ? '&' + settings.extra : '' + } + + client.open(set.method, + CROSSDOMAIN + 'resources/preflight.py?token=' + uuid_token + set.extra, + false) + client.setRequestHeader('x-print', uuid_token) + client.send() + + client.open('GET', 'resources/preflight.py?check&token=' + uuid_token, false) + client.send() + assert_equals(client.response, expect === true ? '1' : '0', "did preflight") + return uuid_token; +} + +/* + * Should run preflight + */ + +test(function() { + var time = new Date().getTime() + var client = new XMLHttpRequest() + did_preflight(true, client); +}, +'Test preflight') + +test(function() { + var time = new Date().getTime() + var client = new XMLHttpRequest() + + var id = did_preflight(true, client) + did_preflight(false, client, {token: id}) +}, +'preflight for x-print should be cached') + +test(function() { + var time = new Date().getTime() + var client = new XMLHttpRequest() + + var id = did_preflight(true, client, {extra:'max_age=0'}) + did_preflight(true, client, {extra:'max_age=0', token: id}) +}, +'age = 0, should not be cached') + +test(function() { + var time = new Date().getTime() + var client = new XMLHttpRequest() + + var id = did_preflight(true, client, {extra:'max_age=-1'}) + did_preflight(true, client, {extra:'max_age=-1', token: id}) +}, +'age = -1, should not be cached'); + +(function() { + var test = async_test("preflight first request, second from cache, wait, third should preflight again", { timeout: 6000 }), + time = new Date().getTime(), + dothing = function (url, msg, set_request, func) { + client = new XMLHttpRequest(), + client.open('GET', url, true) + if (set_request) + client.setRequestHeader('x-print', msg) + client.onload = test.step_func(function() { + assert_equals(client.response, msg, "response " + url) + if (func) + test.step(func) + }) + client.onerror = test.step_func(function(e) { + assert_unreached("Got unexpected error event on the XHR object") + }) + client.send() + } + + var token1 = token(); + test.step(function() { + /* First cycle, gets x-print into the cache, with timeout 1 */ + var request_url = CROSSDOMAIN + 'resources/preflight.py?max_age=1&token=' + token1; + dothing(request_url, + 'first', true, function() { + test = test; + + /* Check if we did a preflight like we expected */ + dothing('resources/preflight.py?check&1&token=' + token1, + '1', false, function() { + test = test; + dothing(request_url, + 'second', true, function() { + test = test; + + /* Check that we didn't do a preflight (hasn't gone 1 second yet) */ + dothing('resources/preflight.py?check&2&token=' + token1, + '0', false, function() { + test = test; + + /* Wait until the preflight cache age is old (and thus cleared) */ + test.step_timeout(() => { + dothing(request_url, + 'third', true, function() { + test = test; + + /* Expect that we did indeed do a preflight */ + dothing('resources/preflight.py?check&3&token=' + token1, + '1', false, function() { + test.done() + }) + }) + }, 1500) + }) + }) + }) + }) + }) +})(); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-failure.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-failure.htm new file mode 100644 index 0000000..25fe7dd3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/preflight-failure.htm
@@ -0,0 +1,61 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - Preflight responds with non-2XX status code</title> +<meta name=author title="Fernando Jiménez Moreno" href="mailto:ferjmoreno@gmail.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/get-host-info.sub.js></script> + +<h1>Preflight responds with non-2XX status code</h1> + +<div id=log></div> +<script> + +// Request count for cache busting and easy identifying of request in traffic +// analyzer. +var req_c = 0; + +var CROSSDOMAIN_URL = get_host_info().HTTP_REMOTE_ORIGIN + '/cors/resources/cors-makeheader.py?'; + +/* + * Redirection with preflights. + */ +function preflight_failure(code) { + var desc = 'Should throw error if preflight respond with ' + code; + async_test(desc).step(function() { + var client = new XMLHttpRequest(); + var redirect = + encodeURIComponent(CROSSDOMAIN_URL + 'headers=x-test&' + req_c++); + + var isCodeOK = code >= 200 && code <= 299; + + client.open('GET', + CROSSDOMAIN_URL + 'headers=x-test&location=' + redirect + + '&code=' + code + '&preflight=' + code + + '&' + req_c++, + true /* async */); + client.setRequestHeader('x-test', 'test'); + client.onerror = this.step_func(function() { + assert_false(isCodeOK); + this.done(); + }); + client.onreadystatechange = this.step_func(function() { + if (!isCodeOK) + assert_equals(client.status, 0); + }); + client.onload = this.step_func(function() { + assert_true(isCodeOK); + this.done(); + }); + client.send(null); + }); +} +[100, 101, + 200, + 300, 301, 302, 303, 304, 305, 306, 307, 308, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 500, 501, 502, 503, 504, 505 +].forEach(preflight_failure); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-origin.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-origin.htm new file mode 100644 index 0000000..5463292 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-origin.htm
@@ -0,0 +1,195 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - redirect</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>CORS redirect handling</h1> + +<div id=log></div> + +<script> + + // Test count for cache busting and easy identifying of request in traffic analyzer + var num_test = 0, + + origin = location.protocol + "//" + location.host, + remote_origin = origin.replace('://', '://' + SUBDOMAIN + '.'), + + local = dirname(location.href) + 'resources/cors-makeheader.py', + remote = local.replace('://', '://' + SUBDOMAIN + '.'), + remote2 = local.replace('://', '://' + SUBDOMAIN2 + '.'); + + + /* First page Redirect to Expect what */ + + // local -> remote + + redir_test([ 'local', '*' ], [ 'remote', '*' ], origin ); + redir_test([ 'local', '*' ], [ 'remote', origin ], origin ); + redir_test([ 'local', '*' ], [ 'remote', 'null' ], 'disallow'); + redir_test([ 'local', '*' ], [ 'remote', 'none' ], 'disallow'); + + redir_test([ 'local', origin ], [ 'remote', '*' ], origin ); + redir_test([ 'local', origin ], [ 'remote', origin ], origin ); + redir_test([ 'local', origin ], [ 'remote', 'null' ], 'disallow'); + redir_test([ 'local', origin ], [ 'remote', 'none' ], 'disallow'); + + redir_test([ 'local', 'null' ], [ 'remote', '*' ], origin ); + redir_test([ 'local', 'none' ], [ 'remote', '*' ], origin ); + + + // remote -> local + + redir_test([ 'remote', '*' ], [ 'local', '*' ], 'null' ); + redir_test([ 'remote', '*' ], [ 'local', origin ], 'disallow'); + redir_test([ 'remote', '*' ], [ 'local', 'null' ], 'null' ); + redir_test([ 'remote', '*' ], [ 'local', 'none' ], 'disallow'); + + redir_test([ 'remote', origin ], [ 'local', '*' ], 'null' ); + redir_test([ 'remote', origin ], [ 'local', origin ], 'disallow'); + redir_test([ 'remote', origin ], [ 'local', 'null' ], 'null' ); + redir_test([ 'remote', origin ], [ 'local', 'none' ], 'disallow'); + + redir_test([ 'remote', 'null' ], [ 'local', '*' ], 'disallow'); + redir_test([ 'remote', 'none' ], [ 'local', '*' ], 'disallow'); + + + // remote -> remote + + redir_test([ 'remote', '*' ], [ 'remote', '*' ], origin ); + redir_test([ 'remote', '*' ], [ 'remote', origin ], origin ); + redir_test([ 'remote', '*' ], [ 'remote', 'null' ], 'disallow'); + redir_test([ 'remote', '*' ], [ 'remote', 'none' ], 'disallow'); + + redir_test([ 'remote', origin ], [ 'remote', '*' ], origin ); + redir_test([ 'remote', origin ], [ 'remote', origin ], origin ); + redir_test([ 'remote', origin ], [ 'remote', 'null' ], 'disallow'); + redir_test([ 'remote', origin ], [ 'remote', 'none' ], 'disallow'); + + redir_test([ 'remote', 'null' ], [ 'remote', '*' ], 'disallow'); + redir_test([ 'remote', 'none' ], [ 'remote', '*' ], 'disallow'); + + + // remote -> remote2 + + redir_test([ 'remote', '*' ], [ 'remote2', '*' ], 'null' ); + redir_test([ 'remote', '*' ], [ 'remote2', origin ], 'disallow'); + redir_test([ 'remote', '*' ], [ 'remote2', 'null' ], 'null' ); + redir_test([ 'remote', '*' ], [ 'remote2', 'none' ], 'disallow'); + + redir_test([ 'remote', origin ], [ 'remote2', '*' ], 'null' ); + redir_test([ 'remote', origin ], [ 'remote2', origin ], 'disallow'); + redir_test([ 'remote', origin ], [ 'remote2', 'null' ], 'null'); + redir_test([ 'remote', origin ], [ 'remote2', 'none' ], 'disallow'); + + redir_test([ 'remote', 'null' ], [ 'remote2', '*' ], 'disallow'); + redir_test([ 'remote', 'none' ], [ 'remote2', '*' ], 'disallow'); + + + // Bonus weird edge checks + + redir_test([ 'remote', '*' ], [ 'remote', remote_origin ], 'disallow'); + redir_test([ 'remote', '*' ], [ 'remote2', remote_origin ], 'disallow'); + redir_test([ 'remote', remote_origin ], [ 'remote', "*" ], 'disallow'); + + + + /* + * The helpers + */ + + function redir_test(first, second, expect_origin) { + var first_url, second_url, + urls = { "remote": remote, "local": local, "remote2": remote2 }; + + first_url = urls[first[0]] + "?origin=" + first[1]; + second_url = urls[second[0]] + "?origin=" + second[1]; + + if (expect_origin=="disallow") { + shouldFail(first[0]+" ("+first[1]+") to " + + second[0]+" ("+second[1]+"), expect to fail", [ first_url, second_url ]); + } + else { + shouldPass(first[0]+" ("+first[1]+") to " + + second[0]+" ("+second[1]+"), expect origin="+expect_origin, expect_origin, [ first_url, second_url ]); + } + + } + + function shouldPass(desc, expected_origin, urls) { + var test_id = num_test, + t = async_test(desc); + + num_test++; + + t.step(function() { + var final_url, + client = new XMLHttpRequest(); + + client.open('GET', buildURL(urls, test_id)); + + client.onreadystatechange = t.step_func(function() { + if (client.readyState != client.DONE) + return; + assert_true(!!client.response, "Got response"); + r = JSON.parse(client.response) + assert_equals(r['origin'], expected_origin, 'Origin Header') + assert_equals(r['get_value'], 'last', 'get_value') + t.done(); + }); + client.send(null) + }); + } + + function shouldFail(desc, urls) { + var test_id = num_test, + t = async_test(desc); + + num_test++; + + t.step(function() { + var client = new XMLHttpRequest(); + + client.open('GET', buildURL(urls, test_id)); + + client.onreadystatechange = t.step_func(function() { + if (client.readyState != client.DONE) + return; + assert_false(!!client.response, "Got response"); + }); + client.onerror = t.step_func(function(e) { + t.done(); + }); + + client.send(null) + }); + } + + + function buildURL(urls, id) { + var tmp_url; + + if (typeof(urls) == "string") { + return urls + "&" + id + "_0"; + } + + for (var i = urls.length; i--; ) { + if (!tmp_url) + { + tmp_url = urls[i] + "&get_value=last&" + id + "_" + i; + continue; + } + tmp_url = urls[i] + + "&location=" + + encodeURIComponent(tmp_url) + + "&" + id + "_" + i; + } + + return tmp_url; + } + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-preflight-2.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-preflight-2.htm new file mode 100644 index 0000000..fe58d90a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-preflight-2.htm
@@ -0,0 +1,55 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - preflight after a redirect</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> +<script src=/common/utils.js></script> + +<h1>Preflight after redirect</h1> + +<div id=log></div> +<script> + +async_test(function() { + var test_id = "fail_" + new Date().getTime() + var client = new XMLHttpRequest() + var last_url = CROSSDOMAIN + 'resources/cors-makeheader.py?origin=*&ident=' + test_id + + client.open('GET', 'resources/cors-makeheader.py?origin=*&location=' + encodeURIComponent(last_url)) + client.setRequestHeader('custom-header', 'admin') + client.onerror = this.step_func(function() { + this.done() + }) + client.onload = this.step_func(function(e) { assert_unreached("Request should not succeed!") }) + client.send() +}, "Same-origin custom-header request, redirect to cross-origin fails after doing a non-successful preflight") + + +async_test(function() { + var client = new XMLHttpRequest() + var uuid_token = token(); + var last_url = CROSSDOMAIN + 'resources/cors-makeheader.py?headers=custom-header&origin=*&token=' + uuid_token; + + client.open('GET', 'resources/cors-makeheader.py?origin=*&location=' + encodeURIComponent(last_url)) + client.setRequestHeader('custom-header', 'admin') + client.onload = this.step_func(function() { + // Test that I got custom-header + + /* To check whether we did a preflight */ + client.open('GET', 'resources/cors-makeheader.py?check&token=' + uuid_token) + client.onload = this.step_func(function() { + assert_equals(client.response, "1", "did preflight") + this.done() + }) + client.onerror = this.step_func(function(e) { assert_unreached("Error on getting preflight data") }) + client.send() + }) + client.onerror = this.step_func(function(e) { assert_unreached("Error during request", e) }) + client.send() +}, "Same-origin custom-header request, redirect to cross-origin succeeds after doing a preflight") + + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-preflight.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-preflight.htm new file mode 100644 index 0000000..ff64284 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-preflight.htm
@@ -0,0 +1,47 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - redirect with preflight</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> +<meta name=author title="Fernando Jiménez Moreno" href="mailto:ferjmoreno@gmail.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Redirect with preflight</h1> + +<div id=log></div> +<script> + +// Request count for cache busting and easy identifying of request in traffic +// analyzer. +var req_c = 0; + +var CROSSDOMAIN_URL = CROSSDOMAIN + 'resources/cors-makeheader.py?'; + +/* + * Redirection after successfull (200) preflight. + */ +function redir_after_successfull_preflight(code) { + var desc = 'Should allow redirect ' + code + ' after succesful (200) preflight'; + async_test(desc).step(function() { + var client = new XMLHttpRequest(); + var redirect = encodeURIComponent( + CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-test&' + req_c++ + ); + + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?' + + 'preflight=200&headers=x-test&location=' + + redirect + '&code=' + code + '&' + req_c++, + true /* async */); + client.setRequestHeader('x-test', 'test'); + client.onreadystatechange = this.step_func(function() { + assert_equals(client.status, 200, 'Successfull redirect'); + this.done(); + }); + client.send(null); + }); +} +[301, 302, 303, 307, 308].forEach(redir_after_successfull_preflight); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-userinfo.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-userinfo.htm new file mode 100644 index 0000000..fd3864d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/redirect-userinfo.htm
@@ -0,0 +1,99 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - redirect with userinfo</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odinho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>CORS userinfo redirect handling</h1> + +<div id=log></div> + +<script> + + // Test count for cache busting and easy identifying of request in traffic analyzer + var num_test = 0 + + shouldFail("Disallow redirect with userinfo (user:pass@)", [ + CROSSDOMAIN + "resources/cors-makeheader.py?", + CROSSDOMAIN.replace("http://", "http://test:test@") + "resources/cors-makeheader.py?"]); + + shouldFail("Disallow redirect with userinfo (user:@)", [ + CROSSDOMAIN + "resources/cors-makeheader.py?", + CROSSDOMAIN.replace("http://", "http://user:@") + "resources/cors-makeheader.py?"]); + + shouldFail("Disallow redirect with userinfo (user@)", [ + CROSSDOMAIN + "resources/cors-makeheader.py?", + CROSSDOMAIN.replace("http://", "http://user:@") + "resources/cors-makeheader.py?"]); + + shouldPass("Allow redirect without userinfo (:@ is trimmed during URL parsing)", [ + CROSSDOMAIN + "resources/cors-makeheader.py?", + CROSSDOMAIN.replace("http://", "http://:@") + "resources/cors-makeheader.py?"]); + + shouldFail("Disallow redirect with userinfo (:pass@)", [ + CROSSDOMAIN + "resources/cors-makeheader.py?", + CROSSDOMAIN.replace("http://", "http://:pass@") + "resources/cors-makeheader.py?"]); + + shouldPass("Allow redirect without userinfo (@ is trimmed during URL parsing)", [ + CROSSDOMAIN + "resources/cors-makeheader.py?", + CROSSDOMAIN.replace("http://", "http://@") + "resources/cors-makeheader.py?"]); + + function shouldFail(desc, urls) { + var test_id = num_test, + t = async_test(desc); + + num_test++; + + t.step(function() { + var client = new XMLHttpRequest(); + + client.open('GET', buildURL(urls, test_id)); + + client.onload = t.unreached_func(); + client.onerror = t.step_func_done(); + + client.send(null) + }); + } + + function shouldPass(desc, urls) { + var test_id = num_test, + t = async_test(desc); + + num_test++; + + t.step(function() { + var client = new XMLHttpRequest(); + + client.open('GET', buildURL(urls, test_id)); + + client.onload = t.step_func_done(function() { + r = JSON.parse(client.response) + assert_equals(r['get_value'], 'last', 'get_value') + }); + client.onerror = t.unreached_func() + client.send(null) + }); + } + + function buildURL(urls, id) { + var tmp_url; + + for (var i = urls.length; i--; ) { + if (!tmp_url) + { + tmp_url = urls[i] + "&get_value=last&" + id + "_" + i; + continue; + } + tmp_url = urls[i] + + "&location=" + + encodeURIComponent(tmp_url) + + "&" + id + "_" + i; + } + + return tmp_url; + } + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/remote-origin-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/cors/remote-origin-expected.txt new file mode 100644 index 0000000..fd8596b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/remote-origin-expected.txt
@@ -0,0 +1,48 @@ +This is a testharness.js-based test. +PASS Allow origin: * +PASS Allow origin: _*__ +PASS Allow origin: [tab]* +PASS Allow origin: http://www1.web-platform.test:8001 +PASS Allow origin: _http://www1.web-platform.test:8001 +PASS Allow origin: _http://www1.web-platform.test:8001___[tab]_ +PASS Allow origin: [tab]http://www1.web-platform.test:8001 +PASS Disallow origin: http://web-platform.test:8001 +PASS Disallow origin: //www1.web-platform.test:8001 +PASS Disallow origin: ://www1.web-platform.test:8001 +PASS Disallow origin: ftp://www1.web-platform.test:8001 +PASS Disallow origin: http:://www1.web-platform.test:8001 +PASS Disallow origin: http:/www1.web-platform.test:8001 +PASS Disallow origin: http:www1.web-platform.test:8001 +PASS Disallow origin: www1.web-platform.test:8001 +PASS Disallow origin: http://www1.web-platform.test:8001? +PASS Disallow origin: http://www1.web-platform.test:8001/ +PASS Disallow origin: http://www1.web-platform.test:8001_/ +PASS Disallow origin: http://www1.web-platform.test:8001# +PASS Disallow origin: http://www1.web-platform.test:8001%23 +PASS Disallow origin: http://www1.web-platform.test:8001:80 +PASS Disallow origin: http://www1.web-platform.test:8001,_* +FAIL Disallow origin: http://www1.web-platform.test:8001\0 assert_equals: expected "error" but got "load" +PASS Disallow origin: HTTP://WWW1.WEB-PLATFORM.TEST:8001 +PASS Disallow origin: HTTP://www1.web-platform.test:8001 +PASS Disallow origin: http://WWW1.WEB-PLATFORM.TEST:8001 +PASS Disallow origin: - +PASS Disallow origin: ** +FAIL Disallow origin: \0* assert_equals: expected "error" but got "load" +FAIL Disallow origin: *\0 assert_equals: expected "error" but got "load" +PASS Disallow origin: '*' +PASS Disallow origin: "*" +PASS Disallow origin: *_* +PASS Disallow origin: *http://* +PASS Disallow origin: *http://www1.web-platform.test:8001 +PASS Disallow origin: *_http://www1.web-platform.test:8001 +PASS Disallow origin: *,_http://www1.web-platform.test:8001 +FAIL Disallow origin: \0http://www1.web-platform.test:8001 assert_equals: expected "error" but got "load" +PASS Disallow origin: null_http://www1.web-platform.test:8001 +PASS Disallow origin: http://example.net +PASS Disallow origin: null +PASS Disallow origin: +PASS Disallow origin: http://web-platform.test:8001/cors/remote-origin.htm +PASS Disallow origin: http://web-platform.test:8001/cors/ +PASS Disallow origin: http://www1.web-platform.test:8001/cors/ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/remote-origin.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/remote-origin.htm new file mode 100644 index 0000000..0726775 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/remote-origin.htm
@@ -0,0 +1,121 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Access-Control-Allow-Origin handling</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Access-Control-Allow-Origin handling</h1> + +<div id=log></div> + +<script> + +var remote_tests = []; +var iframe = document.createElement("iframe") +iframe.src = CROSSDOMAIN + 'resources/remote-xhrer.html'; +document.body.appendChild(iframe); + +function reverseOrigin(expect_pass, origin) +{ + var real_origin = origin.replace("<host>", REMOTE_HOST) + .replace("<remote_origin>", location.protocol + "//" + location.host) + .replace("<origin>", REMOTE_ORIGIN) + .replace("<protocol>", REMOTE_PROTOCOL) + .replace("<HOST>", REMOTE_HOST.toUpperCase()) + .replace("<ORIGIN>", REMOTE_ORIGIN.toUpperCase()) + .replace("<PROTOCOL>", REMOTE_PROTOCOL.toUpperCase()); + + var t = async_test((expect_pass ? 'Allow origin: ' : 'Disallow origin: ') + real_origin + .replace(/\0/g, "\\0") + .replace(/\t/g, "[tab]") + .replace(/ /g, '_')); + t.step(function() { + this.test_url = dirname(location.href) + + 'resources/cors-makeheader.py?origin=' + + encodeURIComponent(real_origin); + iframe.contentWindow.postMessage({ url: this.test_url, origin: origin }, "*"); + }); + + if (expect_pass) + { + t.callback = t.step_func(function(e) { + assert_equals(e.state, "load"); + r = JSON.parse(e.response) + assert_equals(r['origin'], REMOTE_ORIGIN, 'Request Origin: should be ' + REMOTE_ORIGIN) + this.done(); + }); + } + else + { + t.callback = t.step_func(function(e) { + assert_equals(e.state, "error"); + assert_equals(e.response, ""); + this.done(); + }); + } + + remote_tests[origin] = t; +} + +function shouldPass(origin) { reverseOrigin(true, origin); } +function shouldFail(origin) { reverseOrigin(false, origin); } + + +iframe.onload = function() { + shouldPass('*'); + shouldPass(' * '); + shouldPass(' *'); + shouldPass("<origin>"); + shouldPass(" <origin>"); + shouldPass(" <origin> "); + shouldPass(" <origin>"); + + shouldFail("<remote_origin>") + shouldFail("//" + "<host>") + shouldFail("://" + "<host>") + shouldFail("ftp://" + "<host>") + shouldFail("http:://" + "<host>") + shouldFail("http:/" + "<host>") + shouldFail("http:" + "<host>") + shouldFail("<host>") + shouldFail("<origin>" + "?") + shouldFail("<origin>" + "/") + shouldFail("<origin>" + " /") + shouldFail("<origin>" + "#") + shouldFail("<origin>" + "%23") + shouldFail("<origin>" + ":80") + shouldFail("<origin>" + ", *") + shouldFail("<origin>" + "\0") + shouldFail(("<ORIGIN>")) + shouldFail("<PROTOCOL>//<host>") + shouldFail("<protocol>//<HOST>") + shouldFail("-") + shouldFail("**") + shouldFail("\0*") + shouldFail("*\0") + shouldFail("'*'") + shouldFail('"*"') + shouldFail("* *") + shouldFail("*" + "<protocol>" + "//" + "*") + shouldFail("*" + "<origin>") + shouldFail("* " + "<origin>") + shouldFail("*, " + "<origin>") + shouldFail("\0" + "<origin>") + shouldFail("null " + "<origin>") + shouldFail('http://example.net') + shouldFail('null') + shouldFail('') + shouldFail(location.href) + shouldFail(dirname(location.href)) + shouldFail(CROSSDOMAIN) +} + +window.addEventListener("message", function(e) { + remote_tests[e.data.origin].callback(e.data); +}); + +add_completion_callback(function() { + iframe.parentElement.removeChild(iframe); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/request-headers.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/request-headers.htm new file mode 100644 index 0000000..289f402 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/request-headers.htm
@@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - request headers - Access-Control-Allow-Headers</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Request headers</h1> +<div id=log></div> +<script> + +/* + * Request Headers + */ + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) + client.setRequestHeader('x-print', 'unicorn') + client.send(null) + + res = JSON.parse(client.response) + assert_equals(res['x-print'], 'unicorn') +}, 'basic request header') + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print,', false) + client.setRequestHeader('x-print', 'unicorn') + client.setRequestHeader('content-type', 'text/plain') + client.setRequestHeader('accept', 'test') + client.setRequestHeader('accept-language', 'nn') + client.setRequestHeader('content-language', 'nn') + client.send(null) + + res = JSON.parse(client.response) + assert_equals(res['x-print'], 'unicorn') + assert_equals(res['content-type'], 'text/plain') + assert_equals(res['accept'], 'test') + assert_equals(res['accept-language'], 'nn') + assert_equals(res['content-language'], 'nn') +}, 'Simple request headers need not be in allow-headers') + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) + client.setRequestHeader('x-print', 'unicorn') + client.setRequestHeader('y-print', 'unicorn') + assert_throws("NetworkError", function() { client.send(null) }) +}, 'Unspecified request headers are disallowed') + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=,y-lol,x-PriNT,%20,,,Y-PRINT', false) + client.setRequestHeader('x-print', 'unicorn') + client.setRequestHeader('y-print', 'narwhal') + client.send(null) + + res = JSON.parse(client.response) + assert_equals(res['x-print'], 'unicorn') + assert_equals(res['y-print'], 'narwhal') +}, 'Strange allowheaders (case insensitive)') + +test(function() { + var client = new XMLHttpRequest() + assert_throws('INVALID_STATE_ERR', function() { client.setRequestHeader('x-print', 'unicorn') }) +}, +'INVALID_STATE_ERR on setRequestHeader before open()') + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=,y-lol,x-PriNT,%20,,,Y-PRINT', false) + client.send() + assert_throws('INVALID_STATE_ERR', function() { client.setRequestHeader('x-print', 'unicorn') }) +}, +'INVALID_STATE_ERR on setRequestHeader after send()') + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/.gitignore b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/.gitignore new file mode 100644 index 0000000..7b987d0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/.gitignore
@@ -0,0 +1 @@ +logs.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/304.py b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/304.py new file mode 100755 index 0000000..2fc83b9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/304.py
@@ -0,0 +1,62 @@ +#!/usr/bin/env python + +# A header used to correlate requests and responses +state_header = "content-language" + +# Static ETag to use (and expect) +etag = "abcdef" + +def error(msg): + return (299, "Client Error"), [ + ('content-type', 'text/plain'), + ('access-control-allow-origin', "*"), + ('access-control-expose-headers', state_header), + ('cache-control', 'no-store') + ], msg + +def main(request, response): + headers = [] + + inm = request.headers.get('if-none-match', None) + raw_req_num = request.headers.get(state_header, None) + if raw_req_num == None: + return error("no req_num header in request") + else: + req_num = int(raw_req_num) + if req_num > 8: + return error("req_num %s out of range" % req_num) + + headers.append(("Access-Control-Expose-Headers", state_header)) + headers.append((state_header, req_num)) + headers.append(("A", req_num)) + headers.append(("B", req_num)) + + if req_num % 2: # odd requests are the first in a test pair + if inm: + # what are you doing here? This should be a fresh request. + return error("If-None-Match on first request") + else: + status = 200, "OK" + headers.append(("Access-Control-Allow-Origin", "*")) + headers.append(("Content-Type", "text/plain")) + headers.append(("Cache-Control", "private, max-age=3, must-revalidate")) + headers.append(("ETag", etag)) + return status, headers, "Success" + else: # even requests are the second in a pair, and should have a good INM. + if inm != etag: + # Bad browser. + if inm == None: + return error("If-None-Match missing") + else: + return error("If-None-Match '%s' mismatches") + else: + if req_num == 2: + pass # basic, vanilla check + elif req_num == 4: + headers.append(("Access-Control-Expose-Headers", "a, b")) + elif req_num == 6: + headers.append(("Access-Control-Expose-Headers", "a")) + elif req_num == 8: + headers.append(("Access-Control-Allow-Origin", "other.origin.example:80")) + status = 304, "Not Modified" + return status, headers, ""
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/checkandremove.py b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/checkandremove.py new file mode 100644 index 0000000..f713d99 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/checkandremove.py
@@ -0,0 +1,6 @@ +def main(request, response): + token = request.GET.first("token") + if request.server.stash.remove(token) is not None: + return "1" + else: + return "0"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-cookie.py b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-cookie.py new file mode 100644 index 0000000..76fa6c1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-cookie.py
@@ -0,0 +1,21 @@ + +def main(request, response): + origin = request.GET.first("origin", request.headers["origin"]) + credentials = request.GET.first("credentials", "true") + + headers = [("Content-Type", "text/plain")] + if origin != 'none': + headers.append(("Access-Control-Allow-Origin", origin)) + if credentials != 'none': + headers.append(("Access-Control-Allow-Credentials", credentials)) + + ident = request.GET.first('ident', 'test') + + if ident in request.cookies: + body = request.cookies[ident].value + response.delete_cookie(ident) + else: + response.set_cookie(ident, "COOKIE"); + body = "NO_COOKIE" + + return headers, body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-headers.asis b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-headers.asis new file mode 100644 index 0000000..ce21245f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-headers.asis
@@ -0,0 +1,24 @@ +HTTP/1.1 200 OK +Access-Control-Allow-Origin: * +Access-Control-Expose-Headers: X-Custom-Header, X-Custom-Header-Empty, X-Custom-Header-Comma, X-Custom-Header-Bytes +Access-Control-Expose-Headers: X-Second-Expose +Access-Control-Expose-Headers: Date +Content-Type: text/plain +X-Custom-Header: test +X-Custom-Header: test +Set-Cookie: test1=t1;max-age=2 +Set-Cookie2: test2=t2;Max-Age=2 +X-Custom-Header-Empty: +X-Custom-Header-Comma: 1 +X-Custom-Header-Comma: 2 +X-Custom-Header-Bytes: … +X-Nonexposed: unicorn +X-Second-Expose: flyingpig +Cache-Control: no-cache +Content-Language: nn +Expires: Thu, 01 Dec 1994 16:00:00 GMT +Last-Modified: Thu, 01 Dec 1994 10:00:00 GMT +Pragma: no-cache +Date: Wed, 22 Oct 2013 10:00:00 GMT + +TEST
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-makeheader.py b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-makeheader.py new file mode 100644 index 0000000..eab35ee --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/cors-makeheader.py
@@ -0,0 +1,67 @@ +import json + +def main(request, response): + origin = request.GET.first("origin", request.headers.get('origin')) + + if "check" in request.GET: + token = request.GET.first("token") + value = request.server.stash.take(token) + if value is not None: + if request.GET.first("check", None) == "keep": + request.server.stash.put(token, value) + body = "1" + else: + body = "0" + return [("Content-Type", "text/plain")], body + + + if origin != 'none': + response.headers.set("Access-Control-Allow-Origin", origin) + if 'origin2' in request.GET: + response.headers.append("Access-Control-Allow-Origin", request.GET.first('origin2')) + + #Preflight + if 'headers' in request.GET: + response.headers.set("Access-Control-Allow-Headers", request.GET.first('headers')) + if 'credentials' in request.GET: + response.headers.set("Access-Control-Allow-Credentials", request.GET.first('credentials')) + if 'methods' in request.GET: + response.headers.set("Access-Control-Allow-Methods", request.GET.first('methods')) + + code_raw = request.GET.first('code', None) + if code_raw: + code = int(code_raw) + else: + code = None + if request.method == 'OPTIONS': + #Override the response code if we're in a preflight and it's asked + if 'preflight' in request.GET: + code = int(request.GET.first('preflight')) + + #Log that the preflight actually happened if we have an ident + if 'token' in request.GET: + request.server.stash.put(request.GET['token'], True) + + if 'location' in request.GET: + if code is None: + code = 302 + + if code >= 300 and code < 400: + response.headers.set("Location", request.GET.first('location')) + + headers = {} + for name, values in request.headers.iteritems(): + if len(values) == 1: + headers[name] = values[0] + else: + #I have no idea, really + headers[name] = values + + headers['get_value'] = request.GET.first('get_value', '') + + body = json.dumps(headers) + + if code: + return (code, "StatusText"), [], body + else: + return body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/preflight.py b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/preflight.py new file mode 100644 index 0000000..978e97c5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/preflight.py
@@ -0,0 +1,35 @@ +def main(request, response): + headers = [("Content-Type", "text/plain")] + + if "check" in request.GET: + token = request.GET.first("token") + value = request.server.stash.take(token) + if value == None: + body = "0" + else: + if request.GET.first("check", None) == "keep": + request.server.stash.put(token, value) + body = "1" + + return headers, body + + if request.method == "OPTIONS": + if not "Access-Control-Request-Method" in request.headers: + response.set_error(400, "No Access-Control-Request-Method header") + return "ERROR: No access-control-request-method in preflight!" + + headers.append(("Access-Control-Allow-Methods", + request.headers['Access-Control-Request-Method'])) + + if "max_age" in request.GET: + headers.append(("Access-Control-Max-Age", request.GET['max_age'])) + + if "token" in request.GET: + request.server.stash.put(request.GET.first("token"), 1) + + headers.append(("Access-Control-Allow-Origin", "*")) + headers.append(("Access-Control-Allow-Headers", "x-print")) + + body = request.headers.get("x-print", "NO") + + return headers, body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/remote-xhrer.html b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/remote-xhrer.html new file mode 100644 index 0000000..73a7cb4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/remote-xhrer.html
@@ -0,0 +1,28 @@ +<!doctype html> +<title>Child helper</title> + +<script> +window.addEventListener("message", function(e) { +// e.source.postMessage(e.data, e.origin); + + var client = new XMLHttpRequest(); + var localurl = e.data.url + .replace("<host>", location.host) + .replace("<protocol>", location.protocol); + + client.open('GET', localurl, true); + client.onload = function() { + e.data.state = "load"; + e.data.response = client.response; + e.source.postMessage(e.data, e.origin); + } + client.onerror = function() { + e.data.state = "error"; + e.data.response = client.response; + e.source.postMessage(e.data, e.origin); + } + client.send(); +}); +</script> + +The remote window
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/resources/status.py b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/status.py new file mode 100644 index 0000000..8d441f0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/resources/status.py
@@ -0,0 +1,37 @@ +def main(request, response): + response.headers.set("Access-Control-Allow-Origin", request.headers.get("origin") ) + response.headers.set("Access-Control-Expose-Headers", "X-Request-Method") + + if request.method == 'OPTIONS': + response.headers.set("Access-Control-Allow-Methods", "GET, CHICKEN, HEAD, POST, PUT") + + if 'headers' in request.GET: + response.headers.set("Access-Control-Allow-Headers", request.GET.first('headers')) + + response.headers.set("X-Request-Method", request.method) + + response.headers.set("X-A-C-Request-Method", request.headers.get("Access-Control-Request-Method", "")); + + + #This should reasonably work for most response codes. + try: + code = int(request.GET.first("code", 200)) + except ValueError: + code = 200 + + text = request.GET.first("text", "OMG") + + if request.method == "OPTIONS" and "preflight" in request.GET: + try: + code = int(request.GET.first('preflight')) + except KeyError, ValueError: + pass + + status = code, text + + if "type" in request.GET: + response.headers.set("Content-Type", request.GET.first('type')) + + body = request.GET.first('content', "") + + return status, [], body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/response-headers.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/response-headers.htm new file mode 100644 index 0000000..d4d7cf23 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/response-headers.htm
@@ -0,0 +1,103 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - Response headers</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Response headers</h1> +<div id=log></div> +<script> + +/* + * Response Headers + */ + +function check_response_header(head, value, desc) { + test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-headers.asis', false) + client.send(null) + + if (typeof value === 'function') + value(client, head) + else + assert_equals(client.getResponseHeader(head), value, head) + }, + desc) +} +check_response_header('X-Custom-Header-Comma', '1, 2', 'getResponseHeader: Expose Access-Control-Expose-Headers (x-custom-header-comma)') +check_response_header('X-Second-Expose', 'flyingpig', 'getResponseHeader: Expose second Access-Control-Expose-Headers (x-second-expose)') +check_response_header(' x-custom-header', null, 'getResponseHeader: Don\'t trim whitespace') +check_response_header('x-custom-header-bytes', "\xE2\x80\xA6", 'getResponseHeader: x-custom-header bytes') +check_response_header('Date', + function(client, head) { assert_true(client.getResponseHeader(head).length > 2) }, + 'getResponseHeader: Exposed server field readable (Date)') + +function default_readable(head, value) { + check_response_header(head, value, 'getResponseHeader: '+head+': readable by default') +} +default_readable("Cache-Control", "no-cache"); +default_readable("Content-Language", "nn"); +default_readable("Expires", "Thu, 01 Dec 1994 16:00:00 GMT"); +default_readable("Last-Modified", "Thu, 01 Dec 1994 10:00:00 GMT"); +default_readable("Pragma", "no-cache"); + + +function default_unreadable(head) { + check_response_header(head, null, 'getResponseHeader: '+head+': unreadable by default') +} +default_unreadable("Server") +default_unreadable("X-Powered-By") + + +async_test("getResponseHeader: Combined testing of cors response headers") +.step(function() +{ + var client = new XMLHttpRequest(); + client.open("GET", CROSSDOMAIN + 'resources/cors-headers.asis') + window.c=client; + client.onreadystatechange = this.step_func(function() + { + if (client.readyState == 1) + { + assert_equals(client.getResponseHeader("x-custom-header"), null, 'x-custom-header') + } + if (client.readyState > 1) + { + assert_equals(client.getResponseHeader("x-custom-header"), "test, test", 'x-custom-header') + assert_equals(client.getResponseHeader("x-custom-header-empty"), "", 'x-custom-header-empty') + assert_equals(client.getResponseHeader("set-cookie"), null) + assert_equals(client.getResponseHeader("set-cookie2"), null) + assert_equals(client.getResponseHeader("x-non-existent-header"), null) + assert_equals(client.getResponseHeader("x-nonexposed"), null) + } + if (client.readyState == 4) + { + this.done() + } + }) + client.send() +}) + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-headers.asis', false) + client.send(null) + assert_equals(client.getResponseHeader("x-custom-header"), "test, test", 'x-custom-header') + assert_equals(client.getResponseHeader("x-nonexposed"), null, 'x-nonexposed') +}, "getResponse: don't expose x-nonexposed") + +test(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-headers.asis', false) + client.send(null) + + h = client.getAllResponseHeaders().toLowerCase() + assert_true( h.indexOf('x-custom-header') >= 0, 'x-custom-header present') + assert_true( h.indexOf('x-nonexposed') === -1, 'x-nonexposed not present') +}, "getAllResponseHeaders: don't expose x-nonexposed") + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/simple-requests.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/simple-requests.htm new file mode 100644 index 0000000..441a8c1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/simple-requests.htm
@@ -0,0 +1,91 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - simple requests</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> +<script src=/common/utils.js></script> + +<h1>Simple requests</h1> +<p>Simple requests shouldn't trigger preflight</p> + +<div id=log></div> +<script> + +var test_c = 0; + +function check_simple(method, headers) +{ + test(function() { + var client = new XMLHttpRequest() + var uuid_token = token(); + client.open(method, CROSSDOMAIN + 'resources/preflight.py?token=' + + uuid_token, false) + for (head in headers) + client.setRequestHeader(head, headers[head]) + client.send("data") + assert_equals(client.getResponseHeader('content-type'), "text/plain") + if (method == 'HEAD') + assert_equals(client.response, '', 'response') + else + assert_equals(client.response, 'NO', 'response') + + client.open('GET', 'resources/preflight.py?check&token=' + + uuid_token, false) + client.send("data") + assert_equals(client.response, "0", "Found preflight log") + }, + 'No preflight ' + method + ' and ' + JSON.stringify(headers)) +} + +function check_simple_headers(headers) { + check_simple('GET', headers) + check_simple('HEAD', headers) + check_simple('POST', headers) +} + +check_simple_headers({'Accept': 'test'}) +check_simple_headers({'accept-language': 'test'}) +check_simple_headers({'CONTENT-language': 'test'}) + +check_simple_headers({'Content-Type': 'application/x-www-form-urlencoded'}) +check_simple_headers({'content-type': 'multipart/form-data'}) +check_simple_headers({'content-type': 'text/plain'}) + +check_simple_headers({ + 'accept': 'test', + 'accept-language': 'test', + 'content-language': 'test', + 'content-type': 'text/plain; parameter=whatever' + }) + +check_simple('Get', {'content-type': 'text/plain; parameter=extra_bonus'}) +check_simple('post', {'content-type': 'text/plain'}) + + +/* Extra async test */ + +var simple_async = async_test("Check simple headers (async)") +simple_async.step(function (){ + var time = new Date().getTime(), + client = new XMLHttpRequest() + var uuid_token = token(); + client.open('POST', CROSSDOMAIN + 'resources/preflight.py?token=' + + uuid_token, true) + + client.setRequestHeader('Accept', 'jewelry') + client.setRequestHeader('accept-language', 'nn_NO,nn,en') + client.setRequestHeader('content-type', 'text/plain; parameter=extra') + client.setRequestHeader('content-Language', 'nn_NO') + + client.onload = simple_async.step_func(function() { + assert_equals(client.getResponseHeader('content-type'), "text/plain", 'content-type response header') + assert_equals(client.response, 'NO', 'response') + simple_async.done() + }) + client.onerror = simple_async.step_func(function () { assert_unreached('onerror') }) + client.send() +}) +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/status-async.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/status-async.htm new file mode 100644 index 0000000..3573ee8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/status-async.htm
@@ -0,0 +1,114 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - status</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> +<meta name=timeout content=long> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Status returned</h1> + +<div id=log></div> +<script> + +function statusRequest(method, code, text, content, type) { + async_test("Status on " + method + " " + code, { timeout: 15000 }) + .step(function() { + var client = new XMLHttpRequest() + client.open(method, CROSSDOMAIN + "resources/status.py?code=" + + code + "&text=" + text + "&content=" + content + "&type=" + type, true) + client.onreadystatechange = this.step_func(function() { + if (client.readyState != client.DONE) + return + + assert_equals(client.status, code, 'response status') + assert_equals(client.statusText, text, 'response status text') + assert_equals(client.getResponseHeader("X-Request-Method"), method, 'method') + if(method != "HEAD") { + if(type == "text/xml") { + assert_equals(client.responseXML.documentElement.localName, + "x", 'responseXML') + } + assert_equals(client.response, content, 'response content') + } + this.done() + }) + + client.send(null) + }) +} + + /* method code text content type */ + statusRequest("GET", 200, 'OK', 'Not today.', '') + statusRequest("GET", 201, 'OK/Created', 'Not today 01.', '') + statusRequest("GET", 202, 'OK/Accepted', 'Not today 02.', '') + statusRequest("GET", 203, 'OK/Non-Authoritative Information', 'Not today 03.', '') + statusRequest("GET", 204, 'OK/No Content', '', '') // specifically no-content + statusRequest("GET", 205, 'OK/Reset Content', '', '') // specifically no-content + statusRequest("GET", 206, 'OK/Partial Content', 'Not today 06.', '') + statusRequest("GET", 209, 'OK', 'Not today 09.', '') + statusRequest("GET", 299, 'OK', 'Not today 99.', '') + statusRequest("POST", 200, 'OK', '<x>402<\/x>', 'text/xml') + statusRequest("HEAD", 200, 'OK', 'Nice!', 'text/doesnotmatter') + statusRequest("PUT", 200, 'OK', '400', 'text/plain') + statusRequest("CHICKEN", 200, 'OK', 'bah', '') + + +function statusRequestFail(method, code, expect_code, nonsimple) { + if (expect_code === undefined) + expect_code = code + + async_test("Status on " + method + " " + code + (nonsimple?' (nonsimple)':''), { timeout: 15000 }) + .step(function() { + var client = new XMLHttpRequest() + + client.open(method, CROSSDOMAIN + "resources/status.py?code=" + + code + '&headers=x-nonsimple&text=OHAI', true) + + if (nonsimple) + client.setRequestHeader('x-nonsimple', true) + + client.onreadystatechange = this.step_func(function() { + if (client.readyState < client.HEADERS_RECEIVED) + return + assert_equals(client.response, "", "response data") + assert_equals(client.status, expect_code, "response status") + /* Response code 200 forces webserver to send OK(?) */ + if(expect_code == 200) + assert_equals(client.statusText, "OK", "response statusText") + else + assert_equals(client.statusText, (expect_code == 0 ? "" : "OHAI"), "response statusText") + if (client.readyState == client.DONE) + this.done() + }) + + client.onerror = this.step_func(function(e) { + assert_unreached("Got error event.") + }) + + client.send() + }) +} + + /* expect + method code status */ + statusRequestFail("GET", 400) + statusRequestFail("HEAD", 401) + statusRequestFail("POST", 404) + statusRequestFail("POST", 500) + + /* Preflight response status is not 200, so the algorithm set status to 0. */ + statusRequestFail("PUT", 699, 0) + statusRequestFail("CHICKEN", 501, 0) + + /* "forced" + preflight */ + statusRequestFail("GET", 400, 0, true) + statusRequestFail("HEAD", 401, 0, true) + statusRequestFail("POST", 404, 0, true) + statusRequestFail("PUT", 699, 0, true) + statusRequestFail("CHICKEN", 501, 0, true) + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/status-preflight.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/status-preflight.htm new file mode 100644 index 0000000..a72c2fd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/status-preflight.htm
@@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS - status after preflight</title> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=support.js?pipe=sub></script> + +<h1>Status after preflight</h1> + +<div id=log></div> +<script> +var counter = 0 + +function statusAfterPreflight(method, code) { + counter++ + + async_test(document.title + " on " + method + " " + code).step(function() { + var client = new XMLHttpRequest() + client.open(method, CROSSDOMAIN + "resources/status.py?" + counter + +"&code=" + code + '&headers=x-nonsimple&preflight=200', true) + + client.setRequestHeader('x-nonsimple', true) + client.onreadystatechange = this.step_func(function() { + if (client.readyState < client.HEADERS_RECEIVED) + return + assert_equals(client.response, "", "response data") + assert_equals(client.status, code, "response status") + if (client.readyState == client.DONE) { + /* Wait for spurious error events */ + this.step_timeout(() => { this.done() }, 10) + } + }) + + client.onerror = this.step_func(function() { + assert_unreached("Shouldn't throw no error event!") + }) + + client.send() + }) +} + +/* method code */ +statusAfterPreflight("GET", 200) +statusAfterPreflight("GET", 204) +statusAfterPreflight("GET", 400) +statusAfterPreflight("GET", 401) + +statusAfterPreflight("HEAD", 200) +statusAfterPreflight("HEAD", 204) +statusAfterPreflight("HEAD", 400) +statusAfterPreflight("HEAD", 401) +statusAfterPreflight("HEAD", 501) +statusAfterPreflight("HEAD", 699) + +statusAfterPreflight("POST", 204) +statusAfterPreflight("POST", 400) +statusAfterPreflight("POST", 401) +statusAfterPreflight("POST", 404) + +statusAfterPreflight("PUT", 699) +statusAfterPreflight("CHICKEN", 501) + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/status.htm b/third_party/WebKit/LayoutTests/external/wpt/cors/status.htm new file mode 100644 index 0000000..7324428 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/status.htm
@@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CORS status</title> +<link rel=help href=https://fetch.spec.whatwg.org/> +<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support.js?pipe=sub"></script> + +<h1>The returned status code in different scenarios</h1> + +<script> + + var counter = 0 + + function testit(allow, preflight, response, status) { + async_test( + (++counter) + '. ' + + (allow ? 'CORS allowed' : 'CORS disallowed') + + (preflight ? ', preflight status '+preflight : '') + + (response ? ', response status '+response : '') + + '.' + ).step(function() { + var client = new XMLHttpRequest() + client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?' + counter + + (allow ? '&headers=x-custom': '&origin=none') + + (response ? '&code='+response : '') + + (preflight ? '&preflight='+preflight : '') + ) + + if (preflight) + client.setRequestHeader('X-Custom', 'preflight') + + client.onload = this.step_func(function() { + if (!status) + assert_unreached("load event") + + /* Allow spurious error events to fire */ + this.step_timeout(() => { + assert_equals(client.status, status, "status") + this.done() + }, 10) + }) + + client.onerror = this.step_func(function() { + if (status) + assert_unreached("error event") + + assert_equals(client.readyState, client.DONE, 'readyState') + assert_equals(client.status, 0, 'status') + this.done() + }) + + client.send() + + }) + } + + /* allow pref resp status */ + testit(false, null, 400, 0) + testit(false, 200, null, 0) + testit(true, null, 400, 400) + testit(true, 200, 400, 400) + testit(true, 400, null, 0) + +</script> + +<pre> + allowed preflight response | status | + ------- --------- -------- | ------ | + 1 no x 400 | 0 | + 2 no 200 x | 0 | + 3 yes x 400 | 400 | + 4 yes 200 400 | 400 | + 5 yes 400 x | 0 | +</pre> + +<div id=log></div> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cors/support.js b/third_party/WebKit/LayoutTests/external/wpt/cors/support.js new file mode 100644 index 0000000..551eb70d0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cors/support.js
@@ -0,0 +1,30 @@ +// For ignoring exception names (just for testing) +/* +_real_assert_throws = assert_throws; +function assert_throws(d, func, desc) { + try { + func(); + } catch(e) { + return true; + } + assert_unreached("Didn't throw!"); +} +*/ + +function dirname(path) { + return path.replace(/\/[^\/]*$/, '/') +} + +/* This subdomain should point to this same location */ +var SUBDOMAIN = 'www1' +var SUBDOMAIN2 = 'www2' +var PORT = {{ports[http][1]}} +//XXX HTTPS +var PORTS = {{ports[https][0]}} + +/* Changes http://example.com/abc/def/cool.htm to http://www1.example.com/abc/def/ */ +var CROSSDOMAIN = dirname(location.href) + .replace('://', '://' + SUBDOMAIN + '.') +var REMOTE_HOST = SUBDOMAIN + '.' + location.host +var REMOTE_PROTOCOL = location.protocol +var REMOTE_ORIGIN = REMOTE_PROTOCOL + '//' + REMOTE_HOST
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006-ref.html new file mode 100644 index 0000000..b93c156 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006-ref.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html lang=en class="reftest-wait"> +<meta charset="utf-8"> +<title>Selectors Level 4: focus-within Reference File</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<style> +:focus { + outline: none; + + /* Make the caret invisible + since it matches the color of the text, which is transparent, + while keeping the text readable thanks to its shadow. + Not using the caret-color property as it is too new to be relied on. */ + color: transparent; text-shadow: black 0px 0px 0px; +} + +div { + border: solid 15px green; +} +</style> +<p>Test passes if, when the element below is focused, +it is surrounded by a thick green border. +There must be no red or blue once it is focused.</p> +<div> + <input id="focusme" value="Focus this element"> +</div> +<script> +var focusme = document.getElementById('focusme'); +focusme.focus(); +document.documentElement.classList.remove('reftest-wait'); +</script> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006.html index 4a515d7..ff63cce 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-006.html
@@ -5,12 +5,10 @@ <link rel="author" title="Keyong Li" href="mailto:kli79@bloomberg.net"> <link rel="author" title="Florian Rivoal" href="mailto:florian@rivoal.net"> <link rel="help" href="https://drafts.csswg.org/selectors-4/#focus-within-pseudo"> -<link rel="match" href="focus-within-001-ref.html"> +<link rel="match" href="focus-within-006-ref.html"> <meta name="assert" content="Test that :focus-within works on form controls, using an input element."> <style> -/* Suppress things that cannot be reproduced in the reference file */ :focus { - all: initial; outline: none; /* Make the caret invisible
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-010.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-010.html new file mode 100644 index 0000000..2476e03 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-010.html
@@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html lang=en class="reftest-wait"> +<meta charset="utf-8"> +<title>Selectors Level 4: focus-within</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/selectors-4/#focus-within-pseudo"> +<link rel="match" href="focus-within-shadow-001-ref.html"> +<meta name="assert" content="Checks that :focus-within is still applied when focus moves from an element to one of its descendants."> +<style> +/* Suppress things that cannot be reproduced in the reference file */ +:focus { + outline: none; +} + +#target { + display: none; +} + +#wrapper:focus-within > #target { + display: block; +} + +#target:focus { + border: solid 15px green; +} +</style> +<p>Test passes if there is a green rectangle below.</p> +<div id="wrapper" tabindex="1"> + <div id="target" tabindex="2"></div> +</div> +<script> +var wrapper = document.getElementById('wrapper'); +wrapper.focus(); +var target = document.getElementById('target'); +target.focus(); +document.documentElement.classList.remove('reftest-wait'); +</script> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-001.html index df94e36..012a774 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-001.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-001.html
@@ -31,11 +31,9 @@ var template = document.getElementById('shadow-template'); var instance = document.importNode(template.content, true); shadow.appendChild(instance); -window.setTimeout(function() { - var focusme = shadow.getElementById('focusme'); - focusme.focus(); - document.documentElement.classList.remove('reftest-wait'); -}, 0); +var focusme = shadow.getElementById('focusme'); +focusme.focus(); +document.documentElement.classList.remove('reftest-wait'); </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-002.html index fcea010..50b30df 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-002.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-002.html
@@ -32,11 +32,9 @@ var template = document.getElementById('shadow-template'); var instance = document.importNode(template.content, true); shadow.appendChild(instance); -window.setTimeout(function() { - var focusme = shadow.getElementById('focusme'); - focusme.focus(); - document.documentElement.classList.remove('reftest-wait'); -}, 0); +var focusme = shadow.getElementById('focusme'); +focusme.focus(); +document.documentElement.classList.remove('reftest-wait'); </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-003.html index 330d1a1..48901b2 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-003.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-003.html
@@ -34,11 +34,9 @@ var template = document.getElementById('shadow-template'); var instance = document.importNode(template.content, true); shadow.appendChild(instance); -window.setTimeout(function() { - var focusme = shadow.getElementById('focusme'); - focusme.focus(); - document.documentElement.classList.remove('reftest-wait'); -}, 0); +var focusme = shadow.getElementById('focusme'); +focusme.focus(); +document.documentElement.classList.remove('reftest-wait'); </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-004.html index 49cf1483..6beed1f 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-004.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-004.html
@@ -40,11 +40,9 @@ var template = document.getElementById('shadow-template'); var instance = document.importNode(template.content, true); shadow.appendChild(instance); -window.setTimeout(function() { - var focusme = shadow.getElementById('focusme'); - focusme.focus(); - document.documentElement.classList.remove('reftest-wait'); -}, 0); +var focusme = shadow.getElementById('focusme'); +focusme.focus(); +document.documentElement.classList.remove('reftest-wait'); </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-005.html index 500cdd3..c645d62 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-005.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors4/focus-within-shadow-005.html
@@ -44,18 +44,14 @@ var instance = document.importNode(template.content, true); shadow.appendChild(instance); -window.setTimeout(function() { shadow = shadow.getElementById('nested-shadow-host').attachShadow({mode: 'open'}); template = document.getElementById('nested-shadow-template'); instance = document.importNode(template.content, true); shadow.appendChild(instance); -}, 0); -window.setTimeout(function() { - var focusme = shadow.getElementById('focusme'); - focusme.focus(); - document.documentElement.classList.remove('reftest-wait'); -}, 0); +var focusme = shadow.getElementById('focusme'); +focusme.focus(); +document.documentElement.classList.remove('reftest-wait'); </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cssom/getComputedStyle-pseudo.html b/third_party/WebKit/LayoutTests/external/wpt/cssom/getComputedStyle-pseudo.html new file mode 100644 index 0000000..8efd484 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cssom/getComputedStyle-pseudo.html
@@ -0,0 +1,43 @@ +<!doctype html> +<meta charset="utf-8"> +<title>CSSOM: Correct resolution of resolved value for display-affected pseudo-elements</title> +<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle"> +<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<style> +#test { width: 100px; } + +#contents { + display: contents; + border: 10px solid red; +} + +#test::before, +#test::after, +#contents::before, +#contents::after { + content: " "; + width: 50%; + height: 10px; + display: block; +} +</style> +<div id="test"> + <div id="contents"></div> +</div> +<script> +test(function() { + var div = document.getElementById('test'); + [":before", ":after"].forEach(function(pseudo) { + assert_equals(getComputedStyle(div, pseudo).width, "50px"); + }); +}, "Resolution of width is correct for ::before and ::after pseudo-elements"); +test(function() { + var contents = document.getElementById('contents'); + [":before", ":after"].forEach(function(pseudo) { + assert_equals(getComputedStyle(contents, pseudo).width, "50px"); + }); +}, "Resolution of width is correct for ::before and ::after pseudo-elements of display: contents elements"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cssom/variable-names-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/cssom/variable-names-expected.txt new file mode 100644 index 0000000..2d4e87fb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cssom/variable-names-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +PASS custom property '--a' +FAIL custom property '--a;b' assert_equals: appears on specified style (after serialization/re-parsing) expected 1 but got 0 +PASS custom property '---' +FAIL custom property '--\' assert_equals: appears on specified style (after serialization/re-parsing) expected 1 but got 0 +PASS custom property '--ab' +PASS custom property '--0' +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/cssom/variable-names.html b/third_party/WebKit/LayoutTests/external/wpt/cssom/variable-names.html new file mode 100644 index 0000000..b951b7d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/cssom/variable-names.html
@@ -0,0 +1,47 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Tests for handling of CSS Custom Property names</title> +<meta name="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> + +// Valid custom property names, before and after CSS escaping. +var valid_names = [ + ["--a", "--a"], + ["--a;b", "--a\\;b"], + ["---", "---"], + ["--\\", "--\\\\"], + ["--ab", "--\\61 b"], + ["--0", "--\\30 "], +]; + +valid_names.forEach(function(t) { + var name = t[0]; + var escaped_name = t[1]; + + test(function() { + var e = document.createElement("span"); + e.style = escaped_name + ":value"; + + for (var after_refeeding = 0; after_refeeding <= 1; ++after_refeeding) { + var desc_suffix = (after_refeeding ? " (after " : " (before ") + + "serialization/re-parsing)"; + + assert_equals(e.style.length, 1, + "appears on specified style" + desc_suffix); + + assert_equals(e.style[0], name, + "name returned correctly from specified " + + "style indexed getter" + desc_suffix); + + assert_equals(e.style.getPropertyValue(name), "value", + "property value returned correctly from " + + "specified style getPropertyValue" + desc_suffix); + + e.style = e.style.cssText; + } + }, "custom property '" + name + "'"); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/custom-elements/custom-element-registry/per-global-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/custom-elements/custom-element-registry/per-global-expected.txt new file mode 100644 index 0000000..325068f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/custom-elements/custom-element-registry/per-global-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +PASS Discarding the browsing context must not change window.customElements +FAIL Navigating from the initial about:blank must not replace window.customElements assert_equals: expected object "[object CustomElementRegistry]" but got object "[object CustomElementRegistry]" +FAIL document.open() must replace window.customElements assert_not_equals: got disallowed value object "[object CustomElementRegistry]" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/custom-elements/custom-element-registry/per-global.html b/third_party/WebKit/LayoutTests/external/wpt/custom-elements/custom-element-registry/per-global.html new file mode 100644 index 0000000..3570dcf8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/custom-elements/custom-element-registry/per-global.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Custom Elements: CustomElementRegistry is per global</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#custom-elements-api"> +<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> +<script src="/common/object-association.js"></script> + +<body> +<script> +"use strict"; +testIsPerWindow("customElements"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist-expected.txt index 3ab73d8..9c987bff 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist-expected.txt
@@ -1,82 +1,1539 @@ This is a testharness.js-based test. -Found 78 tests; 56 PASS, 22 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Element.classList must exist as an object -PASS Element.classList must exist as an object even if the element has no class attribute -PASS DOMTokenList should be exposed for prototyping -PASS prototyping DOMTokenList should work -PASS Element.classList must implement DOMTokenList -PASS CSS .foo selectors must not match elements without any class -FAIL classList must be correct for an element that has classes assert_equals: duplicates in initial string should be removed per https://dom.spec.whatwg.org/#concept-class expected 1 but got 2 -PASS classList.length must be 0 for an element that has no classes -PASS classList must not contain an undefined class -PASS classList.item() must return null for out-of-range index -PASS classList.item() must return null for negative index -PASS classList[index] must be undefined for out-of-range index -PASS classList[index] must be undefined for negative index -PASS className should contain initial markup whitespace -PASS classList should contain initial markup whitespace -FAIL .contains(empty_string) must return false Failed to execute 'contains' on 'DOMTokenList': The token provided must not be empty. -PASS .add(empty_string) must throw a SYNTAX_ERR -PASS .remove(empty_string) must throw a SYNTAX_ERR -PASS .toggle(empty_string) must throw a SYNTAX_ERR -FAIL .replace with empty_string must throw a SYNTAX_ERR assert_throws: function "function () { elem.classList.replace('', 'foo'); }" threw object "TypeError: elem.classList.replace is not a function" that is not a DOMException SYNTAX_ERR: property "code" is equal to undefined, expected 12 -FAIL .contains(string_with_spaces) must return false Failed to execute 'contains' on 'DOMTokenList': The token provided ('a b') contains HTML space characters, which are not valid in tokens. -PASS .add(string_with_spaces) must throw an INVALID_CHARACTER_ERR -PASS .remove(string_with_spaces) must throw an INVALID_CHARACTER_ERR -PASS .toggle(string_with_spaces) must throw an INVALID_CHARACTER_ERR -FAIL .replace with string_with_spaces must throw a INVALID_CHARACTER_ERR assert_throws: function "function () { elem.classList.replace('z', 'a b'); }" threw object "TypeError: elem.classList.replace is not a function" that is not a DOMException INVALID_CHARACTER_ERR: property "code" is equal to undefined, expected 5 -FAIL .replace with an already existing token foo.classList.replace is not a function -PASS computed style must update when setting .className -PASS classList.contains must update when .className is changed -PASS classList.contains must be case sensitive -PASS classList.contains must not match when punctuation characters are added -PASS classList.add must not cause the CSS selector to stop matching -PASS classList.add must not remove existing classes -PASS classList.contains case sensitivity must match a case-specific string -PASS classList.length must correctly reflect the number of tokens -PASS classList.item(0) must return the first token -PASS classList.item must return case-sensitive strings and preserve token order -PASS classList[0] must return the first token -PASS classList[index] must return case-sensitive strings and preserve token order -PASS classList[index] must still be undefined for out-of-range index when earlier indexes exist -PASS className must update correctly when items have been added through classList -PASS classList must stringify correctly when items have been added -PASS classList.add should not add a token if it already exists -PASS classList.remove removes arguments passed, if they are present. -PASS classList.remove must remove existing tokens -PASS classList.remove must not break case-sensitive CSS selector matching -PASS classList.remove must remove duplicated tokens -PASS classList.remove must collapse whitespace around removed tokens -PASS classList.remove must collapse whitespaces around each token -FAIL classList.remove must collapse whitespaces around each token and remove duplicates assert_equals: implicit expected "token1" but got "token1 token1" -PASS classList.remove must collapse whitespace when removing duplicate tokens -FAIL classList.add must collapse whitespaces and remove duplicates when adding a token that already exists assert_equals: implicit expected "token1" but got " token1 token1 " -PASS classList.toggle must toggle tokens case-sensitively when adding -PASS classList.toggle must not break case-sensitive CSS selector matching -PASS classList.toggle must be able to remove tokens -PASS classList.toggle must be case-sensitive when removing tokens -FAIL classList.replace replaces arguments passed, if they are present. secondelem.classList.replace is not a function -FAIL classList.replace must replace existing tokens secondelem.classList.replace is not a function -FAIL classList.replace must not break case-sensitive CSS selector matching assert_not_equals: got disallowed value "italic" -FAIL classList.replace must replace duplicated tokens secondelem.classList.replace is not a function -FAIL classList.replace must collapse whitespace around replaced tokens secondelem.classList.replace is not a function -FAIL classList.replace must collapse whitespaces around each token secondelem.classList.replace is not a function -FAIL classList.replace must collapse whitespaces around each token and remove duplicates secondelem.classList.replace is not a function -FAIL classList.replace must collapse whitespace when replacing duplicate tokens secondelem.classList.replace is not a function -PASS CSS class selectors must stop matching when all classes have been removed -PASS className must be empty when all classes have been removed -PASS classList must stringify to an empty string when all classes have been removed -PASS classList.item(0) must return null when all classes have been removed -PASS classList[0] must be undefined when all classes have been removed -FAIL Invoking add or remove should set the class attribute assert_true: expected true got false -PASS classList.add should treat " " as a space -FAIL classList.add should treat \t as a space assert_equals: expected "a b" but got "a\tb" -FAIL classList.add should treat \r as a space assert_equals: expected "a b" but got "a\rb" -FAIL classList.add should treat \n as a space assert_equals: expected "a b" but got "a\nb" -FAIL classList.add should treat \f as a space assert_equals: expected "a b" but got "a\fb" -PASS classList.length must be read-only -PASS classList must have [PutForwards=value] -FAIL classList.replace should work foo.classList.replace is not a function -PASS classList.supports should throw +Found 1135 tests; 685 PASS, 450 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Assigning to classList (HTML node) +PASS .supports() must throw TypeError (HTML node) +PASS classList.length when removed (HTML node) +PASS classList.length when set to "" (HTML node) +PASS classList.length when set to " \t \f" (HTML node) +PASS classList.length when set to "a" (HTML node) +PASS classList.length when set to "a A" (HTML node) +PASS classList.length when set to "\r\na\t\f" (HTML node) +FAIL classList.length when set to "a a" (HTML node) assert_equals: expected 1 but got 2 +FAIL classList.length when set to "a a a a a a" (HTML node) assert_equals: expected 1 but got 6 +FAIL classList.length when set to "a a b b" (HTML node) assert_equals: expected 2 but got 4 +PASS classList.length when set to "a A B b" (HTML node) +FAIL classList.length when set to "a b c c b a a b c c" (HTML node) assert_equals: expected 3 but got 10 +FAIL classList.length when set to " a a b" (HTML node) assert_equals: expected 2 but got 3 +PASS classList.length when set to "a\tb\nc\fd\re f" (HTML node) +PASS classList.toString() when removed (HTML node) +PASS classList.toString() when set to "foo" (HTML node) +PASS classList.toString() when set to " a a b" (HTML node) +PASS classList.item() when set to null (HTML node) +PASS classList.item() when set to "a" (HTML node) +FAIL classList.item() when set to "aa AA aa" (HTML node) assert_equals: classList.item(2) expected (object) null but got (string) "aa" +PASS classList.item() when set to "a b" (HTML node) +FAIL classList.item() when set to " a a b" (HTML node) assert_equals: classList.item(1) expected "b" but got "a" +PASS classList.item() when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) +PASS classList.contains("a") when set to null (HTML node) +FAIL classList.contains("") when set to null (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided must not be empty. +FAIL classList.contains(" ") when set to null (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' ') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("a") when set to "" (HTML node) +PASS classList.contains("a") when set to "a" (HTML node) +PASS classList.contains("aa") when set to "a" (HTML node) +PASS classList.contains("b") when set to "a" (HTML node) +PASS classList.contains("A") when set to "a" (HTML node) +PASS classList.contains("a.") when set to "a" (HTML node) +PASS classList.contains("a)") when set to "a" (HTML node) +PASS classList.contains(undefined) when set to "a" (HTML node) +PASS classList.contains("a'") when set to "a" (HTML node) +PASS classList.contains("a\"") when set to "a" (HTML node) +PASS classList.contains("a$") when set to "a" (HTML node) +PASS classList.contains("a~") when set to "a" (HTML node) +PASS classList.contains("a?") when set to "a" (HTML node) +PASS classList.contains("a\\") when set to "a" (HTML node) +FAIL classList.contains("a\t") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ta") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\n") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a +') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\na") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' +a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\f") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\fa") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\r") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a\r') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ra") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('\ra') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a ") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains(" a") when set to "a" (HTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("aa") when set to "aa AA" (HTML node) +PASS classList.contains("AA") when set to "aa AA" (HTML node) +PASS classList.contains("aA") when set to "aa AA" (HTML node) +PASS classList.contains("a") when set to "a a a" (HTML node) +PASS classList.contains("aa") when set to "a a a" (HTML node) +PASS classList.contains("b") when set to "a a a" (HTML node) +PASS classList.contains("a") when set to "a b c" (HTML node) +PASS classList.contains("b") when set to "a b c" (HTML node) +PASS classList.contains(null) when set to "null undefined" (HTML node) +PASS classList.contains(undefined) when set to "null undefined" (HTML node) +PASS classList.contains("a") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) +PASS classList.contains("b") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) +PASS classList.add("") with attribute value null (HTML node) +PASS classList.add("a", "") with attribute value null (HTML node) +PASS classList.add(" ") with attribute value null (HTML node) +PASS classList.add("\ta") with attribute value null (HTML node) +PASS classList.add("a\t") with attribute value null (HTML node) +PASS classList.add("\na") with attribute value null (HTML node) +PASS classList.add("a\n") with attribute value null (HTML node) +PASS classList.add("\fa") with attribute value null (HTML node) +PASS classList.add("a\f") with attribute value null (HTML node) +PASS classList.add("\ra") with attribute value null (HTML node) +PASS classList.add("a\r") with attribute value null (HTML node) +PASS classList.add(" a") with attribute value null (HTML node) +PASS classList.add("a ") with attribute value null (HTML node) +PASS classList.add("a", " ") with attribute value null (HTML node) +PASS classList.add("a", "aa ") with attribute value null (HTML node) +PASS classList.add("a") with attribute value "a" (HTML node) +PASS classList.add("AA") with attribute value "aa" (HTML node) +PASS classList.add("a") with attribute value "a b c" (HTML node) +FAIL classList.add("a") with attribute value "a a a b" (HTML node) assert_equals: wrong class after modification expected "a b" but got "a a a b" +PASS classList.add("a") with attribute value null (HTML node) +PASS classList.add("a") with attribute value "" (HTML node) +FAIL classList.add("a") with attribute value " " (HTML node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.add("a") with attribute value " \f" (HTML node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.add("b") with attribute value "a" (HTML node) +PASS classList.add("d") with attribute value "a b c" (HTML node) +PASS classList.add("d") with attribute value "a b c " (HTML node) +FAIL classList.add("c") with attribute value " a a b" (HTML node) assert_equals: wrong class after modification expected "a b c" but got " a a b c" +FAIL classList.add("a") with attribute value " a a b" (HTML node) assert_equals: wrong class after modification expected "a b" but got " a a b" +FAIL classList.add("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.add("d", "e") with attribute value "a b c " (HTML node) +FAIL classList.add("a", "a") with attribute value "a b c " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.add("d", "d") with attribute value "a b c " (HTML node) +FAIL classList.add() with attribute value "a b c a " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c a " +PASS classList.add("a", "b") with attribute value null (HTML node) +PASS classList.add("a", "b") with attribute value "" (HTML node) +PASS classList.add(null) with attribute value null (HTML node) +PASS classList.add(undefined) with attribute value null (HTML node) +PASS classList.remove("") with attribute value null (HTML node) +PASS classList.remove(" ") with attribute value null (HTML node) +PASS classList.remove("\ta") with attribute value "\ta" (HTML node) +PASS classList.remove("a\t") with attribute value "a\t" (HTML node) +PASS classList.remove("\na") with attribute value "\na" (HTML node) +PASS classList.remove("a\n") with attribute value "a\n" (HTML node) +PASS classList.remove("\fa") with attribute value "\fa" (HTML node) +PASS classList.remove("a\f") with attribute value "a\f" (HTML node) +PASS classList.remove("\ra") with attribute value "\ra" (HTML node) +PASS classList.remove("a\r") with attribute value "a\r" (HTML node) +PASS classList.remove(" a") with attribute value " a" (HTML node) +PASS classList.remove("a ") with attribute value "a " (HTML node) +PASS classList.remove("aa ") with attribute value "aa " (HTML node) +PASS classList.remove("a") with attribute value null (HTML node) +PASS classList.remove("a") with attribute value "" (HTML node) +FAIL classList.remove("d") with attribute value "a b c" (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +FAIL classList.remove("A") with attribute value "a b c" (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +PASS classList.remove("a") with attribute value " a a a " (HTML node) +PASS classList.remove("a") with attribute value "a b" (HTML node) +PASS classList.remove("a") with attribute value "a b " (HTML node) +PASS classList.remove("a") with attribute value "a a b" (HTML node) +PASS classList.remove("aa") with attribute value "aa aa bb" (HTML node) +PASS classList.remove("a") with attribute value "a a b a a c a a" (HTML node) +PASS classList.remove("b") with attribute value "a b c" (HTML node) +PASS classList.remove("bbb") with attribute value "aaa bbb ccc" (HTML node) +PASS classList.remove("b") with attribute value " a b c " (HTML node) +PASS classList.remove("b") with attribute value "a b b b c" (HTML node) +PASS classList.remove("c") with attribute value "a b c" (HTML node) +PASS classList.remove("c") with attribute value " a b c " (HTML node) +PASS classList.remove("c") with attribute value "a b c c c" (HTML node) +PASS classList.remove("a") with attribute value "a b a c a d a" (HTML node) +FAIL classList.remove("AA") with attribute value "AA BB aa CC AA dd aa" (HTML node) assert_equals: wrong class after modification expected "BB aa CC dd" but got "BB aa CC dd aa" +PASS classList.remove("a") with attribute value "\ra\na\ta\f" (HTML node) +PASS classList.remove("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) +FAIL classList.remove("d", "e") with attribute value "a b c " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value "a b c " (HTML node) +PASS classList.remove("a", "c") with attribute value "a b c " (HTML node) +PASS classList.remove("a", "a") with attribute value "a b c " (HTML node) +FAIL classList.remove("d", "d") with attribute value "a b c " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +FAIL classList.remove() with attribute value "a b c " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value null (HTML node) +PASS classList.remove("a", "b") with attribute value "" (HTML node) +FAIL classList.remove() with attribute value "a a" (HTML node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.remove(null) with attribute value "null" (HTML node) +PASS classList.remove(undefined) with attribute value "undefined" (HTML node) +PASS classList.toggle("") with attribute value null (HTML node) +PASS classList.toggle("aa ") with attribute value null (HTML node) +PASS classList.toggle("a") with attribute value null (HTML node) +PASS classList.toggle("a") with attribute value "" (HTML node) +FAIL classList.toggle("a") with attribute value " " (HTML node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.toggle("a") with attribute value " \f" (HTML node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.toggle("b") with attribute value "a" (HTML node) +PASS classList.toggle("A") with attribute value "a" (HTML node) +PASS classList.toggle("d") with attribute value "a b c" (HTML node) +FAIL classList.toggle("d") with attribute value " a a b" (HTML node) assert_equals: wrong class after modification expected "a b d" but got " a a b d" +PASS classList.toggle("a") with attribute value "a" (HTML node) +PASS classList.toggle("a") with attribute value " a a a " (HTML node) +FAIL classList.toggle("a") with attribute value " A A A " (HTML node) assert_equals: wrong class after modification expected "A a" but got " A A A a" +PASS classList.toggle("b") with attribute value " a b c " (HTML node) +PASS classList.toggle("b") with attribute value " a b c b b" (HTML node) +PASS classList.toggle("c") with attribute value " a b c " (HTML node) +PASS classList.toggle("a") with attribute value " a b c " (HTML node) +FAIL classList.toggle("b") with attribute value " a a b" (HTML node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.toggle("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) +FAIL classList.toggle("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.toggle(null) with attribute value "null" (HTML node) +PASS classList.toggle(null) with attribute value "" (HTML node) +PASS classList.toggle(undefined) with attribute value "undefined" (HTML node) +PASS classList.toggle(undefined) with attribute value "" (HTML node) +PASS classList.toggle("a", true) with attribute value "" (HTML node) +PASS classList.toggle("a", true) with attribute value "a" (HTML node) +PASS classList.toggle("b", true) with attribute value "a" (HTML node) +PASS classList.toggle("b", true) with attribute value "a b" (HTML node) +PASS classList.toggle("a", false) with attribute value "" (HTML node) +PASS classList.toggle("a", false) with attribute value "a" (HTML node) +PASS classList.toggle("b", false) with attribute value "a" (HTML node) +PASS classList.toggle("b", false) with attribute value "a b" (HTML node) +FAIL classList.replace("", "a") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("", " ") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "a") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ta", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\t", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\na", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\n", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\fa", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\f", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ra", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\r", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace(" a", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a ", "b") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("a", " ") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ta") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\t") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\na") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\n") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\fa") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\f") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ra") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\r") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", " a") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a ") with attribute value null (HTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "a") with attribute value "a" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "a" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("A", "b") with attribute value "a" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "A") with attribute value "a b" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("d", "e") with attribute value "a b c" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "a") with attribute value "a a a b" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "d") with attribute value "a a a b" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value null (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " " (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " a \f" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "d") with attribute value "a b c" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "a b c" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "c b a" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "a b a" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "a b a" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value " a a b" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value " a a b" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace(null, "b") with attribute value "a null" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", null) with attribute value "a b" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace(undefined, "b") with attribute value "a undefined" (HTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", undefined) with attribute value "a b" (HTML node) Cannot read property 'apply' of undefined +PASS Assigning to classList (XHTML node) +PASS .supports() must throw TypeError (XHTML node) +PASS classList.length when removed (XHTML node) +PASS classList.length when set to "" (XHTML node) +PASS classList.length when set to " \t \f" (XHTML node) +PASS classList.length when set to "a" (XHTML node) +PASS classList.length when set to "a A" (XHTML node) +PASS classList.length when set to "\r\na\t\f" (XHTML node) +FAIL classList.length when set to "a a" (XHTML node) assert_equals: expected 1 but got 2 +FAIL classList.length when set to "a a a a a a" (XHTML node) assert_equals: expected 1 but got 6 +FAIL classList.length when set to "a a b b" (XHTML node) assert_equals: expected 2 but got 4 +PASS classList.length when set to "a A B b" (XHTML node) +FAIL classList.length when set to "a b c c b a a b c c" (XHTML node) assert_equals: expected 3 but got 10 +FAIL classList.length when set to " a a b" (XHTML node) assert_equals: expected 2 but got 3 +PASS classList.length when set to "a\tb\nc\fd\re f" (XHTML node) +PASS classList.toString() when removed (XHTML node) +PASS classList.toString() when set to "foo" (XHTML node) +PASS classList.toString() when set to " a a b" (XHTML node) +PASS classList.item() when set to null (XHTML node) +PASS classList.item() when set to "a" (XHTML node) +FAIL classList.item() when set to "aa AA aa" (XHTML node) assert_equals: classList.item(2) expected (object) null but got (string) "aa" +PASS classList.item() when set to "a b" (XHTML node) +FAIL classList.item() when set to " a a b" (XHTML node) assert_equals: classList.item(1) expected "b" but got "a" +PASS classList.item() when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) +PASS classList.contains("a") when set to null (XHTML node) +FAIL classList.contains("") when set to null (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided must not be empty. +FAIL classList.contains(" ") when set to null (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' ') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("a") when set to "" (XHTML node) +PASS classList.contains("a") when set to "a" (XHTML node) +PASS classList.contains("aa") when set to "a" (XHTML node) +PASS classList.contains("b") when set to "a" (XHTML node) +PASS classList.contains("A") when set to "a" (XHTML node) +PASS classList.contains("a.") when set to "a" (XHTML node) +PASS classList.contains("a)") when set to "a" (XHTML node) +PASS classList.contains(undefined) when set to "a" (XHTML node) +PASS classList.contains("a'") when set to "a" (XHTML node) +PASS classList.contains("a\"") when set to "a" (XHTML node) +PASS classList.contains("a$") when set to "a" (XHTML node) +PASS classList.contains("a~") when set to "a" (XHTML node) +PASS classList.contains("a?") when set to "a" (XHTML node) +PASS classList.contains("a\\") when set to "a" (XHTML node) +FAIL classList.contains("a\t") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ta") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\n") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a +') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\na") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' +a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\f") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\fa") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\r") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a\r') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ra") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('\ra') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a ") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains(" a") when set to "a" (XHTML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("aa") when set to "aa AA" (XHTML node) +PASS classList.contains("AA") when set to "aa AA" (XHTML node) +PASS classList.contains("aA") when set to "aa AA" (XHTML node) +PASS classList.contains("a") when set to "a a a" (XHTML node) +PASS classList.contains("aa") when set to "a a a" (XHTML node) +PASS classList.contains("b") when set to "a a a" (XHTML node) +PASS classList.contains("a") when set to "a b c" (XHTML node) +PASS classList.contains("b") when set to "a b c" (XHTML node) +PASS classList.contains(null) when set to "null undefined" (XHTML node) +PASS classList.contains(undefined) when set to "null undefined" (XHTML node) +PASS classList.contains("a") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) +PASS classList.contains("b") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) +PASS classList.add("") with attribute value null (XHTML node) +PASS classList.add("a", "") with attribute value null (XHTML node) +PASS classList.add(" ") with attribute value null (XHTML node) +PASS classList.add("\ta") with attribute value null (XHTML node) +PASS classList.add("a\t") with attribute value null (XHTML node) +PASS classList.add("\na") with attribute value null (XHTML node) +PASS classList.add("a\n") with attribute value null (XHTML node) +PASS classList.add("\fa") with attribute value null (XHTML node) +PASS classList.add("a\f") with attribute value null (XHTML node) +PASS classList.add("\ra") with attribute value null (XHTML node) +PASS classList.add("a\r") with attribute value null (XHTML node) +PASS classList.add(" a") with attribute value null (XHTML node) +PASS classList.add("a ") with attribute value null (XHTML node) +PASS classList.add("a", " ") with attribute value null (XHTML node) +PASS classList.add("a", "aa ") with attribute value null (XHTML node) +PASS classList.add("a") with attribute value "a" (XHTML node) +PASS classList.add("AA") with attribute value "aa" (XHTML node) +PASS classList.add("a") with attribute value "a b c" (XHTML node) +FAIL classList.add("a") with attribute value "a a a b" (XHTML node) assert_equals: wrong class after modification expected "a b" but got "a a a b" +PASS classList.add("a") with attribute value null (XHTML node) +PASS classList.add("a") with attribute value "" (XHTML node) +FAIL classList.add("a") with attribute value " " (XHTML node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.add("a") with attribute value " \f" (XHTML node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.add("b") with attribute value "a" (XHTML node) +PASS classList.add("d") with attribute value "a b c" (XHTML node) +PASS classList.add("d") with attribute value "a b c " (XHTML node) +FAIL classList.add("c") with attribute value " a a b" (XHTML node) assert_equals: wrong class after modification expected "a b c" but got " a a b c" +FAIL classList.add("a") with attribute value " a a b" (XHTML node) assert_equals: wrong class after modification expected "a b" but got " a a b" +FAIL classList.add("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.add("d", "e") with attribute value "a b c " (XHTML node) +FAIL classList.add("a", "a") with attribute value "a b c " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.add("d", "d") with attribute value "a b c " (XHTML node) +FAIL classList.add() with attribute value "a b c a " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c a " +PASS classList.add("a", "b") with attribute value null (XHTML node) +PASS classList.add("a", "b") with attribute value "" (XHTML node) +PASS classList.add(null) with attribute value null (XHTML node) +PASS classList.add(undefined) with attribute value null (XHTML node) +PASS classList.remove("") with attribute value null (XHTML node) +PASS classList.remove(" ") with attribute value null (XHTML node) +PASS classList.remove("\ta") with attribute value "\ta" (XHTML node) +PASS classList.remove("a\t") with attribute value "a\t" (XHTML node) +PASS classList.remove("\na") with attribute value "\na" (XHTML node) +PASS classList.remove("a\n") with attribute value "a\n" (XHTML node) +PASS classList.remove("\fa") with attribute value "\fa" (XHTML node) +PASS classList.remove("a\f") with attribute value "a\f" (XHTML node) +PASS classList.remove("\ra") with attribute value "\ra" (XHTML node) +PASS classList.remove("a\r") with attribute value "a\r" (XHTML node) +PASS classList.remove(" a") with attribute value " a" (XHTML node) +PASS classList.remove("a ") with attribute value "a " (XHTML node) +PASS classList.remove("aa ") with attribute value "aa " (XHTML node) +PASS classList.remove("a") with attribute value null (XHTML node) +PASS classList.remove("a") with attribute value "" (XHTML node) +FAIL classList.remove("d") with attribute value "a b c" (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +FAIL classList.remove("A") with attribute value "a b c" (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +PASS classList.remove("a") with attribute value " a a a " (XHTML node) +PASS classList.remove("a") with attribute value "a b" (XHTML node) +PASS classList.remove("a") with attribute value "a b " (XHTML node) +PASS classList.remove("a") with attribute value "a a b" (XHTML node) +PASS classList.remove("aa") with attribute value "aa aa bb" (XHTML node) +PASS classList.remove("a") with attribute value "a a b a a c a a" (XHTML node) +PASS classList.remove("b") with attribute value "a b c" (XHTML node) +PASS classList.remove("bbb") with attribute value "aaa bbb ccc" (XHTML node) +PASS classList.remove("b") with attribute value " a b c " (XHTML node) +PASS classList.remove("b") with attribute value "a b b b c" (XHTML node) +PASS classList.remove("c") with attribute value "a b c" (XHTML node) +PASS classList.remove("c") with attribute value " a b c " (XHTML node) +PASS classList.remove("c") with attribute value "a b c c c" (XHTML node) +PASS classList.remove("a") with attribute value "a b a c a d a" (XHTML node) +FAIL classList.remove("AA") with attribute value "AA BB aa CC AA dd aa" (XHTML node) assert_equals: wrong class after modification expected "BB aa CC dd" but got "BB aa CC dd aa" +PASS classList.remove("a") with attribute value "\ra\na\ta\f" (XHTML node) +PASS classList.remove("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) +FAIL classList.remove("d", "e") with attribute value "a b c " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value "a b c " (XHTML node) +PASS classList.remove("a", "c") with attribute value "a b c " (XHTML node) +PASS classList.remove("a", "a") with attribute value "a b c " (XHTML node) +FAIL classList.remove("d", "d") with attribute value "a b c " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +FAIL classList.remove() with attribute value "a b c " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value null (XHTML node) +PASS classList.remove("a", "b") with attribute value "" (XHTML node) +FAIL classList.remove() with attribute value "a a" (XHTML node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.remove(null) with attribute value "null" (XHTML node) +PASS classList.remove(undefined) with attribute value "undefined" (XHTML node) +PASS classList.toggle("") with attribute value null (XHTML node) +PASS classList.toggle("aa ") with attribute value null (XHTML node) +PASS classList.toggle("a") with attribute value null (XHTML node) +PASS classList.toggle("a") with attribute value "" (XHTML node) +FAIL classList.toggle("a") with attribute value " " (XHTML node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.toggle("a") with attribute value " \f" (XHTML node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.toggle("b") with attribute value "a" (XHTML node) +PASS classList.toggle("A") with attribute value "a" (XHTML node) +PASS classList.toggle("d") with attribute value "a b c" (XHTML node) +FAIL classList.toggle("d") with attribute value " a a b" (XHTML node) assert_equals: wrong class after modification expected "a b d" but got " a a b d" +PASS classList.toggle("a") with attribute value "a" (XHTML node) +PASS classList.toggle("a") with attribute value " a a a " (XHTML node) +FAIL classList.toggle("a") with attribute value " A A A " (XHTML node) assert_equals: wrong class after modification expected "A a" but got " A A A a" +PASS classList.toggle("b") with attribute value " a b c " (XHTML node) +PASS classList.toggle("b") with attribute value " a b c b b" (XHTML node) +PASS classList.toggle("c") with attribute value " a b c " (XHTML node) +PASS classList.toggle("a") with attribute value " a b c " (XHTML node) +FAIL classList.toggle("b") with attribute value " a a b" (XHTML node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.toggle("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) +FAIL classList.toggle("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.toggle(null) with attribute value "null" (XHTML node) +PASS classList.toggle(null) with attribute value "" (XHTML node) +PASS classList.toggle(undefined) with attribute value "undefined" (XHTML node) +PASS classList.toggle(undefined) with attribute value "" (XHTML node) +PASS classList.toggle("a", true) with attribute value "" (XHTML node) +PASS classList.toggle("a", true) with attribute value "a" (XHTML node) +PASS classList.toggle("b", true) with attribute value "a" (XHTML node) +PASS classList.toggle("b", true) with attribute value "a b" (XHTML node) +PASS classList.toggle("a", false) with attribute value "" (XHTML node) +PASS classList.toggle("a", false) with attribute value "a" (XHTML node) +PASS classList.toggle("b", false) with attribute value "a" (XHTML node) +PASS classList.toggle("b", false) with attribute value "a b" (XHTML node) +FAIL classList.replace("", "a") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("", " ") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "a") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ta", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\t", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\na", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\n", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\fa", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\f", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ra", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\r", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace(" a", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a ", "b") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("a", " ") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ta") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\t") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\na") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\n") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\fa") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\f") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ra") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\r") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", " a") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a ") with attribute value null (XHTML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "a") with attribute value "a" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "a" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("A", "b") with attribute value "a" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "A") with attribute value "a b" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("d", "e") with attribute value "a b c" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "a") with attribute value "a a a b" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "d") with attribute value "a a a b" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value null (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " " (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " a \f" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "d") with attribute value "a b c" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "a b c" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "c b a" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "a b a" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "a b a" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value " a a b" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value " a a b" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace(null, "b") with attribute value "a null" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", null) with attribute value "a b" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace(undefined, "b") with attribute value "a undefined" (XHTML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", undefined) with attribute value "a b" (XHTML node) Cannot read property 'apply' of undefined +PASS Assigning to classList (MathML node) +PASS .supports() must throw TypeError (MathML node) +PASS classList.length when removed (MathML node) +PASS classList.length when set to "" (MathML node) +PASS classList.length when set to " \t \f" (MathML node) +PASS classList.length when set to "a" (MathML node) +PASS classList.length when set to "a A" (MathML node) +PASS classList.length when set to "\r\na\t\f" (MathML node) +FAIL classList.length when set to "a a" (MathML node) assert_equals: expected 1 but got 2 +FAIL classList.length when set to "a a a a a a" (MathML node) assert_equals: expected 1 but got 6 +FAIL classList.length when set to "a a b b" (MathML node) assert_equals: expected 2 but got 4 +PASS classList.length when set to "a A B b" (MathML node) +FAIL classList.length when set to "a b c c b a a b c c" (MathML node) assert_equals: expected 3 but got 10 +FAIL classList.length when set to " a a b" (MathML node) assert_equals: expected 2 but got 3 +PASS classList.length when set to "a\tb\nc\fd\re f" (MathML node) +PASS classList.toString() when removed (MathML node) +PASS classList.toString() when set to "foo" (MathML node) +PASS classList.toString() when set to " a a b" (MathML node) +PASS classList.item() when set to null (MathML node) +PASS classList.item() when set to "a" (MathML node) +FAIL classList.item() when set to "aa AA aa" (MathML node) assert_equals: classList.item(2) expected (object) null but got (string) "aa" +PASS classList.item() when set to "a b" (MathML node) +FAIL classList.item() when set to " a a b" (MathML node) assert_equals: classList.item(1) expected "b" but got "a" +PASS classList.item() when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) +PASS classList.contains("a") when set to null (MathML node) +FAIL classList.contains("") when set to null (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided must not be empty. +FAIL classList.contains(" ") when set to null (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' ') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("a") when set to "" (MathML node) +PASS classList.contains("a") when set to "a" (MathML node) +PASS classList.contains("aa") when set to "a" (MathML node) +PASS classList.contains("b") when set to "a" (MathML node) +PASS classList.contains("A") when set to "a" (MathML node) +PASS classList.contains("a.") when set to "a" (MathML node) +PASS classList.contains("a)") when set to "a" (MathML node) +PASS classList.contains(undefined) when set to "a" (MathML node) +PASS classList.contains("a'") when set to "a" (MathML node) +PASS classList.contains("a\"") when set to "a" (MathML node) +PASS classList.contains("a$") when set to "a" (MathML node) +PASS classList.contains("a~") when set to "a" (MathML node) +PASS classList.contains("a?") when set to "a" (MathML node) +PASS classList.contains("a\\") when set to "a" (MathML node) +FAIL classList.contains("a\t") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ta") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\n") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a +') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\na") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' +a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\f") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\fa") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\r") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a\r') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ra") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('\ra') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a ") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains(" a") when set to "a" (MathML node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("aa") when set to "aa AA" (MathML node) +PASS classList.contains("AA") when set to "aa AA" (MathML node) +PASS classList.contains("aA") when set to "aa AA" (MathML node) +PASS classList.contains("a") when set to "a a a" (MathML node) +PASS classList.contains("aa") when set to "a a a" (MathML node) +PASS classList.contains("b") when set to "a a a" (MathML node) +PASS classList.contains("a") when set to "a b c" (MathML node) +PASS classList.contains("b") when set to "a b c" (MathML node) +PASS classList.contains(null) when set to "null undefined" (MathML node) +PASS classList.contains(undefined) when set to "null undefined" (MathML node) +PASS classList.contains("a") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) +PASS classList.contains("b") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) +PASS classList.add("") with attribute value null (MathML node) +PASS classList.add("a", "") with attribute value null (MathML node) +PASS classList.add(" ") with attribute value null (MathML node) +PASS classList.add("\ta") with attribute value null (MathML node) +PASS classList.add("a\t") with attribute value null (MathML node) +PASS classList.add("\na") with attribute value null (MathML node) +PASS classList.add("a\n") with attribute value null (MathML node) +PASS classList.add("\fa") with attribute value null (MathML node) +PASS classList.add("a\f") with attribute value null (MathML node) +PASS classList.add("\ra") with attribute value null (MathML node) +PASS classList.add("a\r") with attribute value null (MathML node) +PASS classList.add(" a") with attribute value null (MathML node) +PASS classList.add("a ") with attribute value null (MathML node) +PASS classList.add("a", " ") with attribute value null (MathML node) +PASS classList.add("a", "aa ") with attribute value null (MathML node) +PASS classList.add("a") with attribute value "a" (MathML node) +PASS classList.add("AA") with attribute value "aa" (MathML node) +PASS classList.add("a") with attribute value "a b c" (MathML node) +FAIL classList.add("a") with attribute value "a a a b" (MathML node) assert_equals: wrong class after modification expected "a b" but got "a a a b" +PASS classList.add("a") with attribute value null (MathML node) +PASS classList.add("a") with attribute value "" (MathML node) +FAIL classList.add("a") with attribute value " " (MathML node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.add("a") with attribute value " \f" (MathML node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.add("b") with attribute value "a" (MathML node) +PASS classList.add("d") with attribute value "a b c" (MathML node) +PASS classList.add("d") with attribute value "a b c " (MathML node) +FAIL classList.add("c") with attribute value " a a b" (MathML node) assert_equals: wrong class after modification expected "a b c" but got " a a b c" +FAIL classList.add("a") with attribute value " a a b" (MathML node) assert_equals: wrong class after modification expected "a b" but got " a a b" +FAIL classList.add("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.add("d", "e") with attribute value "a b c " (MathML node) +FAIL classList.add("a", "a") with attribute value "a b c " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.add("d", "d") with attribute value "a b c " (MathML node) +FAIL classList.add() with attribute value "a b c a " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c a " +PASS classList.add("a", "b") with attribute value null (MathML node) +PASS classList.add("a", "b") with attribute value "" (MathML node) +PASS classList.add(null) with attribute value null (MathML node) +PASS classList.add(undefined) with attribute value null (MathML node) +PASS classList.remove("") with attribute value null (MathML node) +PASS classList.remove(" ") with attribute value null (MathML node) +PASS classList.remove("\ta") with attribute value "\ta" (MathML node) +PASS classList.remove("a\t") with attribute value "a\t" (MathML node) +PASS classList.remove("\na") with attribute value "\na" (MathML node) +PASS classList.remove("a\n") with attribute value "a\n" (MathML node) +PASS classList.remove("\fa") with attribute value "\fa" (MathML node) +PASS classList.remove("a\f") with attribute value "a\f" (MathML node) +PASS classList.remove("\ra") with attribute value "\ra" (MathML node) +PASS classList.remove("a\r") with attribute value "a\r" (MathML node) +PASS classList.remove(" a") with attribute value " a" (MathML node) +PASS classList.remove("a ") with attribute value "a " (MathML node) +PASS classList.remove("aa ") with attribute value "aa " (MathML node) +PASS classList.remove("a") with attribute value null (MathML node) +PASS classList.remove("a") with attribute value "" (MathML node) +FAIL classList.remove("d") with attribute value "a b c" (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +FAIL classList.remove("A") with attribute value "a b c" (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +PASS classList.remove("a") with attribute value " a a a " (MathML node) +PASS classList.remove("a") with attribute value "a b" (MathML node) +PASS classList.remove("a") with attribute value "a b " (MathML node) +PASS classList.remove("a") with attribute value "a a b" (MathML node) +PASS classList.remove("aa") with attribute value "aa aa bb" (MathML node) +PASS classList.remove("a") with attribute value "a a b a a c a a" (MathML node) +PASS classList.remove("b") with attribute value "a b c" (MathML node) +PASS classList.remove("bbb") with attribute value "aaa bbb ccc" (MathML node) +PASS classList.remove("b") with attribute value " a b c " (MathML node) +PASS classList.remove("b") with attribute value "a b b b c" (MathML node) +PASS classList.remove("c") with attribute value "a b c" (MathML node) +PASS classList.remove("c") with attribute value " a b c " (MathML node) +PASS classList.remove("c") with attribute value "a b c c c" (MathML node) +PASS classList.remove("a") with attribute value "a b a c a d a" (MathML node) +FAIL classList.remove("AA") with attribute value "AA BB aa CC AA dd aa" (MathML node) assert_equals: wrong class after modification expected "BB aa CC dd" but got "BB aa CC dd aa" +PASS classList.remove("a") with attribute value "\ra\na\ta\f" (MathML node) +PASS classList.remove("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) +FAIL classList.remove("d", "e") with attribute value "a b c " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value "a b c " (MathML node) +PASS classList.remove("a", "c") with attribute value "a b c " (MathML node) +PASS classList.remove("a", "a") with attribute value "a b c " (MathML node) +FAIL classList.remove("d", "d") with attribute value "a b c " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +FAIL classList.remove() with attribute value "a b c " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value null (MathML node) +PASS classList.remove("a", "b") with attribute value "" (MathML node) +FAIL classList.remove() with attribute value "a a" (MathML node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.remove(null) with attribute value "null" (MathML node) +PASS classList.remove(undefined) with attribute value "undefined" (MathML node) +PASS classList.toggle("") with attribute value null (MathML node) +PASS classList.toggle("aa ") with attribute value null (MathML node) +PASS classList.toggle("a") with attribute value null (MathML node) +PASS classList.toggle("a") with attribute value "" (MathML node) +FAIL classList.toggle("a") with attribute value " " (MathML node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.toggle("a") with attribute value " \f" (MathML node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.toggle("b") with attribute value "a" (MathML node) +PASS classList.toggle("A") with attribute value "a" (MathML node) +PASS classList.toggle("d") with attribute value "a b c" (MathML node) +FAIL classList.toggle("d") with attribute value " a a b" (MathML node) assert_equals: wrong class after modification expected "a b d" but got " a a b d" +PASS classList.toggle("a") with attribute value "a" (MathML node) +PASS classList.toggle("a") with attribute value " a a a " (MathML node) +FAIL classList.toggle("a") with attribute value " A A A " (MathML node) assert_equals: wrong class after modification expected "A a" but got " A A A a" +PASS classList.toggle("b") with attribute value " a b c " (MathML node) +PASS classList.toggle("b") with attribute value " a b c b b" (MathML node) +PASS classList.toggle("c") with attribute value " a b c " (MathML node) +PASS classList.toggle("a") with attribute value " a b c " (MathML node) +FAIL classList.toggle("b") with attribute value " a a b" (MathML node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.toggle("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) +FAIL classList.toggle("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.toggle(null) with attribute value "null" (MathML node) +PASS classList.toggle(null) with attribute value "" (MathML node) +PASS classList.toggle(undefined) with attribute value "undefined" (MathML node) +PASS classList.toggle(undefined) with attribute value "" (MathML node) +PASS classList.toggle("a", true) with attribute value "" (MathML node) +PASS classList.toggle("a", true) with attribute value "a" (MathML node) +PASS classList.toggle("b", true) with attribute value "a" (MathML node) +PASS classList.toggle("b", true) with attribute value "a b" (MathML node) +PASS classList.toggle("a", false) with attribute value "" (MathML node) +PASS classList.toggle("a", false) with attribute value "a" (MathML node) +PASS classList.toggle("b", false) with attribute value "a" (MathML node) +PASS classList.toggle("b", false) with attribute value "a b" (MathML node) +FAIL classList.replace("", "a") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("", " ") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "a") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ta", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\t", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\na", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\n", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\fa", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\f", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ra", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\r", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace(" a", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a ", "b") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("a", " ") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ta") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\t") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\na") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\n") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\fa") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\f") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ra") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\r") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", " a") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a ") with attribute value null (MathML node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "a") with attribute value "a" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "a" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("A", "b") with attribute value "a" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "A") with attribute value "a b" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("d", "e") with attribute value "a b c" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "a") with attribute value "a a a b" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "d") with attribute value "a a a b" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value null (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " " (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " a \f" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "d") with attribute value "a b c" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "a b c" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "c b a" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "a b a" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "a b a" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value " a a b" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value " a a b" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace(null, "b") with attribute value "a null" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", null) with attribute value "a b" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace(undefined, "b") with attribute value "a undefined" (MathML node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", undefined) with attribute value "a b" (MathML node) Cannot read property 'apply' of undefined +PASS Assigning to classList (XML node with null namespace) +PASS .supports() must throw TypeError (XML node with null namespace) +PASS classList.length when removed (XML node with null namespace) +PASS classList.length when set to "" (XML node with null namespace) +PASS classList.length when set to " \t \f" (XML node with null namespace) +PASS classList.length when set to "a" (XML node with null namespace) +PASS classList.length when set to "a A" (XML node with null namespace) +PASS classList.length when set to "\r\na\t\f" (XML node with null namespace) +FAIL classList.length when set to "a a" (XML node with null namespace) assert_equals: expected 1 but got 2 +FAIL classList.length when set to "a a a a a a" (XML node with null namespace) assert_equals: expected 1 but got 6 +FAIL classList.length when set to "a a b b" (XML node with null namespace) assert_equals: expected 2 but got 4 +PASS classList.length when set to "a A B b" (XML node with null namespace) +FAIL classList.length when set to "a b c c b a a b c c" (XML node with null namespace) assert_equals: expected 3 but got 10 +FAIL classList.length when set to " a a b" (XML node with null namespace) assert_equals: expected 2 but got 3 +PASS classList.length when set to "a\tb\nc\fd\re f" (XML node with null namespace) +PASS classList.toString() when removed (XML node with null namespace) +PASS classList.toString() when set to "foo" (XML node with null namespace) +PASS classList.toString() when set to " a a b" (XML node with null namespace) +PASS classList.item() when set to null (XML node with null namespace) +PASS classList.item() when set to "a" (XML node with null namespace) +FAIL classList.item() when set to "aa AA aa" (XML node with null namespace) assert_equals: classList.item(2) expected (object) null but got (string) "aa" +PASS classList.item() when set to "a b" (XML node with null namespace) +FAIL classList.item() when set to " a a b" (XML node with null namespace) assert_equals: classList.item(1) expected "b" but got "a" +PASS classList.item() when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) +PASS classList.contains("a") when set to null (XML node with null namespace) +FAIL classList.contains("") when set to null (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided must not be empty. +FAIL classList.contains(" ") when set to null (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided (' ') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("a") when set to "" (XML node with null namespace) +PASS classList.contains("a") when set to "a" (XML node with null namespace) +PASS classList.contains("aa") when set to "a" (XML node with null namespace) +PASS classList.contains("b") when set to "a" (XML node with null namespace) +PASS classList.contains("A") when set to "a" (XML node with null namespace) +PASS classList.contains("a.") when set to "a" (XML node with null namespace) +PASS classList.contains("a)") when set to "a" (XML node with null namespace) +PASS classList.contains(undefined) when set to "a" (XML node with null namespace) +PASS classList.contains("a'") when set to "a" (XML node with null namespace) +PASS classList.contains("a\"") when set to "a" (XML node with null namespace) +PASS classList.contains("a$") when set to "a" (XML node with null namespace) +PASS classList.contains("a~") when set to "a" (XML node with null namespace) +PASS classList.contains("a?") when set to "a" (XML node with null namespace) +PASS classList.contains("a\\") when set to "a" (XML node with null namespace) +FAIL classList.contains("a\t") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ta") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\n") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a +') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\na") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided (' +a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\f") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\fa") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\r") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a\r') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ra") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('\ra') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a ") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains(" a") when set to "a" (XML node with null namespace) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("aa") when set to "aa AA" (XML node with null namespace) +PASS classList.contains("AA") when set to "aa AA" (XML node with null namespace) +PASS classList.contains("aA") when set to "aa AA" (XML node with null namespace) +PASS classList.contains("a") when set to "a a a" (XML node with null namespace) +PASS classList.contains("aa") when set to "a a a" (XML node with null namespace) +PASS classList.contains("b") when set to "a a a" (XML node with null namespace) +PASS classList.contains("a") when set to "a b c" (XML node with null namespace) +PASS classList.contains("b") when set to "a b c" (XML node with null namespace) +PASS classList.contains(null) when set to "null undefined" (XML node with null namespace) +PASS classList.contains(undefined) when set to "null undefined" (XML node with null namespace) +PASS classList.contains("a") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) +PASS classList.contains("b") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) +PASS classList.add("") with attribute value null (XML node with null namespace) +PASS classList.add("a", "") with attribute value null (XML node with null namespace) +PASS classList.add(" ") with attribute value null (XML node with null namespace) +PASS classList.add("\ta") with attribute value null (XML node with null namespace) +PASS classList.add("a\t") with attribute value null (XML node with null namespace) +PASS classList.add("\na") with attribute value null (XML node with null namespace) +PASS classList.add("a\n") with attribute value null (XML node with null namespace) +PASS classList.add("\fa") with attribute value null (XML node with null namespace) +PASS classList.add("a\f") with attribute value null (XML node with null namespace) +PASS classList.add("\ra") with attribute value null (XML node with null namespace) +PASS classList.add("a\r") with attribute value null (XML node with null namespace) +PASS classList.add(" a") with attribute value null (XML node with null namespace) +PASS classList.add("a ") with attribute value null (XML node with null namespace) +PASS classList.add("a", " ") with attribute value null (XML node with null namespace) +PASS classList.add("a", "aa ") with attribute value null (XML node with null namespace) +PASS classList.add("a") with attribute value "a" (XML node with null namespace) +PASS classList.add("AA") with attribute value "aa" (XML node with null namespace) +PASS classList.add("a") with attribute value "a b c" (XML node with null namespace) +FAIL classList.add("a") with attribute value "a a a b" (XML node with null namespace) assert_equals: wrong class after modification expected "a b" but got "a a a b" +PASS classList.add("a") with attribute value null (XML node with null namespace) +PASS classList.add("a") with attribute value "" (XML node with null namespace) +FAIL classList.add("a") with attribute value " " (XML node with null namespace) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.add("a") with attribute value " \f" (XML node with null namespace) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.add("b") with attribute value "a" (XML node with null namespace) +PASS classList.add("d") with attribute value "a b c" (XML node with null namespace) +PASS classList.add("d") with attribute value "a b c " (XML node with null namespace) +FAIL classList.add("c") with attribute value " a a b" (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got " a a b c" +FAIL classList.add("a") with attribute value " a a b" (XML node with null namespace) assert_equals: wrong class after modification expected "a b" but got " a a b" +FAIL classList.add("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.add("d", "e") with attribute value "a b c " (XML node with null namespace) +FAIL classList.add("a", "a") with attribute value "a b c " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.add("d", "d") with attribute value "a b c " (XML node with null namespace) +FAIL classList.add() with attribute value "a b c a " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c a " +PASS classList.add("a", "b") with attribute value null (XML node with null namespace) +PASS classList.add("a", "b") with attribute value "" (XML node with null namespace) +PASS classList.add(null) with attribute value null (XML node with null namespace) +PASS classList.add(undefined) with attribute value null (XML node with null namespace) +PASS classList.remove("") with attribute value null (XML node with null namespace) +PASS classList.remove(" ") with attribute value null (XML node with null namespace) +PASS classList.remove("\ta") with attribute value "\ta" (XML node with null namespace) +PASS classList.remove("a\t") with attribute value "a\t" (XML node with null namespace) +PASS classList.remove("\na") with attribute value "\na" (XML node with null namespace) +PASS classList.remove("a\n") with attribute value "a\n" (XML node with null namespace) +PASS classList.remove("\fa") with attribute value "\fa" (XML node with null namespace) +PASS classList.remove("a\f") with attribute value "a\f" (XML node with null namespace) +PASS classList.remove("\ra") with attribute value "\ra" (XML node with null namespace) +PASS classList.remove("a\r") with attribute value "a\r" (XML node with null namespace) +PASS classList.remove(" a") with attribute value " a" (XML node with null namespace) +PASS classList.remove("a ") with attribute value "a " (XML node with null namespace) +PASS classList.remove("aa ") with attribute value "aa " (XML node with null namespace) +PASS classList.remove("a") with attribute value null (XML node with null namespace) +PASS classList.remove("a") with attribute value "" (XML node with null namespace) +FAIL classList.remove("d") with attribute value "a b c" (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c" +FAIL classList.remove("A") with attribute value "a b c" (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c" +PASS classList.remove("a") with attribute value " a a a " (XML node with null namespace) +PASS classList.remove("a") with attribute value "a b" (XML node with null namespace) +PASS classList.remove("a") with attribute value "a b " (XML node with null namespace) +PASS classList.remove("a") with attribute value "a a b" (XML node with null namespace) +PASS classList.remove("aa") with attribute value "aa aa bb" (XML node with null namespace) +PASS classList.remove("a") with attribute value "a a b a a c a a" (XML node with null namespace) +PASS classList.remove("b") with attribute value "a b c" (XML node with null namespace) +PASS classList.remove("bbb") with attribute value "aaa bbb ccc" (XML node with null namespace) +PASS classList.remove("b") with attribute value " a b c " (XML node with null namespace) +PASS classList.remove("b") with attribute value "a b b b c" (XML node with null namespace) +PASS classList.remove("c") with attribute value "a b c" (XML node with null namespace) +PASS classList.remove("c") with attribute value " a b c " (XML node with null namespace) +PASS classList.remove("c") with attribute value "a b c c c" (XML node with null namespace) +PASS classList.remove("a") with attribute value "a b a c a d a" (XML node with null namespace) +FAIL classList.remove("AA") with attribute value "AA BB aa CC AA dd aa" (XML node with null namespace) assert_equals: wrong class after modification expected "BB aa CC dd" but got "BB aa CC dd aa" +PASS classList.remove("a") with attribute value "\ra\na\ta\f" (XML node with null namespace) +PASS classList.remove("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) +FAIL classList.remove("d", "e") with attribute value "a b c " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value "a b c " (XML node with null namespace) +PASS classList.remove("a", "c") with attribute value "a b c " (XML node with null namespace) +PASS classList.remove("a", "a") with attribute value "a b c " (XML node with null namespace) +FAIL classList.remove("d", "d") with attribute value "a b c " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c " +FAIL classList.remove() with attribute value "a b c " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value null (XML node with null namespace) +PASS classList.remove("a", "b") with attribute value "" (XML node with null namespace) +FAIL classList.remove() with attribute value "a a" (XML node with null namespace) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.remove(null) with attribute value "null" (XML node with null namespace) +PASS classList.remove(undefined) with attribute value "undefined" (XML node with null namespace) +PASS classList.toggle("") with attribute value null (XML node with null namespace) +PASS classList.toggle("aa ") with attribute value null (XML node with null namespace) +PASS classList.toggle("a") with attribute value null (XML node with null namespace) +PASS classList.toggle("a") with attribute value "" (XML node with null namespace) +FAIL classList.toggle("a") with attribute value " " (XML node with null namespace) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.toggle("a") with attribute value " \f" (XML node with null namespace) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.toggle("b") with attribute value "a" (XML node with null namespace) +PASS classList.toggle("A") with attribute value "a" (XML node with null namespace) +PASS classList.toggle("d") with attribute value "a b c" (XML node with null namespace) +FAIL classList.toggle("d") with attribute value " a a b" (XML node with null namespace) assert_equals: wrong class after modification expected "a b d" but got " a a b d" +PASS classList.toggle("a") with attribute value "a" (XML node with null namespace) +PASS classList.toggle("a") with attribute value " a a a " (XML node with null namespace) +FAIL classList.toggle("a") with attribute value " A A A " (XML node with null namespace) assert_equals: wrong class after modification expected "A a" but got " A A A a" +PASS classList.toggle("b") with attribute value " a b c " (XML node with null namespace) +PASS classList.toggle("b") with attribute value " a b c b b" (XML node with null namespace) +PASS classList.toggle("c") with attribute value " a b c " (XML node with null namespace) +PASS classList.toggle("a") with attribute value " a b c " (XML node with null namespace) +FAIL classList.toggle("b") with attribute value " a a b" (XML node with null namespace) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.toggle("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) +FAIL classList.toggle("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.toggle(null) with attribute value "null" (XML node with null namespace) +PASS classList.toggle(null) with attribute value "" (XML node with null namespace) +PASS classList.toggle(undefined) with attribute value "undefined" (XML node with null namespace) +PASS classList.toggle(undefined) with attribute value "" (XML node with null namespace) +PASS classList.toggle("a", true) with attribute value "" (XML node with null namespace) +PASS classList.toggle("a", true) with attribute value "a" (XML node with null namespace) +PASS classList.toggle("b", true) with attribute value "a" (XML node with null namespace) +PASS classList.toggle("b", true) with attribute value "a b" (XML node with null namespace) +PASS classList.toggle("a", false) with attribute value "" (XML node with null namespace) +PASS classList.toggle("a", false) with attribute value "a" (XML node with null namespace) +PASS classList.toggle("b", false) with attribute value "a" (XML node with null namespace) +PASS classList.toggle("b", false) with attribute value "a b" (XML node with null namespace) +FAIL classList.replace("", "a") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("", " ") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "a") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ta", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\t", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\na", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\n", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\fa", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\f", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ra", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\r", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace(" a", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a ", "b") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("a", " ") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ta") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\t") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\na") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\n") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\fa") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\f") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ra") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\r") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", " a") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a ") with attribute value null (XML node with null namespace) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "a") with attribute value "a" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "a" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("A", "b") with attribute value "a" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "A") with attribute value "a b" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("d", "e") with attribute value "a b c" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "a") with attribute value "a a a b" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "d") with attribute value "a a a b" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value null (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " " (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " a \f" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "d") with attribute value "a b c" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "a b c" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "c b a" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "a b a" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "a b a" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value " a a b" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value " a a b" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace(null, "b") with attribute value "a null" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", null) with attribute value "a b" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace(undefined, "b") with attribute value "a undefined" (XML node with null namespace) Cannot read property 'apply' of undefined +FAIL classList.replace("a", undefined) with attribute value "a b" (XML node with null namespace) Cannot read property 'apply' of undefined +PASS Assigning to classList (foo node) +PASS .supports() must throw TypeError (foo node) +PASS classList.length when removed (foo node) +PASS classList.length when set to "" (foo node) +PASS classList.length when set to " \t \f" (foo node) +PASS classList.length when set to "a" (foo node) +PASS classList.length when set to "a A" (foo node) +PASS classList.length when set to "\r\na\t\f" (foo node) +FAIL classList.length when set to "a a" (foo node) assert_equals: expected 1 but got 2 +FAIL classList.length when set to "a a a a a a" (foo node) assert_equals: expected 1 but got 6 +FAIL classList.length when set to "a a b b" (foo node) assert_equals: expected 2 but got 4 +PASS classList.length when set to "a A B b" (foo node) +FAIL classList.length when set to "a b c c b a a b c c" (foo node) assert_equals: expected 3 but got 10 +FAIL classList.length when set to " a a b" (foo node) assert_equals: expected 2 but got 3 +PASS classList.length when set to "a\tb\nc\fd\re f" (foo node) +PASS classList.toString() when removed (foo node) +PASS classList.toString() when set to "foo" (foo node) +PASS classList.toString() when set to " a a b" (foo node) +PASS classList.item() when set to null (foo node) +PASS classList.item() when set to "a" (foo node) +FAIL classList.item() when set to "aa AA aa" (foo node) assert_equals: classList.item(2) expected (object) null but got (string) "aa" +PASS classList.item() when set to "a b" (foo node) +FAIL classList.item() when set to " a a b" (foo node) assert_equals: classList.item(1) expected "b" but got "a" +PASS classList.item() when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) +PASS classList.contains("a") when set to null (foo node) +FAIL classList.contains("") when set to null (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided must not be empty. +FAIL classList.contains(" ") when set to null (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' ') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("a") when set to "" (foo node) +PASS classList.contains("a") when set to "a" (foo node) +PASS classList.contains("aa") when set to "a" (foo node) +PASS classList.contains("b") when set to "a" (foo node) +PASS classList.contains("A") when set to "a" (foo node) +PASS classList.contains("a.") when set to "a" (foo node) +PASS classList.contains("a)") when set to "a" (foo node) +PASS classList.contains(undefined) when set to "a" (foo node) +PASS classList.contains("a'") when set to "a" (foo node) +PASS classList.contains("a\"") when set to "a" (foo node) +PASS classList.contains("a$") when set to "a" (foo node) +PASS classList.contains("a~") when set to "a" (foo node) +PASS classList.contains("a?") when set to "a" (foo node) +PASS classList.contains("a\\") when set to "a" (foo node) +FAIL classList.contains("a\t") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ta") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\n") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a +') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\na") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' +a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\f") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\fa") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a\r") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a\r') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("\ra") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('\ra') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains("a ") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided ('a ') contains HTML space characters, which are not valid in tokens. +FAIL classList.contains(" a") when set to "a" (foo node) Failed to execute 'contains' on 'DOMTokenList': The token provided (' a') contains HTML space characters, which are not valid in tokens. +PASS classList.contains("aa") when set to "aa AA" (foo node) +PASS classList.contains("AA") when set to "aa AA" (foo node) +PASS classList.contains("aA") when set to "aa AA" (foo node) +PASS classList.contains("a") when set to "a a a" (foo node) +PASS classList.contains("aa") when set to "a a a" (foo node) +PASS classList.contains("b") when set to "a a a" (foo node) +PASS classList.contains("a") when set to "a b c" (foo node) +PASS classList.contains("b") when set to "a b c" (foo node) +PASS classList.contains(null) when set to "null undefined" (foo node) +PASS classList.contains(undefined) when set to "null undefined" (foo node) +PASS classList.contains("a") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) +PASS classList.contains("b") when set to "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) +PASS classList.add("") with attribute value null (foo node) +PASS classList.add("a", "") with attribute value null (foo node) +PASS classList.add(" ") with attribute value null (foo node) +PASS classList.add("\ta") with attribute value null (foo node) +PASS classList.add("a\t") with attribute value null (foo node) +PASS classList.add("\na") with attribute value null (foo node) +PASS classList.add("a\n") with attribute value null (foo node) +PASS classList.add("\fa") with attribute value null (foo node) +PASS classList.add("a\f") with attribute value null (foo node) +PASS classList.add("\ra") with attribute value null (foo node) +PASS classList.add("a\r") with attribute value null (foo node) +PASS classList.add(" a") with attribute value null (foo node) +PASS classList.add("a ") with attribute value null (foo node) +PASS classList.add("a", " ") with attribute value null (foo node) +PASS classList.add("a", "aa ") with attribute value null (foo node) +PASS classList.add("a") with attribute value "a" (foo node) +PASS classList.add("AA") with attribute value "aa" (foo node) +PASS classList.add("a") with attribute value "a b c" (foo node) +FAIL classList.add("a") with attribute value "a a a b" (foo node) assert_equals: wrong class after modification expected "a b" but got "a a a b" +PASS classList.add("a") with attribute value null (foo node) +PASS classList.add("a") with attribute value "" (foo node) +FAIL classList.add("a") with attribute value " " (foo node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.add("a") with attribute value " \f" (foo node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.add("b") with attribute value "a" (foo node) +PASS classList.add("d") with attribute value "a b c" (foo node) +PASS classList.add("d") with attribute value "a b c " (foo node) +FAIL classList.add("c") with attribute value " a a b" (foo node) assert_equals: wrong class after modification expected "a b c" but got " a a b c" +FAIL classList.add("a") with attribute value " a a b" (foo node) assert_equals: wrong class after modification expected "a b" but got " a a b" +FAIL classList.add("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.add("d", "e") with attribute value "a b c " (foo node) +FAIL classList.add("a", "a") with attribute value "a b c " (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.add("d", "d") with attribute value "a b c " (foo node) +FAIL classList.add() with attribute value "a b c a " (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c a " +PASS classList.add("a", "b") with attribute value null (foo node) +PASS classList.add("a", "b") with attribute value "" (foo node) +PASS classList.add(null) with attribute value null (foo node) +PASS classList.add(undefined) with attribute value null (foo node) +PASS classList.remove("") with attribute value null (foo node) +PASS classList.remove(" ") with attribute value null (foo node) +PASS classList.remove("\ta") with attribute value "\ta" (foo node) +PASS classList.remove("a\t") with attribute value "a\t" (foo node) +PASS classList.remove("\na") with attribute value "\na" (foo node) +PASS classList.remove("a\n") with attribute value "a\n" (foo node) +PASS classList.remove("\fa") with attribute value "\fa" (foo node) +PASS classList.remove("a\f") with attribute value "a\f" (foo node) +PASS classList.remove("\ra") with attribute value "\ra" (foo node) +PASS classList.remove("a\r") with attribute value "a\r" (foo node) +PASS classList.remove(" a") with attribute value " a" (foo node) +PASS classList.remove("a ") with attribute value "a " (foo node) +PASS classList.remove("aa ") with attribute value "aa " (foo node) +PASS classList.remove("a") with attribute value null (foo node) +PASS classList.remove("a") with attribute value "" (foo node) +FAIL classList.remove("d") with attribute value "a b c" (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +FAIL classList.remove("A") with attribute value "a b c" (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c" +PASS classList.remove("a") with attribute value " a a a " (foo node) +PASS classList.remove("a") with attribute value "a b" (foo node) +PASS classList.remove("a") with attribute value "a b " (foo node) +PASS classList.remove("a") with attribute value "a a b" (foo node) +PASS classList.remove("aa") with attribute value "aa aa bb" (foo node) +PASS classList.remove("a") with attribute value "a a b a a c a a" (foo node) +PASS classList.remove("b") with attribute value "a b c" (foo node) +PASS classList.remove("bbb") with attribute value "aaa bbb ccc" (foo node) +PASS classList.remove("b") with attribute value " a b c " (foo node) +PASS classList.remove("b") with attribute value "a b b b c" (foo node) +PASS classList.remove("c") with attribute value "a b c" (foo node) +PASS classList.remove("c") with attribute value " a b c " (foo node) +PASS classList.remove("c") with attribute value "a b c c c" (foo node) +PASS classList.remove("a") with attribute value "a b a c a d a" (foo node) +FAIL classList.remove("AA") with attribute value "AA BB aa CC AA dd aa" (foo node) assert_equals: wrong class after modification expected "BB aa CC dd" but got "BB aa CC dd aa" +PASS classList.remove("a") with attribute value "\ra\na\ta\f" (foo node) +PASS classList.remove("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) +FAIL classList.remove("d", "e") with attribute value "a b c " (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value "a b c " (foo node) +PASS classList.remove("a", "c") with attribute value "a b c " (foo node) +PASS classList.remove("a", "a") with attribute value "a b c " (foo node) +FAIL classList.remove("d", "d") with attribute value "a b c " (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +FAIL classList.remove() with attribute value "a b c " (foo node) assert_equals: wrong class after modification expected "a b c" but got "a b c " +PASS classList.remove("a", "b") with attribute value null (foo node) +PASS classList.remove("a", "b") with attribute value "" (foo node) +FAIL classList.remove() with attribute value "a a" (foo node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.remove(null) with attribute value "null" (foo node) +PASS classList.remove(undefined) with attribute value "undefined" (foo node) +PASS classList.toggle("") with attribute value null (foo node) +PASS classList.toggle("aa ") with attribute value null (foo node) +PASS classList.toggle("a") with attribute value null (foo node) +PASS classList.toggle("a") with attribute value "" (foo node) +FAIL classList.toggle("a") with attribute value " " (foo node) assert_equals: wrong class after modification expected "a" but got " a" +FAIL classList.toggle("a") with attribute value " \f" (foo node) assert_equals: wrong class after modification expected "a" but got " \fa" +PASS classList.toggle("b") with attribute value "a" (foo node) +PASS classList.toggle("A") with attribute value "a" (foo node) +PASS classList.toggle("d") with attribute value "a b c" (foo node) +FAIL classList.toggle("d") with attribute value " a a b" (foo node) assert_equals: wrong class after modification expected "a b d" but got " a a b d" +PASS classList.toggle("a") with attribute value "a" (foo node) +PASS classList.toggle("a") with attribute value " a a a " (foo node) +FAIL classList.toggle("a") with attribute value " A A A " (foo node) assert_equals: wrong class after modification expected "A a" but got " A A A a" +PASS classList.toggle("b") with attribute value " a b c " (foo node) +PASS classList.toggle("b") with attribute value " a b c b b" (foo node) +PASS classList.toggle("c") with attribute value " a b c " (foo node) +PASS classList.toggle("a") with attribute value " a b c " (foo node) +FAIL classList.toggle("b") with attribute value " a a b" (foo node) assert_equals: wrong class after modification expected "a" but got "a a" +PASS classList.toggle("a") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) +FAIL classList.toggle("c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) assert_equals: wrong class after modification expected "a b c" but got "\t\n\f\r a\t\n\f\r b\t\n\f\r c" +PASS classList.toggle(null) with attribute value "null" (foo node) +PASS classList.toggle(null) with attribute value "" (foo node) +PASS classList.toggle(undefined) with attribute value "undefined" (foo node) +PASS classList.toggle(undefined) with attribute value "" (foo node) +PASS classList.toggle("a", true) with attribute value "" (foo node) +PASS classList.toggle("a", true) with attribute value "a" (foo node) +PASS classList.toggle("b", true) with attribute value "a" (foo node) +PASS classList.toggle("b", true) with attribute value "a b" (foo node) +PASS classList.toggle("a", false) with attribute value "" (foo node) +PASS classList.toggle("a", false) with attribute value "a" (foo node) +PASS classList.toggle("b", false) with attribute value "a" (foo node) +PASS classList.toggle("b", false) with attribute value "a b" (foo node) +FAIL classList.replace("", "a") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("", " ") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "a") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ta", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\t", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\na", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\n", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\fa", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\f", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("\ra", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a\r", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace(" a", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a ", "b") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace(" ", "") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 +FAIL classList.replace("a", " ") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ta") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\t") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\na") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\n") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\fa") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\f") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "\ra") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a\r") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", " a") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("b", "a ") with attribute value null (foo node) assert_throws: function "function () { + var list = e.classList; + var res = list[funcName].apply(list, args); + }" threw object "TypeError: Cannot read property 'apply' of undefined" that is not a DOMException InvalidCharacterError: property "code" is equal to undefined, expected 5 +FAIL classList.replace("a", "a") with attribute value "a" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "a" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("A", "b") with attribute value "a" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "A") with attribute value "a b" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("d", "e") with attribute value "a b c" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "a") with attribute value "a a a b" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "d") with attribute value "a a a b" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value null (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value "" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " " (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "b") with attribute value " a \f" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "d") with attribute value "a b c" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "a b c" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("c", "a") with attribute value "c b a" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "a b a" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "a b a" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value " a a b" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value " a a b" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("b", "c") with attribute value "\t\n\f\r a\t\n\f\r b\t\n\f\r " (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace(null, "b") with attribute value "a null" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", null) with attribute value "a b" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace(undefined, "b") with attribute value "a undefined" (foo node) Cannot read property 'apply' of undefined +FAIL classList.replace("a", undefined) with attribute value "a b" (foo node) Cannot read property 'apply' of undefined Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist.html b/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist.html index fd82b00a..ece938e 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist.html +++ b/third_party/WebKit/LayoutTests/external/wpt/dom/nodes/Element-classlist.html
@@ -1,409 +1,462 @@ <!doctype html> -<html> - <head class="test test"> - <title class=" ">Element.classList in case-sensitive documents</title> - <link rel="help" href="https://dom.spec.whatwg.org/#concept-class"> - <script type="text/javascript" src="/resources/testharness.js"></script> - <script type="text/javascript" src="/resources/testharnessreport.js"></script> - <style type="text/css"> -.foo { font-style: italic; } - </style> - <script type="text/javascript"> -var elem = document.getElementsByTagName('title')[0], secondelem = document.getElementsByTagName('head')[0]; -test(function () { - assert_equals( typeof elem.classList, 'object', 'critical test; ignore any results after this' ); -}, 'Element.classList must exist as an object'); -test(function () { - assert_equals( typeof document.documentElement.classList, 'object' ); -}, 'Element.classList must exist as an object even if the element has no class attribute'); -test(function () { - assert_true( !!window.DOMTokenList ); -}, 'DOMTokenList should be exposed for prototyping'); -test(function () { - DOMTokenList.prototype.customProperty = true; - assert_true( elem.classList.customProperty ); -}, 'prototyping DOMTokenList should work'); -test(function () { - assert_true( elem.classList instanceof window.DOMTokenList ); - assert_equals( elem.classList.constructor, window.DOMTokenList ); -}, 'Element.classList must implement DOMTokenList'); -test(function () { - assert_not_equals( getComputedStyle(elem,null).fontStyle, 'italic', 'critical test; required by the testsuite' ); -}, 'CSS .foo selectors must not match elements without any class'); -test(function () { - assert_equals( secondelem.classList.length, 1, 'duplicates in initial string should be removed per https://dom.spec.whatwg.org/#concept-class' ); - assert_equals( secondelem.classList.item(0), 'test' ); - assert_true( secondelem.classList.contains('test') ); -}, 'classList must be correct for an element that has classes'); -test(function () { - assert_equals( elem.classList.length, 0 ); -}, 'classList.length must be 0 for an element that has no classes'); -test(function () { - assert_false( elem.classList.contains('foo') ); -}, 'classList must not contain an undefined class'); -test(function () { - assert_equals( elem.classList.item(0), null ); -}, 'classList.item() must return null for out-of-range index'); -test(function () { - assert_equals( elem.classList.item(-1), null ); -}, 'classList.item() must return null for negative index'); -test(function () { - /* the normative part of the spec states that: - "unless tokens is empty, in which case there are no supported property indices" - ... - "The term[...] supported property indices [is] used as defined in the WebIDL specification." - WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */ - assert_equals( elem.classList[0], undefined ); -}, 'classList[index] must be undefined for out-of-range index'); -test(function () { - assert_equals( elem.classList[-1], undefined ); -}, 'classList[index] must be undefined for negative index'); -test(function () { - assert_equals( elem.className, ' ' ); -}, 'className should contain initial markup whitespace'); -test(function () { - assert_equals( elem.classList + '', ' ', 'implicit' ); - assert_equals( elem.classList.toString(), ' ', 'explicit' ); -}, 'classList should contain initial markup whitespace'); -test(function () { - assert_false( elem.classList.contains('') ); -}, '.contains(empty_string) must return false'); -test(function () { - assert_throws( 'SYNTAX_ERR', function () { elem.classList.add(''); } ); -}, '.add(empty_string) must throw a SYNTAX_ERR'); -test(function () { - assert_throws( 'SYNTAX_ERR', function () { elem.classList.remove(''); } ); -}, '.remove(empty_string) must throw a SYNTAX_ERR'); -test(function () { - assert_throws( 'SYNTAX_ERR', function () { elem.classList.toggle(''); } ); -}, '.toggle(empty_string) must throw a SYNTAX_ERR'); -test(function () { - assert_throws( 'SYNTAX_ERR', function () { elem.classList.replace('', 'foo'); } ); - assert_throws( 'SYNTAX_ERR', function () { elem.classList.replace('foo', ''); } ); - assert_throws( 'SYNTAX_ERR', function () { elem.classList.replace('', 'foo bar'); } ); - assert_throws( 'SYNTAX_ERR', function () { elem.classList.replace('foo bar', ''); } ); - assert_throws( 'SYNTAX_ERR', function () { elem.classList.replace('', ''); } ); -}, '.replace with empty_string must throw a SYNTAX_ERR'); -test(function () { - assert_false( elem.classList.contains('a b') ); -}, '.contains(string_with_spaces) must return false'); -test(function () { - assert_throws( 'INVALID_CHARACTER_ERR', function () { elem.classList.add('a b'); } ); -}, '.add(string_with_spaces) must throw an INVALID_CHARACTER_ERR'); -test(function () { - assert_throws( 'INVALID_CHARACTER_ERR', function () { elem.classList.remove('a b'); } ); -}, '.remove(string_with_spaces) must throw an INVALID_CHARACTER_ERR'); -test(function () { - assert_throws( 'INVALID_CHARACTER_ERR', function () { elem.classList.toggle('a b'); } ); -}, '.toggle(string_with_spaces) must throw an INVALID_CHARACTER_ERR'); -test(function () { - assert_throws( 'INVALID_CHARACTER_ERR', function () { elem.classList.replace('z', 'a b'); } ); - assert_throws( 'INVALID_CHARACTER_ERR', function () { elem.classList.replace('a b', 'z'); } ); - assert_throws( 'INVALID_CHARACTER_ERR', function () { elem.classList.replace('a b', 'b c'); } ); -}, '.replace with string_with_spaces must throw a INVALID_CHARACTER_ERR'); -test(function () { - var foo = document.createElement('div'); - foo.className = 'token1 token2 token3' - foo.classList.replace('token1', 'token3'); - assert_equals( foo.classList.length, 2 ); - assert_false( foo.classList.contains('token1') ); - assert_true( foo.classList.contains('token2') ); - assert_true( foo.classList.contains('token3') ); - assert_equals( foo.classList.item(0), 'token3' ); - assert_equals( foo.classList.item(1), 'token2' ); -}, '.replace with an already existing token') -elem.className = 'foo'; -test(function () { - assert_equals( getComputedStyle(elem,null).fontStyle, 'italic', 'critical test; required by the testsuite' ); -}, 'computed style must update when setting .className'); -test(function () { - assert_true( elem.classList.contains('foo') ); -}, 'classList.contains must update when .className is changed'); -test(function () { - assert_false( elem.classList.contains('FOO') ); -}, 'classList.contains must be case sensitive'); -test(function () { - assert_false( elem.classList.contains('foo.') ); - assert_false( elem.classList.contains('foo)') ); - assert_false( elem.classList.contains('foo\'') ); - assert_false( elem.classList.contains('foo$') ); - assert_false( elem.classList.contains('foo~') ); - assert_false( elem.classList.contains('foo?') ); - assert_false( elem.classList.contains('foo\\') ); -}, 'classList.contains must not match when punctuation characters are added'); -test(function () { - elem.classList.add('FOO'); - assert_equals( getComputedStyle(elem,null).fontStyle, 'italic' ); -}, 'classList.add must not cause the CSS selector to stop matching'); -test(function () { - assert_true( elem.classList.contains('foo') ); -}, 'classList.add must not remove existing classes'); -test(function () { - assert_true( elem.classList.contains('FOO') ); -}, 'classList.contains case sensitivity must match a case-specific string'); -test(function () { - assert_equals( elem.classList.length, 2 ); -}, 'classList.length must correctly reflect the number of tokens'); -test(function () { - assert_equals( elem.classList.item(0), 'foo' ); -}, 'classList.item(0) must return the first token'); -test(function () { - assert_equals( elem.classList.item(1), 'FOO' ); -}, 'classList.item must return case-sensitive strings and preserve token order'); -test(function () { - assert_equals( elem.classList[0], 'foo' ); -}, 'classList[0] must return the first token'); -test(function () { - assert_equals( elem.classList[1], 'FOO' ); -}, 'classList[index] must return case-sensitive strings and preserve token order'); -test(function () { - /* the normative part of the spec states that: - "The object's supported property indices are the numbers in the range zero to the number of tokens in tokens minus one" - ... - "The term[...] supported property indices [is] used as defined in the WebIDL specification." - WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */ - assert_equals( elem.classList[2], undefined ); -}, 'classList[index] must still be undefined for out-of-range index when earlier indexes exist'); -test(function () { - assert_equals( elem.className, 'foo FOO' ); -}, 'className must update correctly when items have been added through classList'); -test(function () { - assert_equals( elem.classList + '', 'foo FOO', 'implicit' ); - assert_equals( elem.classList.toString(), 'foo FOO', 'explicit' ); -}, 'classList must stringify correctly when items have been added'); -test(function () { - elem.classList.add('foo'); - assert_equals( elem.classList.length, 2 ); - assert_equals( elem.classList + '', 'foo FOO', 'implicit' ); - assert_equals( elem.classList.toString(), 'foo FOO', 'explicit' ); -}, 'classList.add should not add a token if it already exists'); -test(function () { - elem.classList.remove('bar'); - assert_equals( elem.classList.length, 2 ); - assert_equals( elem.classList + '', 'foo FOO', 'implicit' ); - assert_equals( elem.classList.toString(), 'foo FOO', 'explicit' ); -}, 'classList.remove removes arguments passed, if they are present.'); -test(function () { - elem.classList.remove('foo'); - assert_equals( elem.classList.length, 1 ); - assert_equals( elem.classList + '', 'FOO', 'implicit' ); - assert_equals( elem.classList.toString(), 'FOO', 'explicit' ); - assert_false( elem.classList.contains('foo') ); - assert_true( elem.classList.contains('FOO') ); -}, 'classList.remove must remove existing tokens'); -test(function () { - assert_not_equals( getComputedStyle(elem,null).fontStyle, 'italic' ); -}, 'classList.remove must not break case-sensitive CSS selector matching'); -test(function () { - secondelem.classList.remove('test'); - assert_equals( secondelem.classList.length, 0 ); - assert_false( secondelem.classList.contains('test') ); -}, 'classList.remove must remove duplicated tokens'); -test(function () { - secondelem.className = 'token1 token2 token3'; - secondelem.classList.remove('token2'); - assert_equals( secondelem.classList + '', 'token1 token3', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1 token3', 'explicit' ); -}, 'classList.remove must collapse whitespace around removed tokens'); -test(function () { - secondelem.className = ' token1 token2 '; - secondelem.classList.remove('token2'); - assert_equals( secondelem.classList + '', 'token1', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1', 'explicit' ); -}, 'classList.remove must collapse whitespaces around each token'); -test(function () { - secondelem.className = ' token1 token2 token1 '; - secondelem.classList.remove('token2'); - assert_equals( secondelem.classList + '', 'token1', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1', 'explicit' ); -}, 'classList.remove must collapse whitespaces around each token and remove duplicates'); -test(function () { - secondelem.className = ' token1 token2 token1 '; - secondelem.classList.remove('token1'); - assert_equals( secondelem.classList + '', 'token2', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token2', 'explicit' ); -}, 'classList.remove must collapse whitespace when removing duplicate tokens'); -test(function () { - secondelem.className = ' token1 token1 '; - secondelem.classList.add('token1'); - assert_equals( secondelem.classList + '', 'token1', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1', 'explicit' ); -}, 'classList.add must collapse whitespaces and remove duplicates when adding a token that already exists'); -test(function () { - assert_true(elem.classList.toggle('foo')); - assert_equals( elem.classList.length, 2 ); - assert_true( elem.classList.contains('foo') ); - assert_true( elem.classList.contains('FOO') ); -}, 'classList.toggle must toggle tokens case-sensitively when adding'); -test(function () { - assert_equals( getComputedStyle(elem,null).fontStyle, 'italic' ); -}, 'classList.toggle must not break case-sensitive CSS selector matching'); -test(function () { - assert_false(elem.classList.toggle('foo')); -}, 'classList.toggle must be able to remove tokens'); -test(function () { - //will return true if the last test incorrectly removed both - assert_false(elem.classList.toggle('FOO')); - assert_false( elem.classList.contains('foo') ); - assert_false( elem.classList.contains('FOO') ); -}, 'classList.toggle must be case-sensitive when removing tokens'); -test(function () { - secondelem.className = 'foo FOO' - secondelem.classList.replace('bar', 'baz'); - assert_equals( secondelem.classList.length, 2 ); - assert_equals( secondelem.classList + '', 'foo FOO', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'foo FOO', 'explicit' ); -}, 'classList.replace replaces arguments passed, if they are present.'); -test(function () { - secondelem.classList.replace('foo', 'bar'); - assert_equals( secondelem.classList.length, 2 ); - assert_equals( secondelem.classList + '', 'bar FOO', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'bar FOO', 'explicit' ); - assert_false( secondelem.classList.contains('foo') ); - assert_true( secondelem.classList.contains('bar') ); - assert_true( secondelem.classList.contains('FOO') ); -}, 'classList.replace must replace existing tokens'); -test(function () { - assert_not_equals( getComputedStyle(secondelem,null).fontStyle, 'italic' ); -}, 'classList.replace must not break case-sensitive CSS selector matching'); -test(function () { - secondelem.className = 'token1 token2 token1' - secondelem.classList.replace('token1', 'token3'); - assert_equals( secondelem.classList.length, 2 ); - assert_false( secondelem.classList.contains('token1') ); - assert_true( secondelem.classList.contains('token2') ); - assert_true( secondelem.classList.contains('token3') ); -}, 'classList.replace must replace duplicated tokens'); -test(function () { - secondelem.className = 'token1 token2 token3'; - secondelem.classList.replace('token2', 'token4'); - assert_equals( secondelem.classList + '', 'token1 token4 token3', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1 token4 token3', 'explicit' ); -}, 'classList.replace must collapse whitespace around replaced tokens'); -test(function () { - secondelem.className = ' token1 token2 '; - secondelem.classList.replace('token2', 'token3'); - assert_equals( secondelem.classList.length, 2 ); - assert_equals( secondelem.classList + '', 'token1 token3', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1 token3', 'explicit' ); -}, 'classList.replace must collapse whitespaces around each token'); -test(function () { - secondelem.className = ' token1 token2 token1 '; - secondelem.classList.replace('token2', 'token3'); - assert_equals( secondelem.classList + '', 'token1 token3', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token1 token3', 'explicit' ); -}, 'classList.replace must collapse whitespaces around each token and remove duplicates'); -test(function () { - secondelem.className = ' token1 token2 token1 '; - secondelem.classList.replace('token1', 'token3'); - assert_equals( secondelem.classList + '', 'token3 token2', 'implicit' ); - assert_equals( secondelem.classList.toString(), 'token3 token2', 'explicit' ); -}, 'classList.replace must collapse whitespace when replacing duplicate tokens'); -test(function () { - assert_not_equals( getComputedStyle(elem,null).fontStyle, 'italic' ); -}, 'CSS class selectors must stop matching when all classes have been removed'); -test(function () { - assert_equals( elem.className, '' ); -}, 'className must be empty when all classes have been removed'); -test(function () { - assert_equals( elem.classList + '', '', 'implicit' ); - assert_equals( elem.classList.toString(), '', 'explicit' ); -}, 'classList must stringify to an empty string when all classes have been removed'); -test(function () { - assert_equals( elem.classList.item(0), null ); -}, 'classList.item(0) must return null when all classes have been removed'); -test(function () { - /* the normative part of the spec states that: - "unless the length is zero, in which case there are no supported property indices" - ... - "The term[...] supported property indices [is] used as defined in the WebIDL specification." - WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */ - assert_equals( elem.classList[0], undefined ); -}, 'classList[0] must be undefined when all classes have been removed'); -test(function () { - var foo = document.createElement('div'); - foo.classList.add(); - assert_true( foo.hasAttribute('class') ); - assert_equals( foo.classList + '', '', 'implicit' ); - assert_equals( foo.classList.toString(), '', 'explicit' ); -}, 'Invoking add or remove should set the class attribute'); -// The ordered set parser must skip ASCII whitespace (U+0009, U+000A, U+000C, U+000D, and U+0020.) -test(function () { - var foo = document.createElement('div'); - foo.className = 'a '; - foo.classList.add('b'); - assert_equals(foo.className,'a b'); -}, 'classList.add should treat " " as a space'); -test(function () { - var foo = document.createElement('div'); - foo.className = 'a\t'; - foo.classList.add('b'); - assert_equals(foo.className,'a b'); -}, 'classList.add should treat \\t as a space'); -test(function () { - var foo = document.createElement('div'); - foo.className = 'a\r'; - foo.classList.add('b'); - assert_equals(foo.className,'a b'); -}, 'classList.add should treat \\r as a space'); -test(function () { - var foo = document.createElement('div'); - foo.className = 'a\n'; - foo.classList.add('b'); - assert_equals(foo.className,'a b'); -}, 'classList.add should treat \\n as a space'); -test(function () { - var foo = document.createElement('div'); - foo.className = 'a\f'; - foo.classList.add('b'); - assert_equals(foo.className,'a b'); -}, 'classList.add should treat \\f as a space'); -test(function () { - //WebIDL and ECMAScript 5 - a readonly property has a getter but not a setter - //ES5 makes [[Put]] fail but not throw - var failed = false; - secondelem.className = 'token1'; - try { - secondelem.classList.length = 0; - } catch(e) { - failed = e; +<meta charset=utf-8> +<title>Test for the classList element attribute</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id="content"></div> +<script> +const SVG_NS = "http://www.w3.org/2000/svg"; +const XHTML_NS = "http://www.w3.org/1999/xhtml" +const MATHML_NS = "http://www.w3.org/1998/Math/MathML"; + +function setClass(e, newVal) { + if (newVal === null) { + e.removeAttribute("class"); + } else { + e.setAttribute("class", newVal); } - assert_equals(secondelem.classList.length,1); - assert_false(failed,'an error was thrown'); -}, 'classList.length must be read-only'); -test(function () { - var realList = secondelem.classList; - secondelem.classList = 'foo bar'; - assert_equals(secondelem.classList,realList); - assert_equals(secondelem.classList.length,2); - assert_equals(secondelem.classList[0],'foo'); - assert_equals(secondelem.classList[1],'bar'); -}, 'classList must have [PutForwards=value]'); -test(function () { - var foo = document.createElement('div'); - foo.className = 'a'; - foo.classList.replace('token1', 'token2'); +} - assert_equals(foo.className, 'a'); +function checkModification(e, funcName, args, expectedRes, before, after, + expectedException, desc) { + if (!Array.isArray(args)) { + args = [args]; + } - foo.classList.replace('a', 'b'); - assert_equals(foo.className, 'b'); + test(function() { + var shouldThrow = typeof(expectedException) === "string"; + if (shouldThrow) { + // If an exception is thrown, the class attribute shouldn't change. + after = before; + } + setClass(e, before); - assert_throws('SYNTAX_ERR', function () { foo.classList.replace('t with space', '') }); - assert_throws('INVALID_CHARACTER_ERR', function () { foo.classList.replace('t with space', 'foo') }); - assert_throws('SYNTAX_ERR', function () { foo.classList.replace('', 'foo') }); -}, 'classList.replace should work'); + if (shouldThrow) { + assert_throws(expectedException, function() { + var list = e.classList; + var res = list[funcName].apply(list, args); + }); + } else { + var list = e.classList; + var res = list[funcName].apply(list, args); + } + if (!shouldThrow) { + assert_equals(res, expectedRes, "wrong return value"); + } -test(function() { - var foo = document.createElement('div'); - assert_throws(new TypeError(), - function() { foo.classList.supports('hello') }); -}, 'classList.supports should throw'); - </script> - </head> - <body> + var expectedAfter = after; - <div id="log"></div> + assert_equals(e.getAttribute("class"), expectedAfter, + "wrong class after modification"); + }, "classList." + funcName + "(" + args.map(format_value).join(", ") + + ") with attribute value " + format_value(before) + desc); +} - </body> -</html> +function assignToClassListStrict(e) { + "use strict"; + e.classList = "foo"; + e.removeAttribute("class"); +} + +function assignToClassList(e) { + var expect = e.classList; + e.classList = "foo"; + assert_equals(e.classList, expect, + "classList should be unchanged after assignment"); + e.removeAttribute("class"); +} + +function testClassList(e, desc) { + + // assignment + + test(function() { + assignToClassListStrict(e); + assignToClassList(e); + }, "Assigning to classList" + desc); + + // supports + test(function() { + assert_throws(TypeError(), function() { + e.classList.supports("a"); + }) + }, ".supports() must throw TypeError" + desc); + + // length attribute + + function checkLength(value, length) { + test(function() { + setClass(e, value); + assert_equals(e.classList.length, length); + }, "classList.length when " + + (value === null ? "removed" : "set to " + format_value(value)) + desc); + } + + checkLength(null, 0); + checkLength("", 0); + checkLength(" \t \f", 0); + checkLength("a", 1); + checkLength("a A", 2); + checkLength("\r\na\t\f", 1); + checkLength("a a", 1); + checkLength("a a a a a a", 1); + checkLength("a a b b", 2); + checkLength("a A B b", 4); + checkLength("a b c c b a a b c c", 3); + checkLength(" a a b", 2); + checkLength("a\tb\nc\fd\re f", 6); + + // [Stringifies] + + function checkStringifier(value, expected) { + test(function() { + setClass(e, value); + assert_equals(e.classList.toString(), expected); + }, "classList.toString() when " + + (value === null ? "removed" : "set to " + format_value(value)) + desc); + } + + checkStringifier(null, ""); + checkStringifier("foo", "foo"); + checkStringifier(" a a b", " a a b"); + + // item() method + + function checkItems(attributeValue, expectedValues) { + function checkItemFunction(index, expected) { + assert_equals(e.classList.item(index), expected, + "classList.item(" + index + ")"); + } + + function checkItemArray(index, expected) { + assert_equals(e.classList[index], expected, "classList[" + index + "]"); + } + + test(function() { + setClass(e, attributeValue); + + checkItemFunction(-1, null); + checkItemArray(-1, undefined); + + var i = 0; + while (i < expectedValues.length) { + checkItemFunction(i, expectedValues[i]); + checkItemArray(i, expectedValues[i]); + i++; + } + + checkItemFunction(i, null); + checkItemArray(i, undefined); + + checkItemFunction(0xffffffff, null); + checkItemArray(0xffffffff, undefined); + + checkItemFunction(0xfffffffe, null); + checkItemArray(0xfffffffe, undefined); + }, "classList.item() when set to " + format_value(attributeValue) + desc); + } + + checkItems(null, []); + checkItems("a", ["a"]); + checkItems("aa AA aa", ["aa", "AA"]); + checkItems("a b", ["a", "b"]); + checkItems(" a a b", ["a", "b"]); + checkItems("\t\n\f\r a\t\n\f\r b\t\n\f\r ", ["a", "b"]); + + // contains() method + + function checkContains(attributeValue, args, expectedRes) { + if (!Array.isArray(expectedRes)) { + expectedRes = Array(args.length).fill(expectedRes); + } + setClass(e, attributeValue); + for (var i = 0; i < args.length; i++) { + test(function() { + assert_equals(e.classList.contains(args[i]), expectedRes[i], + "classList.contains(\"" + args[i] + "\")"); + }, "classList.contains(" + format_value(args[i]) + ") when set to " + + format_value(attributeValue) + desc); + } + } + + checkContains(null, ["a", "", " "], false); + checkContains("", ["a"], false); + + checkContains("a", ["a"], true); + checkContains("a", ["aa", "b", "A", "a.", "a)",, "a'", 'a"', "a$", "a~", + "a?", "a\\"], false); + + // All "ASCII whitespace" per spec, before and after + checkContains("a", ["a\t", "\ta", "a\n", "\na", "a\f", "\fa", "a\r", "\ra", + "a ", " a"], false); + + checkContains("aa AA", ["aa", "AA", "aA"], [true, true, false]); + checkContains("a a a", ["a", "aa", "b"], [true, false, false]); + checkContains("a b c", ["a", "b"], true); + + checkContains("null undefined", [null, undefined], true); + checkContains("\t\n\f\r a\t\n\f\r b\t\n\f\r ", ["a", "b"], true); + + // add() method + + function checkAdd(before, argument, after, expectedException) { + checkModification(e, "add", argument, undefined, before, after, + expectedException, desc); + // Also check force toggle + // XXX https://github.com/whatwg/dom/issues/443 + //if (!Array.isArray(argument)) { + // checkModification(e, "toggle", [argument, true], true, before, after, + // expectedException); + //} + } + + checkAdd(null, "", null, "SyntaxError"); + checkAdd(null, ["a", ""], null, "SyntaxError"); + checkAdd(null, " ", null, "InvalidCharacterError"); + checkAdd(null, "\ta", null, "InvalidCharacterError"); + checkAdd(null, "a\t", null, "InvalidCharacterError"); + checkAdd(null, "\na", null, "InvalidCharacterError"); + checkAdd(null, "a\n", null, "InvalidCharacterError"); + checkAdd(null, "\fa", null, "InvalidCharacterError"); + checkAdd(null, "a\f", null, "InvalidCharacterError"); + checkAdd(null, "\ra", null, "InvalidCharacterError"); + checkAdd(null, "a\r", null, "InvalidCharacterError"); + checkAdd(null, " a", null, "InvalidCharacterError"); + checkAdd(null, "a ", null, "InvalidCharacterError"); + checkAdd(null, ["a", " "], null, "InvalidCharacterError"); + checkAdd(null, ["a", "aa "], null, "InvalidCharacterError"); + + checkAdd("a", "a", "a"); + checkAdd("aa", "AA", "aa AA"); + checkAdd("a b c", "a", "a b c"); + checkAdd("a a a b", "a", "a b"); + checkAdd(null, "a", "a"); + checkAdd("", "a", "a"); + checkAdd(" ", "a", "a"); + checkAdd(" \f", "a", "a"); + checkAdd("a", "b", "a b"); + checkAdd("a b c", "d", "a b c d"); + checkAdd("a b c ", "d", "a b c d"); + checkAdd(" a a b", "c", "a b c"); + checkAdd(" a a b", "a", "a b"); + checkAdd("\t\n\f\r a\t\n\f\r b\t\n\f\r ", "c", "a b c"); + + // multiple add + checkAdd("a b c ", ["d", "e"], "a b c d e"); + checkAdd("a b c ", ["a", "a"], "a b c"); + checkAdd("a b c ", ["d", "d"], "a b c d"); + checkAdd("a b c a ", [], "a b c"); + checkAdd(null, ["a", "b"], "a b"); + checkAdd("", ["a", "b"], "a b"); + + checkAdd(null, null, "null"); + checkAdd(null, undefined, "undefined"); + + // remove() method + + function checkRemove(before, argument, after, expectedException) { + checkModification(e, "remove", argument, undefined, before, after, + expectedException, desc); + // Also check force toggle + // XXX https://github.com/whatwg/dom/issues/443 + //if (!Array.isArray(argument)) { + // checkModification(e, "toggle", [argument, false], false, before, after, + // expectedException); + //} + } + + checkRemove(null, "", null, "SyntaxError"); + checkRemove(null, " ", null, "InvalidCharacterError"); + checkRemove("\ta", "\ta", "\ta", "InvalidCharacterError"); + checkRemove("a\t", "a\t", "a\t", "InvalidCharacterError"); + checkRemove("\na", "\na", "\na", "InvalidCharacterError"); + checkRemove("a\n", "a\n", "a\n", "InvalidCharacterError"); + checkRemove("\fa", "\fa", "\fa", "InvalidCharacterError"); + checkRemove("a\f", "a\f", "a\f", "InvalidCharacterError"); + checkRemove("\ra", "\ra", "\ra", "InvalidCharacterError"); + checkRemove("a\r", "a\r", "a\r", "InvalidCharacterError"); + checkRemove(" a", " a", " a", "InvalidCharacterError"); + checkRemove("a ", "a ", "a ", "InvalidCharacterError"); + checkRemove("aa ", "aa ", null, "InvalidCharacterError"); + + checkRemove(null, "a", null); + checkRemove("", "a", ""); + checkRemove("a b c", "d", "a b c"); + checkRemove("a b c", "A", "a b c"); + checkRemove(" a a a ", "a", ""); + checkRemove("a b", "a", "b"); + checkRemove("a b ", "a", "b"); + checkRemove("a a b", "a", "b"); + checkRemove("aa aa bb", "aa", "bb"); + checkRemove("a a b a a c a a", "a", "b c"); + + checkRemove("a b c", "b", "a c"); + checkRemove("aaa bbb ccc", "bbb", "aaa ccc"); + checkRemove(" a b c ", "b", "a c"); + checkRemove("a b b b c", "b", "a c"); + + checkRemove("a b c", "c", "a b"); + checkRemove(" a b c ", "c", "a b"); + checkRemove("a b c c c", "c", "a b"); + + checkRemove("a b a c a d a", "a", "b c d"); + checkRemove("AA BB aa CC AA dd aa", "AA", "BB aa CC dd"); + + checkRemove("\ra\na\ta\f", "a", ""); + checkRemove("\t\n\f\r a\t\n\f\r b\t\n\f\r ", "a", "b"); + + // multiple remove + checkRemove("a b c ", ["d", "e"], "a b c"); + checkRemove("a b c ", ["a", "b"], "c"); + checkRemove("a b c ", ["a", "c"], "b"); + checkRemove("a b c ", ["a", "a"], "b c"); + checkRemove("a b c ", ["d", "d"], "a b c"); + checkRemove("a b c ", [], "a b c"); + checkRemove(null, ["a", "b"], null); + checkRemove("", ["a", "b"], ""); + checkRemove("a a", [], "a"); + + checkRemove("null", null, ""); + checkRemove("undefined", undefined, ""); + + // toggle() method + + function checkToggle(before, argument, expectedRes, after, expectedException) { + checkModification(e, "toggle", argument, expectedRes, before, after, + expectedException, desc); + } + + checkToggle(null, "", null, null, "SyntaxError"); + checkToggle(null, "aa ", null, null, "InvalidCharacterError"); + + checkToggle(null, "a", true, "a"); + checkToggle("", "a", true, "a"); + checkToggle(" ", "a", true, "a"); + checkToggle(" \f", "a", true, "a"); + checkToggle("a", "b", true, "a b"); + checkToggle("a", "A", true, "a A"); + checkToggle("a b c", "d", true, "a b c d"); + checkToggle(" a a b", "d", true, "a b d"); + + checkToggle("a", "a", false, ""); + checkToggle(" a a a ", "a", false, ""); + checkToggle(" A A A ", "a", true, "A a"); + checkToggle(" a b c ", "b", false, "a c"); + checkToggle(" a b c b b", "b", false, "a c"); + checkToggle(" a b c ", "c", false, "a b"); + checkToggle(" a b c ", "a", false, "b c"); + checkToggle(" a a b", "b", false, "a"); + checkToggle("\t\n\f\r a\t\n\f\r b\t\n\f\r ", "a", false, "b"); + checkToggle("\t\n\f\r a\t\n\f\r b\t\n\f\r ", "c", true, "a b c"); + + checkToggle("null", null, false, ""); + checkToggle("", null, true, "null"); + checkToggle("undefined", undefined, false, ""); + checkToggle("", undefined, true, "undefined"); + + + // tests for the force argument handling + // XXX Remove these if https://github.com/whatwg/dom/issues/443 is fixed + + function checkForceToggle(before, argument, force, expectedRes, after, expectedException) { + checkModification(e, "toggle", [argument, force], expectedRes, before, + after, expectedException, desc); + } + + checkForceToggle("", "a", true, true, "a"); + checkForceToggle("a", "a", true, true, "a"); + checkForceToggle("a", "b", true, true, "a b"); + checkForceToggle("a b", "b", true, true, "a b"); + checkForceToggle("", "a", false, false, ""); + checkForceToggle("a", "a", false, false, ""); + checkForceToggle("a", "b", false, false, "a"); + checkForceToggle("a b", "b", false, false, "a"); + + + // replace() method + function checkReplace(before, token, newToken, after, expectedException) { + checkModification(e, "replace", [token, newToken], undefined, before, + after, expectedException, desc); + } + + checkReplace(null, "", "a", null, "SyntaxError"); + checkReplace(null, "", " ", null, "SyntaxError"); + checkReplace(null, " ", "a", null, "InvalidCharacterError"); + checkReplace(null, "\ta", "b", null, "InvalidCharacterError"); + checkReplace(null, "a\t", "b", null, "InvalidCharacterError"); + checkReplace(null, "\na", "b", null, "InvalidCharacterError"); + checkReplace(null, "a\n", "b", null, "InvalidCharacterError"); + checkReplace(null, "\fa", "b", null, "InvalidCharacterError"); + checkReplace(null, "a\f", "b", null, "InvalidCharacterError"); + checkReplace(null, "\ra", "b", null, "InvalidCharacterError"); + checkReplace(null, "a\r", "b", null, "InvalidCharacterError"); + checkReplace(null, " a", "b", null, "InvalidCharacterError"); + checkReplace(null, "a ", "b", null, "InvalidCharacterError"); + + checkReplace(null, "a", "", null, "SyntaxError"); + checkReplace(null, " ", "", null, "SyntaxError"); + checkReplace(null, "a", " ", null, "InvalidCharacterError"); + checkReplace(null, "b", "\ta", null, "InvalidCharacterError"); + checkReplace(null, "b", "a\t", null, "InvalidCharacterError"); + checkReplace(null, "b", "\na", null, "InvalidCharacterError"); + checkReplace(null, "b", "a\n", null, "InvalidCharacterError"); + checkReplace(null, "b", "\fa", null, "InvalidCharacterError"); + checkReplace(null, "b", "a\f", null, "InvalidCharacterError"); + checkReplace(null, "b", "\ra", null, "InvalidCharacterError"); + checkReplace(null, "b", "a\r", null, "InvalidCharacterError"); + checkReplace(null, "b", " a", null, "InvalidCharacterError"); + checkReplace(null, "b", "a ", null, "InvalidCharacterError"); + + checkReplace("a", "a", "a", "a"); + checkReplace("a", "a", "b", "b"); + checkReplace("a", "A", "b", "a"); + checkReplace("a b", "b", "A", "a A"); + checkReplace("a b c", "d", "e", "a b c"); + // https://github.com/whatwg/dom/issues/443 + checkReplace("a a a b", "a", "a", "a b"); + checkReplace("a a a b", "c", "d", "a a a b"); + checkReplace(null, "a", "b", null); + checkReplace("", "a", "b", ""); + checkReplace(" ", "a", "b", " "); + checkReplace(" a \f", "a", "b", "b"); + checkReplace("a b c", "b", "d", "a d c"); + // https://github.com/whatwg/dom/issues/442 + // Implementations agree on the first one here, so I test it, but disagree on + // the second, so no test until the spec decides what to say. + checkReplace("a b c", "c", "a", "a b"); + checkReplace("c b a", "c", "a", "a b"); + checkReplace("a b a", "a", "c", "c b"); + checkReplace("a b a", "b", "c", "a c"); + checkReplace(" a a b", "a", "c", "c b"); + checkReplace(" a a b", "b", "c", "a c"); + checkReplace("\t\n\f\r a\t\n\f\r b\t\n\f\r ", "a", "c", "c b"); + checkReplace("\t\n\f\r a\t\n\f\r b\t\n\f\r ", "b", "c", "a c"); + + checkReplace("a null", null, "b", "a b"); + checkReplace("a b", "a", null, "null b"); + checkReplace("a undefined", undefined, "b", "a b"); + checkReplace("a b", "a", undefined, "undefined b"); +} + +var content = document.getElementById("content"); + +var htmlNode = document.createElement("div"); +content.appendChild(htmlNode); +testClassList(htmlNode, " (HTML node)"); + +var xhtmlNode = document.createElementNS(XHTML_NS, "div"); +content.appendChild(xhtmlNode); +testClassList(xhtmlNode, " (XHTML node)"); + +var mathMLNode = document.createElementNS(MATHML_NS, "math"); +content.appendChild(mathMLNode); +testClassList(mathMLNode, " (MathML node)"); + +var xmlNode = document.createElementNS(null, "foo"); +content.appendChild(xmlNode); +testClassList(xmlNode, " (XML node with null namespace)"); + +var fooNode = document.createElementNS("http://example.org/foo", "foo"); +content.appendChild(fooNode); +testClassList(fooNode, " (foo node)"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/editing/data/misc.js b/third_party/WebKit/LayoutTests/external/wpt/editing/data/misc.js index 71f9a37..83c02ab7 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/editing/data/misc.js +++ b/third_party/WebKit/LayoutTests/external/wpt/editing/data/misc.js
@@ -9,7 +9,7 @@ [["defaultparagraphseparator","div"]], "foo[bar]baz", [true], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], + {"defaultparagraphseparator":[false,false,"div",false,false,"div"]}], ["foo[bar]baz", [["defaultparagraphseparator","p"]], "foo[bar]baz", @@ -21,6 +21,16 @@ [true], {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], ["foo[bar]baz", + [["defaultparagraphseparator"," p "]], + "foo[bar]baz", + [false], + {"defaultparagraphseparator":[false,false,"div",false,false,"div"]}], +["foo[bar]baz", + [["defaultparagraphseparator","<p>"]], + "foo[bar]baz", + [false], + {"defaultparagraphseparator":[false,false,"div",false,false,"div"]}], +["foo[bar]baz", [["defaultparagraphseparator","P"]], "foo[bar]baz", [true], @@ -29,32 +39,22 @@ [["defaultparagraphseparator"," div "]], "foo[bar]baz", [false], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], -["foo[bar]baz", - [["defaultparagraphseparator"," p "]], - "foo[bar]baz", - [false], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], + {"defaultparagraphseparator":[false,false,"p",false,false,"p"]}], ["foo[bar]baz", [["defaultparagraphseparator","<div>"]], "foo[bar]baz", [false], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], -["foo[bar]baz", - [["defaultparagraphseparator","<p>"]], - "foo[bar]baz", - [false], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], + {"defaultparagraphseparator":[false,false,"p",false,false,"p"]}], ["foo[bar]baz", [["defaultparagraphseparator","li"]], "foo[bar]baz", [false], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], + {"defaultparagraphseparator":[false,false,"p",false,false,"p"]}], ["foo[bar]baz", [["defaultparagraphseparator","blockquote"]], "foo[bar]baz", [false], - {"defaultparagraphseparator":[false,false,"p",false,false,"div"]}], + {"defaultparagraphseparator":[false,false,"p",false,false,"p"]}], ["foo[bar]baz", [["selectall",""]], "foo[bar]baz",
diff --git a/third_party/WebKit/LayoutTests/external/wpt/editing/other/extra-text-nodes-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/editing/other/extra-text-nodes-expected.txt new file mode 100644 index 0000000..45134af6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/editing/other/extra-text-nodes-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +FAIL Simple insertText assert_not_equals: text node "x" is next to "foo" got disallowed value 3 +PASS insertText after insertLineBreak +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/editing/other/extra-text-nodes.html b/third_party/WebKit/LayoutTests/external/wpt/editing/other/extra-text-nodes.html new file mode 100644 index 0000000..2cd1232d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/editing/other/extra-text-nodes.html
@@ -0,0 +1,43 @@ +<!doctype html> +<meta charset=utf-8> +<title>Editor should not create unnecessary text nodes</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div contenteditable></div> +<script> +var div = document.querySelector("div"); +var walker = document.createTreeWalker(div, NodeFilter.SHOW_TEXT); +function testInput(html, callback, desc) { + test(() => { + div.innerHTML = html; + div.focus(); + callback(); + + walker.currentNode = walker.root; + var node; + while (node = walker.nextNode()) { + if (node.nextSibling) { + assert_not_equals(node.nextSibling.nodeType, Node.TEXT_NODE, + 'text node "' + node.nodeValue + '" is next to "' + + node.nextSibling.nodeValue + '"'); + } + } + }, desc); +} + +[ + ['<img src="#">foo<img src="#">', + () => { + getSelection().collapse(div, 1); + document.execCommand("inserttext", false, "x"); + }, + "Simple insertText"], + ['<p>editor</p>', + () => { + getSelection().collapse(div.firstChild.firstChild, 3); + document.execCommand("insertlinebreak", false, ""); + document.execCommand("inserttext", false, "x"); + }, + "insertText after insertLineBreak"], +].forEach(([a, b, c]) => testInput(a, b, c)); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/editing/run/misc-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/editing/run/misc-expected.txt index 6a704027..e61de66 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/editing/run/misc-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/editing/run/misc-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 423 tests; 408 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 423 tests; 415 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN. FAIL [["defaultparagraphseparator",""]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "") return value assert_equals: expected false but got true PASS [["defaultparagraphseparator",""]] "foo[bar]baz" checks for modifications to non-editable content PASS [["defaultparagraphseparator",""]] "foo[bar]baz" compare innerHTML @@ -14,7 +14,7 @@ PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" compare innerHTML PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") before PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") before -FAIL [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" +PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after PASS [["defaultparagraphseparator","div"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after @@ -36,6 +36,24 @@ PASS [["defaultparagraphseparator","DIV"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after PASS [["defaultparagraphseparator","DIV"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after PASS [["defaultparagraphseparator","DIV"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after +FAIL [["defaultparagraphseparator"," p "]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, " p ") return value assert_equals: expected false but got true +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" checks for modifications to non-editable content +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" compare innerHTML +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") before +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") before +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after +PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after +FAIL [["defaultparagraphseparator","<p>"]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "<p>") return value assert_equals: expected false but got true +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" checks for modifications to non-editable content +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" compare innerHTML +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") before +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") before +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after +PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after PASS [["defaultparagraphseparator","P"]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "P") return value PASS [["defaultparagraphseparator","P"]] "foo[bar]baz" checks for modifications to non-editable content PASS [["defaultparagraphseparator","P"]] "foo[bar]baz" compare innerHTML @@ -53,16 +71,7 @@ PASS [["defaultparagraphseparator"," div "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before PASS [["defaultparagraphseparator"," div "]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after PASS [["defaultparagraphseparator"," div "]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after -FAIL [["defaultparagraphseparator"," div "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "div" but got "p" -FAIL [["defaultparagraphseparator"," p "]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, " p ") return value assert_equals: expected false but got true -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" checks for modifications to non-editable content -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" compare innerHTML -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") before -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") before -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after -PASS [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after -FAIL [["defaultparagraphseparator"," p "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "div" but got "p" +PASS [["defaultparagraphseparator"," div "]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after FAIL [["defaultparagraphseparator","<div>"]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "<div>") return value assert_equals: expected false but got true PASS [["defaultparagraphseparator","<div>"]] "foo[bar]baz" checks for modifications to non-editable content PASS [["defaultparagraphseparator","<div>"]] "foo[bar]baz" compare innerHTML @@ -71,16 +80,7 @@ PASS [["defaultparagraphseparator","<div>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before PASS [["defaultparagraphseparator","<div>"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after PASS [["defaultparagraphseparator","<div>"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after -FAIL [["defaultparagraphseparator","<div>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "div" but got "p" -FAIL [["defaultparagraphseparator","<p>"]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "<p>") return value assert_equals: expected false but got true -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" checks for modifications to non-editable content -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" compare innerHTML -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") before -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") before -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after -PASS [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after -FAIL [["defaultparagraphseparator","<p>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "div" but got "p" +PASS [["defaultparagraphseparator","<div>"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after FAIL [["defaultparagraphseparator","li"]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "li") return value assert_equals: expected false but got true PASS [["defaultparagraphseparator","li"]] "foo[bar]baz" checks for modifications to non-editable content PASS [["defaultparagraphseparator","li"]] "foo[bar]baz" compare innerHTML @@ -89,7 +89,7 @@ PASS [["defaultparagraphseparator","li"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before PASS [["defaultparagraphseparator","li"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after PASS [["defaultparagraphseparator","li"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after -FAIL [["defaultparagraphseparator","li"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "div" but got "p" +PASS [["defaultparagraphseparator","li"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after FAIL [["defaultparagraphseparator","blockquote"]] "foo[bar]baz": execCommand("defaultparagraphseparator", false, "blockquote") return value assert_equals: expected false but got true PASS [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" checks for modifications to non-editable content PASS [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" compare innerHTML @@ -98,7 +98,7 @@ PASS [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") before PASS [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" queryCommandIndeterm("defaultparagraphseparator") after PASS [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" queryCommandState("defaultparagraphseparator") after -FAIL [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "div" but got "p" +PASS [["defaultparagraphseparator","blockquote"]] "foo[bar]baz" queryCommandValue("defaultparagraphseparator") after PASS [["selectall",""]] "foo[bar]baz": execCommand("selectall", false, "") return value PASS [["selectall",""]] "foo[bar]baz" checks for modifications to non-editable content PASS [["selectall",""]] "foo[bar]baz" compare innerHTML
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/README.md b/third_party/WebKit/LayoutTests/external/wpt/eventsource/README.md new file mode 100644 index 0000000..60bbea3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/README.md
@@ -0,0 +1,2 @@ +These are the Server-sent events (`EventSource`) tests for the +[Server-sent events chapter of the HTML Standard](https://html.spec.whatwg.org/multipage/comms.html#server-sent-events).
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-close.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-close.htm new file mode 100644 index 0000000..42ebb1d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-close.htm
@@ -0,0 +1,36 @@ +<!-- +try { + var source = new EventSource("../resources/message.py") + source.onopen = function(e) { + this.close() + postMessage([true, this.readyState]) + } +} catch(e) { + postMessage([false, String(e)]) +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>dedicated worker - EventSource: close()</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(); + test.step(function() { + var worker = new Worker('#') + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], EventSource.CLOSED, 'this.readyState') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-non-same-origin-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-non-same-origin-expected.txt new file mode 100644 index 0000000..abcf3ac8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-non-same-origin-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL dedicated worker - EventSource: constructor (act as if there is a network error) (http://example.not/) assert_equals: source.readyState expected 2 but got 0 +FAIL dedicated worker - EventSource: constructor (act as if there is a network error) (https://example.not/test) assert_equals: source.readyState expected 2 but got 0 +PASS dedicated worker - EventSource: constructor (act as if there is a network error) (ftp://example.not/) +PASS dedicated worker - EventSource: constructor (act as if there is a network error) (about:blank) +PASS dedicated worker - EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example) +PASS dedicated worker - EventSource: constructor (act as if there is a network error) (javascript:alert('FAIL')) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm new file mode 100644 index 0000000..9fe515d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm
@@ -0,0 +1,49 @@ +<!-- +try { + var url = decodeURIComponent(location.hash.substr(1)) + var source = new EventSource(url) + source.onerror = function(e) { + postMessage([true, this.readyState, 'data' in e]) + this.close(); + } +} catch(e) { + postMessage([false, String(e)]) +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>dedicated worker - EventSource: constructor (act as if there is a network error)</title> + <meta name=timeout content=long> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + function fetchFail(url) { + var test = async_test(document.title + " (" + url + ")", { timeout: 20000 }) + test.step(function() { + var worker = new Worker('#'+encodeURIComponent(url)) + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], EventSource.CLOSED, 'source.readyState') + assert_false(e.data[2], "'data' in e"); + }) + test.done() + } + }) + } + fetchFail("http://example.not/") + fetchFail("https://example.not/test") + fetchFail("ftp://example.not/") + fetchFail("about:blank") + fetchFail("mailto:whatwg@awesome.example") + fetchFail("javascript:alert('FAIL')") + </script> + <!-- This tests "fails the connection" as well as making sure a simple + event is dispatched and not a MessageEvent --> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-url-bogus-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-url-bogus-expected.txt new file mode 100644 index 0000000..1061a67 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-url-bogus-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL dedicated worker - EventSource: constructor (invalid URL) assert_true: no exception thrown expected true got false +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm new file mode 100644 index 0000000..5ffdec8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm
@@ -0,0 +1,34 @@ +<!-- +try { + var source = new EventSource("http://this is invalid/") + postMessage([false, 'no exception thrown']) + source.close() +} catch(e) { + postMessage([true, e.code]) +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>dedicated worker - EventSource: constructor (invalid URL)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new Worker('#') + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], DOMException.SYNTAX_ERR, 'e.code') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //--> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-eventtarget.worker.js b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-eventtarget.worker.js new file mode 100644 index 0000000..73b3055 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-eventtarget.worker.js
@@ -0,0 +1,11 @@ +importScripts("/resources/testharness.js"); + +async_test(function() { + var source = new EventSource("../resources/message.py") + source.addEventListener("message", this.step_func_done(function(e) { + assert_equals(e.data, 'data'); + source.close(); + }), false) +}, "dedicated worker - EventSource: addEventListener()"); + +done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-onmesage.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-onmesage.htm new file mode 100644 index 0000000..2de142c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-onmesage.htm
@@ -0,0 +1,36 @@ +<!-- +try { + var source = new EventSource("../resources/message.py") + source.onmessage = function(e) { + postMessage([true, e.data]) + this.close() + } +} catch(e) { + postMessage([false, String(e)]) +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>dedicated worker - EventSource: onmessage</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new Worker('#') + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], "data", 'e.data') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-onopen.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-onopen.htm new file mode 100644 index 0000000..e753b42f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-onopen.htm
@@ -0,0 +1,39 @@ +<!-- +try { + var source = new EventSource("../resources/message.py") + source.onopen = function(e) { + postMessage([true, source.readyState, 'data' in e, e.bubbles, e.cancelable]) + this.close() + } +} catch(e) { + postMessage([false, String(e)]) +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>dedicated worker - EventSource: onopen (announcing the connection)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new Worker('#') + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], EventSource.OPEN, 'source.readyState') + assert_false(e.data[2], "'data' in e") + assert_false(e.data[3], 'e.bubbles') + assert_false(e.data[4], 'e.calcelable') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-prototype.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-prototype.htm new file mode 100644 index 0000000..b16e24c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-prototype.htm
@@ -0,0 +1,36 @@ +<!-- +try { + EventSource.prototype.ReturnTrue = function() { return true } + var source = new EventSource("../resources/message.py") + postMessage([true, source.ReturnTrue(), 'EventSource' in self]) + source.close() +} catch(e) { + postMessage([false, String(e)]) +} +/*--> +<!DoCtYpE hTMl> +<html> + <heAd> + <title>dedicated worker - EventSource: prototype et al</tiTle> + <scrIpt src="/resources/testharness.js"></scripT> + <scriPt src="/resources/testharnessreport.js"></Script> + </heaD> + <boDy> + <diV iD="log"></Div> + <sCript> + var test = async_test(); + test.step(function() { + var worker = new Worker('#') + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_true(e.data[1], 'source.ReturnTrue()') + assert_true(e.data[2], "'EventSource' in self") + }) + test.done() + } + }) + </scrIpt> + </bOdy> +</htMl> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-url.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-url.htm new file mode 100644 index 0000000..c1ed078 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/dedicated-worker/eventsource-url.htm
@@ -0,0 +1,35 @@ +<!-- +try { + var source = new EventSource("../resources/message.py") + postMessage([true, source.url]) + source.close() +} catch(e) { + postMessage([false, String(e)]) +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>dedicated worker - EventSource: url</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(); + test.step(function() { + var url = "resources/message.py" + var worker = new Worker('#') + worker.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]); + assert_equals(e.data[1].substr(-(url.length)), url) + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/event-data.html b/third_party/WebKit/LayoutTests/external/wpt/eventsource/event-data.html new file mode 100644 index 0000000..8f74a01 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/event-data.html
@@ -0,0 +1,44 @@ +<!doctype html> +<html> + <head> + <title>EventSource: lines and data parsing</title> + <meta rel=help href="http://dev.w3.org/html5/eventsource/#event-stream-interpretation"> + <meta rel=assert title="If the line is empty (a blank line) Dispatch the event, as defined below."> + <meta rel=assert title="If the line starts with a U+003A COLON character (:) Ignore the line."> + <meta rel=assert title="If the line contains a U+003A COLON character (:) + Collect the characters on the line before the first U+003A COLON character (:), and let field be that string. + Collect the characters on the line after the first U+003A COLON character (:), and let value be that string. If value starts with a U+0020 SPACE character, remove it from value. + Process the field using the steps described below, using field as the field name and value as the field value. + "> + <meta rel=assert title="Otherwise, the string is not empty but does not contain a U+003A COLON character (:) +Process the field using the steps described below, using the whole line as the field name, and the empty string as the field value. + "> + + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(document.title); + test.step(function() { + var source = new EventSource("resources/message2.py"), + counter = 0; + source.onmessage = test.step_func(function(e) { + if(counter == 0) { + assert_equals(e.data,"msg\nmsg"); + } else if(counter == 1) { + assert_equals(e.data,""); + } else if(counter == 2) { + assert_equals(e.data,"end"); + source.close(); + test.done(); + } else { + assert_unreached(); + } + counter++; + }); + }); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-close.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-close.htm new file mode 100644 index 0000000..92d98de --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-close.htm
@@ -0,0 +1,82 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: close()</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py") + assert_equals(source.readyState, source.CONNECTING, "connecting readyState"); + source.onopen = this.step_func(function() { + assert_equals(source.readyState, source.OPEN, "open readyState"); + source.close() + assert_equals(source.readyState, source.CLOSED, "closed readyState"); + this.done() + }) + }) + + var test2 = async_test(document.title + ", test events", { timeout: 9000 }); + test2.step(function() { + var count = 0, reconnected = false, + source = new EventSource("resources/reconnect-fail.py?id=" + new Date().getTime()); + + source.onerror = this.step_func(function(e) { + assert_equals(e.type, 'error'); + switch(count) { + // reconnecting after first message + case 1: + assert_equals(source.readyState, source.CONNECTING, "reconnecting readyState"); + + reconnected = true; + break; + + // one more reconnect to get to the closing + case 2: + assert_equals(source.readyState, source.CONNECTING, "last reconnecting readyState"); + count++; + break; + + // close + case 3: + assert_equals(source.readyState, source.CLOSED, "closed readyState"); + + // give some time for errors to hit us + setTimeout(this.step_func(function() { this.done(); }), 100); + break; + + default: + assert_unreached("Error handler with msg count " + count); + } + + }); + + source.onmessage = this.step_func(function(e) { + switch(count) { + case 0: + assert_true(!reconnected, "no error event run"); + assert_equals(e.data, "opened", "data"); + break; + + case 1: + assert_true(reconnected, "have reconnected"); + assert_equals(e.data, "reconnected", "data"); + break; + + default: + assert_unreached("Dunno what to do with message number " + count); + } + + count++; + }); + + }); + + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-document-domain.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-document-domain.htm new file mode 100644 index 0000000..8fd7420 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-document-domain.htm
@@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: document.domain</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + document.domain = document.domain + source = new EventSource("resources/message.py") + source.onopen = function(e) { + test.step(function() { + assert_equals(source.readyState, source.OPEN) + assert_false(e.hasOwnProperty('data')) + assert_false(e.bubbles) + assert_false(e.cancelable) + this.close() + }, this) + test.done() + } + }) + </script> + <!-- Apart from document.domain equivalent to the onopen test. --> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-non-same-origin-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-non-same-origin-expected.txt new file mode 100644 index 0000000..c3fbb53 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-non-same-origin-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL EventSource: constructor (act as if there is a network error) (http://example.not/) assert_equals: expected 2 but got 0 +FAIL EventSource: constructor (act as if there is a network error) (https://example.not/test) assert_equals: expected 2 but got 0 +PASS EventSource: constructor (act as if there is a network error) (ftp://example.not/) +PASS EventSource: constructor (act as if there is a network error) (about:blank) +PASS EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example) +PASS EventSource: constructor (act as if there is a network error) (javascript:alert('FAIL')) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-non-same-origin.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-non-same-origin.htm new file mode 100644 index 0000000..dd4ab84 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-non-same-origin.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: constructor (act as if there is a network error)</title> + <meta name=timeout content=long> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + function fetchFail(url) { + var test = async_test(document.title + " (" + url + ")", { timeout: 20000 }) + test.step(function() { + var source = new EventSource(url) + source.onerror = function(e) { + test.step(function() { + assert_equals(source.readyState, source.CLOSED) + assert_false(e.hasOwnProperty('data')) + }) + test.done() + } + }) + } + fetchFail("http://example.not/") + fetchFail("https://example.not/test") + fetchFail("ftp://example.not/") + fetchFail("about:blank") + fetchFail("mailto:whatwg@awesome.example") + fetchFail("javascript:alert('FAIL')") + </script> + <!-- This tests "fails the connection" as well as making sure a simple + event is dispatched and not a MessageEvent --> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-stringify.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-stringify.htm new file mode 100644 index 0000000..162fa34 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-stringify.htm
@@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: stringify argument</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + async_test(function (test) { + test.step(function() { + var source = new EventSource({toString:function(){return "resources/message.py";}}) + source.onopen = function(e) { + test.step(function() { + assert_false(e.hasOwnProperty('data')) + source.close() + test.done() + }) + } + }); + }, document.title + ', object'); + + test(function(){ + var source = new EventSource(1); + assert_regexp_match(source.url, /\/1$/); + }, document.title + ', 1'); + test(function(){ + var source = new EventSource(null); + assert_regexp_match(source.url, /\/null$/); + }, document.title + ', null'); + test(function(){ + var source = new EventSource(undefined); + assert_regexp_match(source.url, /\/undefined$/); + }, document.title + ', undefined'); + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-bogus-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-bogus-expected.txt new file mode 100644 index 0000000..36cb0c6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-bogus-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL EventSource: constructor (invalid URL) assert_throws: function "function () { new EventSource("http://this is invalid/") }" did not throw +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-bogus.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-bogus.htm new file mode 100644 index 0000000..8e769ed71 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-bogus.htm
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: constructor (invalid URL)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + test(function() { + assert_throws("SyntaxError", function() { new EventSource("http://this is invalid/") }) + }) + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-multi-window.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-multi-window.htm new file mode 100644 index 0000000..99fecb97 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-constructor-url-multi-window.htm
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: resolving URLs</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + function init() { + test.step(function() { + source = new self[0].EventSource("message.py") + source.onopen = function(e) { + test.step(function() { + assert_equals(source.readyState, source.OPEN) + assert_false(e.hasOwnProperty('data')) + assert_false(e.bubbles) + assert_false(e.cancelable) + this.close() + test.done() + }, this) + } + source.onerror = function(e) { + test.step(function() { + assert_unreached() + source.close() + test.done() + }) + } + }) + } + </script> + <iframe src="resources/init.htm"></iframe> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-cross-origin.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-cross-origin.htm new file mode 100644 index 0000000..b753bad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-cross-origin.htm
@@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset=utf-8> + <title>EventSource: cross-origin</title> + <meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var crossdomain = location.href + .replace('://', '://www2.') + .replace(/\/[^\/]*$/, '/') + + function doCORS(url, title) { + async_test(document.title + " " + title).step(function() { + var source = new EventSource(url, { withCredentials: true }) + source.onmessage = this.step_func(function(e) { + assert_equals(e.data, "data") + source.close() + this.done() + }) + }) + } + + doCORS(crossdomain + "resources/cors.py?run=message", + "basic use") + doCORS(crossdomain + "resources/cors.py?run=redirect&location=/eventsource/resources/cors.py?run=message", + "redirect use") + doCORS(crossdomain + "resources/cors.py?run=status-reconnect&status=200", + "redirect use recon") + + function failCORS(url, title) { + async_test(document.title + " " + title).step(function() { + var source = new EventSource(url) + source.onerror = this.step_func(function(e) { + assert_equals(source.readyState, source.CLOSED, 'readyState') + assert_false(e.hasOwnProperty('data')) + source.close() + this.done() + }) + + /* Shouldn't happen */ + source.onmessage = this.step_func(function(e) { + assert_unreached("shouldn't fire message event") + }) + source.onopen = this.step_func(function(e) { + assert_unreached("shouldn't fire open event") + }) + }) + } + + failCORS(crossdomain + "resources/cors.py?run=message&origin=http://example.org", + "allow-origin: http://example.org should fail") + failCORS(crossdomain + "resources/cors.py?run=message&origin=", + "allow-origin:'' should fail") + failCORS(crossdomain + "resources/message.py", + "No allow-origin should fail") + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-eventtarget.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-eventtarget.htm new file mode 100644 index 0000000..6e600fc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-eventtarget.htm
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: addEventListener()</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py") + source.addEventListener("message", listener, false) + }) + function listener(e) { + test.step(function() { + assert_equals("data", e.data) + this.close() + }, this) + test.done() + } + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-realm-support.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-realm-support.htm new file mode 100644 index 0000000..63e6d01 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-realm-support.htm
@@ -0,0 +1,2 @@ +<!DOCTYPE html> +<title>This page is just used to grab an EventSource constructor</title>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-realm.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-realm.htm new file mode 100644 index 0000000..9bc8c4646 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-realm.htm
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>EventSource: message event Realm</title> +<link rel="help" href="https://html.spec.whatwg.org/multipage/comms.html#dispatchMessage"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<iframe src="eventsource-onmessage-realm-support.htm"></iframe> + +<script> +"use strict"; + +async_test(t => { + window.onload = t.step_func(() => { + const source = new frames[0].EventSource("resources/message.py"); + t.add_cleanup(() => { + source.close(); + }); + + source.onmessage = t.step_func_done(e => { + assert_equals(e.constructor, frames[0].MessageEvent); + }); + }); +}, "the MessageEvent must be created in the Realm of the EventSource"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-trusted.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-trusted.htm new file mode 100644 index 0000000..c3f012b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage-trusted.htm
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<title>EventSource message events are trusted</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://html.spec.whatwg.org/multipage/comms.html#dispatchMessage"> +<!-- See also: +- https://github.com/whatwg/html/pull/1935 +--> + +<script> +"use strict"; + +async_test(t => { + const source = new EventSource("resources/message.py"); + + source.onmessage = t.step_func_done(e => { + source.close(); + assert_equals(e.isTrusted, true); + }); +}, "EventSource message events are trusted"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage.htm new file mode 100644 index 0000000..b683ebc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onmessage.htm
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: onmessage</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py") + source.onmessage = function(e) { + test.step(function() { + assert_equals("data", e.data) + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onopen.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onopen.htm new file mode 100644 index 0000000..1c9bfe03 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-onopen.htm
@@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: onopen (announcing the connection)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + source = new EventSource("resources/message.py") + source.onopen = function(e) { + test.step(function() { + assert_equals(source.readyState, source.OPEN) + assert_false(e.hasOwnProperty('data')) + assert_false(e.bubbles) + assert_false(e.cancelable) + this.close() + }, this) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-prototype.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-prototype.htm new file mode 100644 index 0000000..38f63eb5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-prototype.htm
@@ -0,0 +1,21 @@ +<!DoCtYpE hTMl> +<html> + <heAd> + <title>EventSource: prototype et al</tiTle> + <scrIpt src="/resources/testharness.js"></scripT> + <scriPt src="/resources/testharnessreport.js"></Script> + </heaD> + <boDy> + <diV iD="log"></Div> + <sCript> + test(function() { + EventSource.prototype.ReturnTrue = function() { return true } + var source = new EventSource("resources/message.py") + assert_true(source.ReturnTrue()) + assert_exists(window, "EventSource") + source.close() + }) + </scrIpt> + </bOdy> +</htMl> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-reconnect.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-reconnect.htm new file mode 100644 index 0000000..a23885f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-reconnect.htm
@@ -0,0 +1,58 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: reconnection</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + function doReconn(url, title) { + var test = async_test(document.title + " " + title) + test.step(function() { + var source = new EventSource(url) + source.onmessage = test.step_func(function(e) { + assert_equals(e.data, "data") + source.close() + test.done() + }) + }) + } + + doReconn("resources/status-reconnect.py?status=200", + "200") + + + var t = async_test(document.title + ", test reconnection events", { timeout: 9000 }); + t.step(function() { + var opened = false, reconnected = false, + source = new EventSource("resources/status-reconnect.py?status=200&ok_first&id=2"); + + source.onerror = t.step_func(function(e) { + assert_equals(e.type, 'error'); + assert_equals(source.readyState, source.CONNECTING, "readyState"); + assert_true(opened, "connection is opened earlier"); + + reconnected = true; + }); + + source.onmessage = t.step_func(function(e) { + if (!opened) { + opened = true; + assert_false(reconnected, "have reconnected before first message"); + assert_equals(e.data, "ok"); + } + else { + assert_true(reconnected, "Got reconnection event"); + assert_equals(e.data, "data"); + source.close() + t.done() + } + }); + }); + + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-request-cancellation.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-request-cancellation.htm new file mode 100644 index 0000000..308e4d5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-request-cancellation.htm
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: request cancellation</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var t = async_test(); + onload = t.step_func(function() { + var url = "resources/message.py?sleep=1000&message=" + encodeURIComponent("retry:1000\ndata:abc\n\n"); + var es = new EventSource(url); + es.onerror = t.step_func(function() { + assert_equals(es.readyState, EventSource.CLOSED) + setTimeout(t.step_func(function () { + assert_equals(es.readyState, EventSource.CLOSED, + "After stopping the eventsource readyState should be CLOSED") + t.done(); + }), 1000); + }); + + setTimeout(t.step_func(function() { + window.stop() + es.onopen = t.unreached_func("Got open event"); + es.onmessage = t.unreached_func("Got message after closing source"); + }), 0); + }); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-url.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-url.htm new file mode 100644 index 0000000..8b9262b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/eventsource-url.htm
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: url</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + test(function() { + var url = "resources/message.py", + source = new EventSource(url) + assert_equals(source.url.substr(-(url.length)), url) + source.close() + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-bom-2.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-bom-2.htm new file mode 100644 index 0000000..6f267a0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-bom-2.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: Double BOM</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(), + hasbeenone = false, + hasbeentwo = false + test.step(function() { + var source = new EventSource("resources/message.py?message=%EF%BB%BF%EF%BB%BFdata%3A1%0A%0Adata%3A2%0A%0Adata%3A3") + source.addEventListener("message", listener, false) + }) + function listener(e) { + test.step(function() { + if(e.data == "1") + hasbeenone = true + if(e.data == "2") + hasbeentwo = true + if(e.data == "3") { + assert_false(hasbeenone) + assert_true(hasbeentwo) + this.close() + test.done() + } + }, this) + } + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-bom.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-bom.htm new file mode 100644 index 0000000..9216022 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-bom.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: BOM</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(), + hasbeenone = false, + hasbeentwo = false + test.step(function() { + var source = new EventSource("resources/message.py?message=%EF%BB%BFdata%3A1%0A%0A%EF%BB%BFdata%3A2%0A%0Adata%3A3") + source.addEventListener("message", listener, false) + }) + function listener(e) { + test.step(function() { + if(e.data == "1") + hasbeenone = true + if(e.data == "2") + hasbeentwo = true + if(e.data == "3") { + assert_true(hasbeenone) + assert_false(hasbeentwo) + this.close() + test.done() + } + }, this) + } + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-comments.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-comments.htm new file mode 100644 index 0000000..fde360db --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-comments.htm
@@ -0,0 +1,27 @@ +<!doctype html> +<html> + <head> + <title>EventSource: comment fest</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var longstring = (new Array(2*1024+1)).join("x"), // cannot make the string too long; causes timeout + message = encodeURI("data:1\r:\0\n:\r\ndata:2\n:" + longstring + "\rdata:3\n:data:fail\r:" + longstring + "\ndata:4\n"), + source = new EventSource("resources/message.py?message=" + message + "&newline=none") + source.onmessage = function(e) { + test.step(function() { + assert_equals("1\n2\n3\n4", e.data) + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-data-before-final-empty-line.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-data-before-final-empty-line.htm new file mode 100644 index 0000000..e429d7f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-data-before-final-empty-line.htm
@@ -0,0 +1,29 @@ +<!doctype html> +<html> + <head> + <title>EventSource: a data before final empty line</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?newline=none&message=" + encodeURIComponent("retry:1000\ndata:test1\n\nid:test\ndata:test2")) + var count = 0; + source.onmessage = function(e) { + if (++count === 2) { + test.step(function() { + assert_equals(e.lastEventId, "", "lastEventId") + assert_equals(e.data, "test1", "data") + source.close() + }) + test.done() + } + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-data.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-data.htm new file mode 100644 index 0000000..a731355 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-data.htm
@@ -0,0 +1,34 @@ +<!doctype html> +<html> + <head> + <title>EventSource: data field parsing</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=data%3A%0A%0Adata%0Adata%0A%0Adata%3Atest"), + counter = 0 + source.onmessage = function(e) { + test.step(function() { + if(counter == 0) { + assert_equals("", e.data) + } else if(counter == 1) { + assert_equals("\n", e.data) + } else if(counter == 2) { + assert_equals("test", e.data) + source.close() + test.done() + } else { + assert_unreached() + } + counter++ + }) + } + }) + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-event-empty.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-event-empty.htm new file mode 100644 index 0000000..20a6d6d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-event-empty.htm
@@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <title>EventSource: empty "event" field</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=event%3A%20%0Adata%3Adata") + source.onmessage = function(e) { + test.step(function() { + assert_equals("data", e.data) + this.close() + }, this) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-event.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-event.htm new file mode 100644 index 0000000..3c3267f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-event.htm
@@ -0,0 +1,27 @@ +<!doctype html> +<html> + <head> + <title>EventSource: custom event name</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(), + dispatchedtest = false + test.step(function() { + var source = new EventSource("resources/message.py?message=event%3Atest%0Adata%3Ax%0A%0Adata%3Ax") + source.addEventListener("test", function() { test.step(function() { dispatchedtest = true }) }, false) + source.onmessage = function() { + test.step(function() { + assert_true(dispatchedtest) + this.close() + }, this) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-id-2.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-id-2.htm new file mode 100644 index 0000000..ac521fc1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-id-2.htm
@@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>EventSource: Last-Event-ID (2)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/last-event-id.py"), + counter = 0 + source.onmessage = function(e) { + test.step(function() { + if(e.data == "hello" && counter == 0) { + counter++ + assert_equals(e.lastEventId, "…") + } else if(counter == 1) { + counter++ + assert_equals("…", e.data) + assert_equals("…", e.lastEventId) + } else if(counter == 2) { + counter++ + assert_equals("…", e.data) + assert_equals("…", e.lastEventId) + source.close() + test.done() + } else + assert_unreached() + }) + } + }) + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-id.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-id.htm new file mode 100644 index 0000000..19ada954 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-id.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>EventSource: Last-Event-ID</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/last-event-id.py"), + seenhello = false + source.onmessage = function(e) { + test.step(function() { + if(e.data == "hello" && !seenhello) { + seenhello = true + assert_equals(e.lastEventId, "…") + } else if(seenhello) { + assert_equals("…", e.data) + assert_equals("…", e.lastEventId) + source.close() + test.done() + } else + assert_unreached() + }) + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-parsing.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-parsing.htm new file mode 100644 index 0000000..da221762 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-parsing.htm
@@ -0,0 +1,26 @@ +<!doctype html> +<html> + <head> + <title>EventSource: field parsing</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var message = encodeURI("data:\0\ndata: 2\rData:1\ndata\0:2\ndata:1\r\0data:4\nda-ta:3\rdata_5\ndata:3\rdata:\r\n data:32\ndata:4\n"), + source = new EventSource("resources/message.py?message=" + message + "&newline=none") + source.onmessage = function(e) { + test.step(function() { + assert_equals(e.data, "\0\n 2\n1\n3\n\n4") + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry-bogus.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry-bogus.htm new file mode 100644 index 0000000..0cdf9b4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry-bogus.htm
@@ -0,0 +1,31 @@ +<!doctype html> +<html> + <head> + <title>EventSource: "retry" field (bogus)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(document.title) + test.step(function() { + var timeoutms = 3000, + source = new EventSource("resources/message.py?message=retry%3A3000%0Aretry%3A1000x%0Adata%3Ax"), + opened = 0 + source.onopen = function() { + test.step(function() { + if(opened == 0) + opened = new Date().getTime() + else { + var diff = (new Date().getTime()) - opened + assert_true(Math.abs(1 - diff / timeoutms) < 0.25) // allow 25% difference + this.close(); + test.done() + } + }, this) + } + }) + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry-empty.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry-empty.htm new file mode 100644 index 0000000..2757486 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry-empty.htm
@@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <title>EventSource: empty retry field</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=retry%0Adata%3Atest") + source.onmessage = function(e) { + test.step(function() { + assert_equals("test", e.data) + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry.htm new file mode 100644 index 0000000..133794f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-retry.htm
@@ -0,0 +1,33 @@ +<!doctype html> +<html> + <head> + <title>EventSource: "retry" field</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(document.title); + test.step(function() { + var timeoutms = 3000, + timeoutstr = "03000", // 1536 in octal, but should be 3000 + source = new EventSource("resources/message.py?message=retry%3A" + timeoutstr + "%0Adata%3Ax"), + opened = 0 + source.onopen = function() { + test.step(function() { + if(opened == 0) + opened = new Date().getTime() + else { + var diff = (new Date().getTime()) - opened + assert_true(Math.abs(1 - diff / timeoutms) < 0.25) // allow 25% difference + this.close(); + test.done() + } + }, this) + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-unknown.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-unknown.htm new file mode 100644 index 0000000..3b6efd54 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-field-unknown.htm
@@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <title>EventSource: unknown fields and parsing fun</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=data%3Atest%0A%20data%0Adata%0Afoobar%3Axxx%0Ajustsometext%0A%3Athisisacommentyay%0Adata%3Atest") + source.onmessage = function(e) { + test.step(function() { + assert_equals("test\n\ntest", e.data) + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-leading-space.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-leading-space.htm new file mode 100644 index 0000000..b70ba89c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-leading-space.htm
@@ -0,0 +1,26 @@ +<!doctype html> +<html> + <head> + <title>EventSource: leading space</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=data%3A%09test%0Ddata%3A%20%0Adata%3Atest") + source.onmessage = function(e) { + test.step(function() { + assert_equals("\ttest\n\ntest", e.data) + source.close() + }) + test.done() + } + }) + </script> + <!-- also used a CR as newline once --> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-bogus.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-bogus.htm new file mode 100644 index 0000000..caf9cb4a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-bogus.htm
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: bogus MIME type</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?mime=x%20bogus") + source.onmessage = function() { + test.step(function() { + assert_unreached() + source.close() + }) + test.done() + } + source.onerror = function(e) { + test.step(function() { + assert_equals(this.readyState, this.CLOSED) + assert_false(e.hasOwnProperty('data')) + assert_false(e.bubbles) + assert_false(e.cancelable) + this.close() + }, this) + test.done() + } + }) + </script> + <!-- This tests "fails the connection" as well as making sure a simple + event is dispatched and not a MessageEvent --> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-trailing-semicolon.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-trailing-semicolon.htm new file mode 100644 index 0000000..6bcac83 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-trailing-semicolon.htm
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: MIME type with trailing ;</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?mime=text/event-stream%3B") + source.onopen = function() { + test.step(function() { + assert_equals(source.readyState, source.OPEN) + source.close() + }) + test.done() + } + source.onerror = function() { + test.step(function() { + assert_unreached() + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-valid-bogus.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-valid-bogus.htm new file mode 100644 index 0000000..211f841 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-mime-valid-bogus.htm
@@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: incorrect valid MIME type</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?mime=text/x-bogus") + source.onmessage = function() { + test.step(function() { + assert_unreached() + source.close() + }) + test.done() + } + source.onerror = function(e) { + test.step(function() { + assert_equals(source.readyState, source.CLOSED) + assert_false(e.hasOwnProperty('data')) + assert_false(e.bubbles) + assert_false(e.cancelable) + }) + test.done() + } + }) + </script> + <!-- This tests "fails the connection" as well as making sure a simple + event is dispatched and not a MessageEvent --> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-newlines.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-newlines.htm new file mode 100644 index 0000000..87d6a569 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-newlines.htm
@@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <title>EventSource: newline fest</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=data%3Atest%0D%0Adata%0Adata%3Atest%0D%0A%0D&newline=none") + source.onmessage = function(e) { + test.step(function() { + assert_equals("test\n\ntest", e.data) + source.close() + }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-null-character.html b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-null-character.html new file mode 100644 index 0000000..0640530 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-null-character.html
@@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset=utf-8> + <title>EventSource: null character in response</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/message.py?message=data%3A%00%0A%0A") + source.onmessage = function(e) { + test.step(function() { + assert_equals("\x00", e.data) + source.close() + }, this) + test.done() + } + source.onerror = function() { + test.step(function() { assert_unreached() }) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-utf-8.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-utf-8.htm new file mode 100644 index 0000000..d7858a1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/format-utf-8.htm
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset=utf-8> + <title>EventSource: always UTF-8</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + async_test().step(function() { + var source = new EventSource("resources/message.py?mime=text/event-stream;charset=windows-1252&message=data%3Aok%E2%80%A6") + source.onmessage = this.step_func(function(e) { + assert_equals('ok…', e.data, 'decoded data') + source.close() + this.done() + }) + source.onerror = this.step_func(function() { + assert_unreached("Got error event") + }) + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/interfaces.html b/third_party/WebKit/LayoutTests/external/wpt/eventsource/interfaces.html new file mode 100644 index 0000000..443d746 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/interfaces.html
@@ -0,0 +1,74 @@ +<!doctype html> +<title>EventSource IDL tests</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/WebIDLParser.js></script> +<script src=/resources/idlharness.js></script> + +<h1>EventSource IDL tests</h1> +<div id=log></div> + +<script type=text/plain> +[Exposed=(Window,Worker)] +interface EventTarget { + void addEventListener(DOMString type, EventListener? listener, optional (AddEventListenerOptions or boolean) options); + void removeEventListener(DOMString type, EventListener? listener, optional (EventListenerOptions or boolean) options); + boolean dispatchEvent(Event event); +}; +callback interface EventListener { + void handleEvent(Event event); +}; +dictionary EventListenerOptions { + boolean capture = false; +}; +dictionary AddEventListenerOptions : EventListenerOptions { + boolean passive = false; + boolean once = false; +}; +[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict)] +interface EventSource : EventTarget { + readonly attribute DOMString url; + readonly attribute boolean withCredentials; + + // ready state + const unsigned short CONNECTING = 0; + const unsigned short OPEN = 1; + const unsigned short CLOSED = 2; + readonly attribute unsigned short readyState; + + // networking + attribute EventHandler onopen; + attribute EventHandler onmessage; + attribute EventHandler onerror; + void close(); +}; + +dictionary EventSourceInit { + boolean withCredentials = false; +}; + +[TreatNonCallableAsNull] +callback EventHandlerNonNull = any (Event event); +typedef EventHandlerNonNull? EventHandler; +</script> +<script> +"use strict"; +var idlArray; +setup(function() { + idlArray = new IdlArray(); + [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) { + if (node.className == "untested") { + idlArray.add_untested_idls(node.textContent); + } else { + idlArray.add_idls(node.textContent); + } + }); +}, {explicit_done:true}); +window.onload = function() { + idlArray.add_objects({ + EventSource: ['new EventSource("http://foo")'], + }); + idlArray.test(); + done(); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-accept.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-accept.htm new file mode 100644 index 0000000..6032cb6f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-accept.htm
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: Accept header</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var source = new EventSource("resources/accept.event_stream?pipe=sub") + source.onmessage = function(e) { + test.step(function() { + assert_equals(e.data, "text/event-stream") + this.close() + }, this) + test.done() + } + }) + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-cache-control.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-cache-control.htm new file mode 100644 index 0000000..b396592 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-cache-control.htm
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: Cache-Control</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var crossdomain = location.href + .replace('://', '://www2.') + .replace(/\/[^\/]*$/, '/') + + // running it twice to check whether it stays consistent + function cacheTest(runAgain, url) { + var test = async_test() + test.step(function() { + var source = new EventSource(url) + source.onmessage = function(e) { + test.step(function() { + assert_equals(e.data, "no-cache") + this.close() + if(runAgain) + cacheTest(false, url) // this nests tests + }, this) + test.done() + } + }) + } + + cacheTest(true, "resources/cache-control.event_stream?pipe=sub") + cacheTest(true, crossdomain + "resources/cors.py?run=cache-control") + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-credentials.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-credentials.htm new file mode 100644 index 0000000..c3c178a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-credentials.htm
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: credentials</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var crossdomain = location.href + .replace('://', '://www2.') + .replace(/\/[^\/]*$/, '/') + + function testCookie(desc, success, props, id) { + var test = async_test(document.title + ': credentials ' + desc) + test.step(function() { + var source = new EventSource(crossdomain + "resources/cors-cookie.py?ident=" + id, props) + + source.onmessage = test.step_func(function(e) { + if(e.data.indexOf("first") == 0) { + assert_equals(e.data, "first NO_COOKIE", "cookie status") + } + else if(e.data.indexOf("second") == 0) { + if (success) + assert_equals(e.data, "second COOKIE", "cookie status") + else + assert_equals(e.data, "second NO_COOKIE", "cookie status") + + source.close() + test.done() + } + else { + assert_unreached("unrecognized data returned: " + e.data) + source.close() + test.done() + } + }) + }) + } + + testCookie('enabled', true, { withCredentials: true }, '1_' + new Date().getTime()) + testCookie('disabled', false, { withCredentials: false }, '2_' + new Date().getTime()) + testCookie('default', false, { }, '3_' + new Date().getTime()) + + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-redirect.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-redirect.htm new file mode 100644 index 0000000..794c878 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-redirect.htm
@@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: redirect</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + function redirectTest(status) { + var test = async_test(document.title + " (" + status +")") + test.step(function() { + var source = new EventSource("/common/redirect.py?location=/eventsource/resources/message.py&status=" + status) + source.onopen = function() { + test.step(function() { + assert_equals(this.readyState, this.OPEN) + this.close() + }, this) + test.done() + } + source.onerror = function() { + test.step(function() { assert_unreached() }) + test.done() + } + }) + } + + redirectTest("301") + redirectTest("302") + redirectTest("303") + redirectTest("307") + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-status-error.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-status-error.htm new file mode 100644 index 0000000..d881a4d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/request-status-error.htm
@@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> + <head> + <title>EventSource: incorrect HTTP status code</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + function statusTest(status) { + var test = async_test(document.title + " (" + status +")") + test.step(function() { + var source = new EventSource("resources/status-error.py?status=" + status) + source.onmessage = function() { + test.step(function() { + assert_unreached() + }) + test.done() + } + source.onerror = function() { + test.step(function() { + assert_equals(this.readyState, this.CLOSED) + }, this) + test.done() + } + }) + } + statusTest("204") + statusTest("205") + statusTest("210") + statusTest("299") + statusTest("404") + statusTest("410") + statusTest("503") + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/accept.event_stream b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/accept.event_stream new file mode 100644 index 0000000..24da548 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/accept.event_stream
@@ -0,0 +1,2 @@ +data: {{headers[accept]}} +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cache-control.event_stream b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cache-control.event_stream new file mode 100644 index 0000000..aa9f2d6c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cache-control.event_stream
@@ -0,0 +1,2 @@ +data: {{headers[cache-control]}} +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cors-cookie.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cors-cookie.py new file mode 100644 index 0000000..7deaff49 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cors-cookie.py
@@ -0,0 +1,31 @@ +from datetime import datetime + +def main(request, response): + last_event_id = request.headers.get("Last-Event-Id", "") + ident = request.GET.first('ident', "test") + cookie = "COOKIE" if ident in request.cookies else "NO_COOKIE" + origin = request.GET.first('origin', request.headers["origin"]) + credentials = request.GET.first('credentials', 'true') + + headers = [] + + if origin != 'none': + headers.append(("Access-Control-Allow-Origin", origin)); + + if credentials != 'none': + headers.append(("Access-Control-Allow-Credentials", credentials)); + + if last_event_id == '': + headers.append(("Content-Type", "text/event-stream")) + response.set_cookie(ident, "COOKIE") + data = "id: 1\nretry: 200\ndata: first %s\n\n" % cookie + elif last_event_id == '1': + headers.append(("Content-Type", "text/event-stream")) + long_long_time_ago = datetime.now().replace(year=2001, month=7, day=27) + response.set_cookie(ident, "COOKIE", expires=long_long_time_ago) + data = "id: 2\ndata: second %s\n\n" % cookie + else: + headers.append(("Content-Type", "stop")) + data = "data: " + last_event_id + cookie + "\n\n"; + + return headers, data
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cors.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cors.py new file mode 100644 index 0000000..d01596c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/cors.py
@@ -0,0 +1,34 @@ +import os +from wptserve import pipes + +def run_other(request, response, path): + #This is a terrible hack + environ = {"__file__": path} + execfile(path, environ, environ) + rv = environ["main"](request, response) + return rv + +def main(request, response): + origin = request.GET.first("origin", request.headers["origin"]) + credentials = request.GET.first("credentials", "true") + + response.headers.update([("Access-Control-Allow-Origin", origin), + ("Access-Control-Allow-Credentials", credentials)]) + + handler = request.GET.first('run') + if handler in ["status-reconnect", + "message", + "redirect", + "cache-control"]: + if handler == "cache-control": + response.headers.set("Content-Type", "text/event-stream") + rv = open(os.path.join(request.doc_root, "eventsource", "resources", "cache-control.event_stream"), "r").read() + response.content = rv + pipes.sub(request, response) + return + elif handler == "redirect": + return run_other(request, response, os.path.join(request.doc_root, "common", "redirect.py")) + else: + return run_other(request, response, os.path.join(os.path.split(__file__)[0], handler + ".py")) + else: + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/init.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/init.htm new file mode 100644 index 0000000..7c56d88 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/init.htm
@@ -0,0 +1,9 @@ +<!doctype html> +<html> + <head> + <title>support init file</title> + </head> + <body> + <script> parent.init() </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/last-event-id.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/last-event-id.py new file mode 100644 index 0000000..4306fba --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/last-event-id.py
@@ -0,0 +1,11 @@ + # -*- coding: utf-8 -*- + +def main(request, response): + response.headers.set("Content-Type", "text/event-stream") + last_event_id = request.headers.get('Last-Event-ID', None) + + if(last_event_id): + return "data: " + last_event_id + "\n\n" + else: + return "id: …\nretry: 200\ndata: hello\n\n" +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/message.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/message.py new file mode 100644 index 0000000..6d04b1f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/message.py
@@ -0,0 +1,14 @@ +import time + +def main(request, response): + mime = request.GET.first("mime", "text/event-stream") + message = request.GET.first("message", "data: data"); + newline = "" if request.GET.first("newline", None) == "none" else "\n\n"; + sleep = int(request.GET.first("sleep", "0")) + + headers = [("Content-Type", mime)] + body = message + newline + "\n" + if sleep != 0: + time.sleep(sleep/1000) + + return headers, body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/message2.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/message2.py new file mode 100644 index 0000000..ce339d92 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/message2.py
@@ -0,0 +1,35 @@ +import time + +def main(request, response): + response.headers.set('Content-Type', 'text/event-stream') + response.headers.set('Cache-Control', 'no-cache') + + response.explicit_flush = True + response.write_status_headers() + + while True: + response.writer.write("data:msg") + response.writer.write("\n") + response.writer.write("data: msg") + response.writer.write("\n\n") + + response.writer.write(":") + response.writer.write("\n") + + response.writer.write("falsefield:msg") + response.writer.write("\n\n") + + response.writer.write("falsefield:msg") + response.writer.write("\n") + + response.writer.write("Data:data") + response.writer.write("\n\n") + + response.writer.write("data") + response.writer.write("\n\n") + + response.writer.write("data:end") + response.writer.write("\n\n") + + response.writer.flush() + time.sleep(2)
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/reconnect-fail.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/reconnect-fail.py new file mode 100644 index 0000000..80a247d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/reconnect-fail.py
@@ -0,0 +1,24 @@ +def main(request, response): + name = "recon_fail_" + request.GET.first("id") + + headers = [("Content-Type", "text/event-stream")] + cookie = request.cookies.first(name, None) + state = cookie.value if cookie is not None else None + + if state == 'opened': + status = (200, "RECONNECT") + response.set_cookie(name, "reconnected"); + body = "data: reconnected\n\n"; + + elif state == 'reconnected': + status = (204, "NO CONTENT (CLOSE)") + response.delete_cookie(name); + body = "data: closed\n\n" # Will never get through + + else: + status = (200, "OPEN"); + response.set_cookie(name, "opened"); + body = "retry: 2\ndata: opened\n\n"; + + return status, headers, body +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/status-error.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/status-error.py new file mode 100644 index 0000000..5eaedcd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/status-error.py
@@ -0,0 +1,15 @@ +def main(request, response): + status = (request.GET.first("status", "404"), "HAHAHAHA") + headers = [("Content-Type", "text/event-stream")] + + # According to RFC7231, HTTP responses bearing status code 204 or 205 must + # not specify a body. The expected browser behavior for this condition is not + # currently defined--see the following for further discussion: + # + # https://github.com/w3c/web-platform-tests/pull/5227 + if status[0] in ["204", "205"]: + body = "" + else: + body = "data: data\n\n" + + return status, headers, body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/status-reconnect.py b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/status-reconnect.py new file mode 100644 index 0000000..16c6502 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/resources/status-reconnect.py
@@ -0,0 +1,21 @@ +def main(request, response): + status_code = request.GET.first("status", "204") + name = request.GET.first("id", status_code) + + headers = [("Content-Type", "text/event-stream")] + + cookie_name = "request" + name + + if request.cookies.first(cookie_name, "") == status_code: + status = 200 + response.delete_cookie(cookie_name) + body = "data: data\n\n" + else: + response.set_cookie(cookie_name, status_code); + status = (int(status_code), "TEST") + body = "retry: 2\n" + if "ok_first" in request.GET: + body += "data: ok\n\n" + + return status, headers, body +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-close.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-close.htm new file mode 100644 index 0000000..0a0bdc7b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-close.htm
@@ -0,0 +1,39 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var source = new EventSource("../resources/message.py") + source.onopen = function(e) { + this.close() + port.postMessage([true, this.readyState]) + } +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: close()</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(); + test.step(function() { + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], EventSource.CLOSED, 'this.readyState') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt new file mode 100644 index 0000000..f2c4f62 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL shared worker - EventSource: constructor (act as if there is a network error) (http://example.not) assert_equals: source.readyState expected 2 but got 0 +FAIL shared worker - EventSource: constructor (act as if there is a network error) (https://example.not/test) assert_equals: source.readyState expected 2 but got 0 +PASS shared worker - EventSource: constructor (act as if there is a network error) (ftp://example.not) +PASS shared worker - EventSource: constructor (act as if there is a network error) (about:blank) +PASS shared worker - EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example) +PASS shared worker - EventSource: constructor (act as if there is a network error) (javascript:alert('FAIL')) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm new file mode 100644 index 0000000..277fbd4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm
@@ -0,0 +1,52 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var url = decodeURIComponent(location.hash.substr(1)) + var source = new EventSource(url) + source.onerror = function(e) { + port.postMessage([true, this.readyState, 'data' in e]) + this.close(); + } +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: constructor (act as if there is a network error)</title> + <meta name=timeout content=long> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + function fetchFail(url) { + var test = async_test(document.title + " (" + url + ")", { timeout: 20000 }) + test.step(function() { + var worker = new SharedWorker('#'+encodeURIComponent(url)) + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], EventSource.CLOSED, 'source.readyState') + assert_false(e.data[2], "'data' in e"); + }) + test.done() + } + }) + } + fetchFail("http://example.not") + fetchFail("https://example.not/test") + fetchFail("ftp://example.not") + fetchFail("about:blank") + fetchFail("mailto:whatwg@awesome.example") + fetchFail("javascript:alert('FAIL')") + </script> + <!-- This tests "fails the connection" as well as making sure a simple + event is dispatched and not a MessageEvent --> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-url-bogus-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-url-bogus-expected.txt new file mode 100644 index 0000000..be9e8f42 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-url-bogus-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL shared worker - EventSource: constructor (invalid URL) assert_true: no exception thrown expected true got false +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-url-bogus.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-url-bogus.htm new file mode 100644 index 0000000..88fa21e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-constructor-url-bogus.htm
@@ -0,0 +1,37 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var source = new EventSource("http://this is invalid/") + port.postMessage([false, 'no exception thrown']) + source.close() +} catch(e) { + port.postMessage([true, e.code]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: constructor (invalid URL)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], DOMException.SYNTAX_ERR, 'e.code') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //--> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-eventtarget.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-eventtarget.htm new file mode 100644 index 0000000..f5f9439d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-eventtarget.htm
@@ -0,0 +1,40 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var source = new EventSource("../resources/message.py") + source.addEventListener("message", listener, false) + function listener(e) { + port.postMessage([true, e.data]) + this.close() + } +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: addEventListener()</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], 'data', 'e.data') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-onmesage.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-onmesage.htm new file mode 100644 index 0000000..82c3ce7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-onmesage.htm
@@ -0,0 +1,39 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var source = new EventSource("../resources/message.py") + source.onmessage = function(e) { + port.postMessage([true, e.data]) + this.close() + } +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: onmessage</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], "data", 'e.data') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-onopen.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-onopen.htm new file mode 100644 index 0000000..2546781 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-onopen.htm
@@ -0,0 +1,42 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var source = new EventSource("../resources/message.py") + source.onopen = function(e) { + port.postMessage([true, source.readyState, 'data' in e, e.bubbles, e.cancelable]) + this.close() + } +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: onopen (announcing the connection)</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test() + test.step(function() { + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_equals(e.data[1], EventSource.OPEN, 'source.readyState') + assert_false(e.data[2], "'data' in e") + assert_false(e.data[3], 'e.bubbles') + assert_false(e.data[4], 'e.calcelable') + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-prototype.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-prototype.htm new file mode 100644 index 0000000..27d51a85 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-prototype.htm
@@ -0,0 +1,39 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + EventSource.prototype.ReturnTrue = function() { return true } + var source = new EventSource("../resources/message.py") + port.postMessage([true, source.ReturnTrue(), 'EventSource' in self]) + source.close() +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DoCtYpE hTMl> +<html> + <heAd> + <title>shared worker - EventSource: prototype et al</tiTle> + <scrIpt src="/resources/testharness.js"></scripT> + <scriPt src="/resources/testharnessreport.js"></Script> + </heaD> + <boDy> + <diV iD="log"></Div> + <sCript> + var test = async_test(); + test.step(function() { + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]) + assert_true(e.data[1], 'source.ReturnTrue()') + assert_true(e.data[2], "'EventSource' in self") + }) + test.done() + } + }) + </scrIpt> + </bOdy> +</htMl> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-url.htm b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-url.htm new file mode 100644 index 0000000..0491085 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/eventsource/shared-worker/eventsource-url.htm
@@ -0,0 +1,38 @@ +<!-- +onconnect = function(e) { +try { + var port = e.ports[0] + var source = new EventSource("../resources/message.py") + port.postMessage([true, source.url]) + source.close() +} catch(e) { + port.postMessage([false, String(e)]) +} +} +/*--> +<!DOCTYPE html> +<html> + <head> + <title>shared worker - EventSource: url</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(); + test.step(function() { + var url = "resources/message.py" + var worker = new SharedWorker('#') + worker.port.onmessage = function(e) { + test.step(function() { + assert_true(e.data[0], e.data[1]); + assert_equals(e.data[1].substr(-(url.length)), url) + }) + test.done() + } + }) + </script> + </body> +</html> +<!--*/ //-->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js new file mode 100644 index 0000000..222bde95 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js
@@ -0,0 +1,186 @@ +let unreached = event => { + assert_unreached(event.error.name + ":" + event.error.message); +}; + +let properties = { + 'AmbientLightSensor' : ['timestamp', 'illuminance'], + 'Accelerometer' : ['timestamp', 'x', 'y', 'z'], + 'Gyroscope' : ['timestamp', 'x', 'y', 'z'], + 'Magnetometer' : ['timestamp', 'x', 'y', 'z'] +}; + +function assert_reading_not_null(sensor) { + for (let property in properties[sensor.constructor.name]) { + let propertyName = properties[sensor.constructor.name][property]; + assert_not_equals(sensor[propertyName], null); + } +} + +function assert_reading_null(sensor) { + for (let property in properties[sensor.constructor.name]) { + let propertyName = properties[sensor.constructor.name][property]; + assert_equals(sensor[propertyName], null); + } +} + +function reading_to_array(sensor) { + let arr = new Array(); + for (let property in properties[sensor.constructor.name]) { + let propertyName = properties[sensor.constructor.name][property]; + arr[property] = sensor[propertyName]; + } + return arr; +} + +function runGenericSensorTests(sensorType) { + async_test(t => { + let sensor = new sensorType(); + sensor.onchange = t.step_func_done(() => { + assert_reading_not_null(sensor); + sensor.stop(); + assert_reading_null(sensor); + }); + sensor.onerror = t.step_func_done(unreached); + sensor.start(); + }, "Test that 'onchange' is called and sensor reading is valid"); + + async_test(t => { + let sensor1 = new sensorType(); + let sensor2 = new sensorType(); + sensor1.onactivate = t.step_func_done(() => { + // Reading values are correct for both sensors. + assert_reading_not_null(sensor1); + assert_reading_not_null(sensor2); + + //After first sensor stops its reading values are null, + //reading values for the second sensor remains + sensor1.stop(); + assert_reading_null(sensor1); + assert_reading_not_null(sensor2); + sensor2.stop(); + assert_reading_null(sensor2); + }); + sensor1.onerror = t.step_func_done(unreached); + sensor2.onerror = t.step_func_done(unreached); + sensor1.start(); + sensor2.start(); + }, "sensor reading is correct"); + + async_test(t => { + let sensor = new sensorType(); + let cachedTimeStamp1; + sensor.onactivate = () => { + cachedTimeStamp1 = sensor.timestamp; + }; + sensor.onerror = t.step_func_done(unreached); + sensor.start(); + t.step_timeout(() => { + sensor.onchange = t.step_func_done(() => { + //sensor.timestamp changes. + let cachedTimeStamp2 = sensor.timestamp; + assert_greater_than(cachedTimeStamp2, cachedTimeStamp1); + sensor.stop(); + }); + }, 1000); + }, "sensor timestamp is updated when time passes"); + + async_test(t => { + let sensor = new sensorType(); + sensor.onerror = t.step_func_done(unreached); + assert_false(sensor.activated); + sensor.onchange = t.step_func_done(() => { + assert_true(sensor.activated); + sensor.stop(); + assert_false(sensor.activated); + }); + sensor.start(); + assert_false(sensor.activated); + }, "Test that sensor can be successfully created and its states are correct."); + + test(() => { + let sensor, start_return; + sensor = new sensorType(); + sensor.onerror = unreached; + start_return = sensor.start(); + assert_equals(start_return, undefined); + sensor.stop(); + }, "sensor.start() returns undefined"); + + test(() => { + try { + let sensor = new sensorType(); + sensor.onerror = unreached; + sensor.start(); + sensor.start(); + assert_false(sensor.activated); + sensor.stop(); + } catch (e) { + assert_unreached(e.name + ": " + e.message); + } + }, "no exception is thrown when calling start() on already started sensor"); + + test(() => { + let sensor, stop_return; + sensor = new sensorType(); + sensor.onerror = unreached; + sensor.start(); + stop_return = sensor.stop(); + assert_equals(stop_return, undefined); + }, "sensor.stop() returns undefined"); + + test(() => { + try { + let sensor = new sensorType(); + sensor.onerror = unreached; + sensor.start(); + sensor.stop(); + sensor.stop(); + assert_false(sensor.activated); + } catch (e) { + assert_unreached(e.name + ": " + e.message); + } + }, "no exception is thrown when calling stop() on already stopped sensor"); + + async_test(t => { + window.onmessage = t.step_func(e => { + assert_equals(e.data, "SecurityError"); + t.done(); + }); + }, "throw a 'SecurityError' when firing sensor readings within iframes"); + + async_test(t => { + let sensor = new sensorType(); + sensor.onactivate = t.step_func(() => { + assert_reading_not_null(sensor); + let cachedSensor1 = reading_to_array(sensor); + let win = window.open('', '_blank'); + t.step_timeout(() => { + let cachedSensor2 = reading_to_array(sensor); + win.close(); + sensor.stop(); + assert_array_equals(cachedSensor1, cachedSensor2); + t.done(); + }, 1000); + }); + sensor.onerror = t.step_func_done(unreached); + sensor.start(); + }, "sensor readings can not be fired on the background tab"); +} + +function runGenericSensorInsecureContext(sensorType) { + test(() => { + assert_throws('SecurityError', () => { new sensorType(); }); + }, "throw a 'SecurityError' when construct sensor in an insecure context"); +} + +function runGenericSensorOnerror(sensorType) { + async_test(t => { + let sensor = new sensorType(); + sensor.onactivate = t.step_func_done(assert_unreached); + sensor.onerror = t.step_func_done(event => { + assert_false(sensor.activated); + assert_equals(event.error.name, 'NotReadableError'); + }); + sensor.start(); + }, "'onerror' event is fired when sensor is not supported"); +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/idlharness-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/idlharness-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/idlharness.html b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/idlharness.html new file mode 100644 index 0000000..07a43cf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/idlharness.html
@@ -0,0 +1,86 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Generic Sensor IDL tests</title> +<link rel="author" title="Tobie Langel" href="http://www.codespeaks.com"> +<link rel="help" href="http://www.w3.org/TR/generic-sensor/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +<style> + pre { + display: none; + } +</style> +<div id="log"></div> + +<pre id="idl"> +interface Event { +}; + +interface Error { +}; + +dictionary EventInit { +}; + +interface Sensor : EventTarget { + readonly attribute SensorState state; + readonly attribute SensorReading? reading; + void start(); + void stop(); + attribute EventHandler onchange; + attribute EventHandler onstatechange; + attribute EventHandler onerror; +}; + +dictionary SensorOptions { + double? frequency; +}; + +enum SensorState { + "idle", + "activating", + "active", + "errored" +}; + +interface SensorReading { + readonly attribute DOMHighResTimeStamp timeStamp; +}; + +[Constructor(DOMString type, SensorReadingEventInit eventInitDict)] +interface SensorReadingEvent : Event { + readonly attribute SensorReading reading; +}; + +dictionary SensorReadingEventInit : EventInit { + SensorReading reading; +}; +</pre> + +<pre id="generic-idl"> +[Constructor(DOMString type, SensorErrorEventInit errorEventInitDict)] +interface SensorErrorEvent : Event { + readonly attribute Error error; +}; + +dictionary SensorErrorEventInit : EventInit { + Error error; +}; +</pre> + +<script> +(function() { + "use strict"; + var idl_array = new IdlArray(); + idl_array.add_untested_idls(document.getElementById('idl').textContent); + idl_array.add_idls(document.getElementById('generic-idl').textContent); + + idl_array.add_objects({ + SensorErrorEvent: ['new SensorErrorEvent({ error: new TypeError("Boom!") });'] + }); + + idl_array.test(); +})(); +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/PositionOptions.https.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/PositionOptions.https.html new file mode 100644 index 0000000..6aaf56d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/PositionOptions.https.html
@@ -0,0 +1,100 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<title>Geolocation Test: PositionOptions tests</title> +<link rel="help" href="http://www.w3.org/TR/geolocation-API/#position_options_interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src='support.js'></script> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p> +<div id="log"></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00123 +test(function() { + try { + geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: "boom"}); + geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: 321}); + geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: -Infinity}); + geo.getCurrentPosition(dummyFunction, null, {enableHighAccuracy: {foo: 5}}); + } catch(e) { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + } +}, 'Call getCurrentPosition with wrong type for enableHighAccuracy. No exception expected.'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00124 +test(function() { + try { + geo.watchPosition(dummyFunction, null, {enableHighAccuracy: "boom"}); + geo.watchPosition(dummyFunction, null, {enableHighAccuracy: 321}); + geo.watchPosition(dummyFunction, null, {enableHighAccuracy: -Infinity}); + geo.watchPosition(dummyFunction, null, {enableHighAccuracy: {foo: 5}}); + } catch(e) { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + } +}, 'Call watchPosition with wrong type for enableHighAccuracy. No exception expected.'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00086, 00088, 00091 and 00092 +test(function() { + var t86 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (getCurrentPosition)'), + t88 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (watchPosition)'), + t91 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (getCurrentLocation)'), + t92 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (watchPosition)'); + + try { + geo.getCurrentPosition( + t86.unreached_func('A success callback was invoked unexpectedly'), + t86.step_func_done(function(err) { + assert_equals(err.code, err.TIMEOUT); + }), + {timeout: 0, maximumAge: 0} + ); + } catch(e) { + t86.step(function() { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + }); + } + + try { + geo.watchPosition( + t88.unreached_func('A success callback was invoked unexpectedly'), + t88.step_func_done(function(err) { + assert_equals(err.code, err.TIMEOUT); + }), + {timeout: 0, maximumAge: 0} + ); + } catch(e) { + t88.step(function() { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + }); + } + + try { + geo.getCurrentPosition( + t91.unreached_func('A success callback was invoked unexpectedly'), + t91.step_func_done(function(err) { + assert_equals(err.code, err.TIMEOUT); + }), + {timeout:-1, maximumAge: 0} + ); + } catch(e) { + t91.step(function() { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + }); + } + + try { + geo.watchPosition( + t92.unreached_func('A success callback was invoked unexpectedly'), + t92.step_func_done(function(err) { + assert_equals(err.code, err.TIMEOUT); + }), + {timeout: -1, maximumAge: 0} + ); + } catch(e) { + t92.step(function() { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + }); + } +}, 'PositionOptions tests'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/clearWatch_TypeError.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/clearWatch_TypeError.html new file mode 100644 index 0000000..14b861b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/clearWatch_TypeError.html
@@ -0,0 +1,22 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Geolocation Test: clearWatch TypeError tests</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#clear-watch'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='support.js'></script> + +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00080 +test(function() { + try { + geo.clearWatch(-1); + geo.clearWatch(0); + geo.clearWatch(1); + } catch(e) { + assert_unreached('An exception was thrown unexpectedly: ' + e.message); + } +}, 'Test that calling clearWatch with invalid watch IDs does not cause an exception'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_IDL.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_IDL.https-expected.txt new file mode 100644 index 0000000..77cb28c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_IDL.https-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +FAIL getCurrentPosition success callback tests assert_unreached: Error callback called in error Reached unreachable code +PASS getCurrentPosition error callback tests +PASS PositionError toString +PASS PERMISSION_DENIED value is 1 +PASS POSITION_UNAVAILABLE is 2 +PASS TIMEOUT value is 3 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_IDL.https.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_IDL.https.html new file mode 100644 index 0000000..2a85505 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_IDL.https.html
@@ -0,0 +1,152 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<title>Geolocation Test: getCurrentPosition tests</title> +<link rel="help" href="http://www.w3.org/TR/geolocation-API/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p> +<div id="log"></div> +<script> +var geo, success, fail; + +setup(function() { + geo = navigator.geolocation; +}, {explicit_done: true}); + +function successCallback(position) +{ + var ii, oldval; + + /* + [NoInterfaceObject] + interface Position { + readonly attribute Coordinates coords; + readonly attribute DOMTimeStamp timestamp; + }; + */ + + test(function() { + assert_equals(position.toString(), "[object Position]", + "Position.toString should result in '[object Position]' was: " + position.toString()); + }, "Position toString"); + + test(function() { + assert_equals(position.coords.toString(), "[object Coordinates]", + "position.coords.toString should result in '[object Coordinates]' was: " + position.coords.toString()); + }, "Position.coordinates toString"); + + test(function() { + assert_equals(typeof(position.timestamp), "number", + "Position.timestamp should be of type 'number' was: " + typeof(position.timestamp)); + }, "Position.timestamp is type number"); + + /* + [NoInterfaceObject] + interface Coordinates { + readonly attribute double latitude; + readonly attribute double longitude; + readonly attribute double? altitude; + readonly attribute double accuracy; + readonly attribute double? altitudeAccuracy; + readonly attribute double? heading; + readonly attribute double? speed; + }; + */ + + for (ii in position.coords) { + // these four can be numbers or null + if (ii == "altitude" || ii == "altitudeAccuracy" || ii == "heading" || ii == "speed") { + test(function() { + assert_true(position.coords[ii] === null || typeof(position.coords[ii]) === "number", + ii + " must be null or 'number' type, was: " + typeof(position.coords[ii])); + }, ii+ " is null or number"); + } else { + test(function() { + assert_equals(typeof(position.coords[ii]), "number", + ii + " should be type 'number' but typeof returned: " + typeof(position.coords[ii])); + }, ii + " is type number"); + } + + oldval = position.coords[ii]; + position.coords[ii] = 666; + + test(function() { + assert_equals(position.coords[ii], oldval, + ii + " should be readonly, wrote: " + position.coords[ii] + " old value was " + oldval); + }, ii + " readonly"); + + } + + success.done(); + done(); +} + +function BadErrorCallback(error) +{ + success.step(function() { + assert_unreached("Error callback called in error"); + }); + success.done(); + done(); +} + +function BadSuccessCallback(position) +{ + fail.step(function() { + assert_unreached("Success callback called in error"); + }); + fail.done(); +} + +function errorCallback(error) +{ + test(function() { + assert_equals(error.toString(), "[object PositionError]", + "PositionError.toString should result in '[object PositionError]' was: " + + error.toString()); + }, "PositionError toString"); + + test(function() { + assert_equals(error.PERMISSION_DENIED, 1, + "PERMISSION_DENIED should be 1 was: " + error.POSITION_DENIED); + }, "PERMISSION_DENIED value is 1"); + + test(function() { + assert_equals(error.POSITION_UNAVAILABLE, 2, + "POSITION_UNAVAILABLE should be 2' was: " + error.POSITION_UNAVAILABLE); + }, "POSITION_UNAVAILABLE is 2"); + + test(function() { + assert_equals(error.TIMEOUT, 3, + "TIMEOUT should be 3 was: " + error.TIMEOUT); + }, "TIMEOUT value is 3"); + + fail.done(); +} + +success = async_test("getCurrentPosition success callback tests", {timeout:20000}); + +// with a longer timeout and with the user accepting the position request, +// this should test the successcallback +success.step(function() { + geo.getCurrentPosition( + successCallback, + BadErrorCallback, + {maximumAge:600000, timeout:10000} + ); +}); + +fail = async_test("getCurrentPosition error callback tests"); + +// with a timeout of 0 the error callback is hopefully consistently called +fail.step(function() { + geo.getCurrentPosition( + BadSuccessCallback, + errorCallback, + {maximumAge:00, timeout:0} + ); +}); + +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_TypeError.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_TypeError.html new file mode 100644 index 0000000..a2e5784 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_TypeError.html
@@ -0,0 +1,55 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Geolocation Test: getCurrentPosition TypeError tests</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='support.js'></script> + +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00027 +test(function() { + assert_throws(new TypeError(), function() { + geo.getCurrentPosition(); + }); +}, 'Call getCurrentPosition without arguments, check that exception is thrown'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00011 +test(function() { + assert_throws(new TypeError(), function() { + geo.getCurrentPosition(null); + }); +}, 'Call getCurrentPosition with null success callback, check that exception is thrown'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00013 +test(function() { + assert_throws(new TypeError(), function() { + geo.getCurrentPosition(null, null); + }); +}, 'Call getCurrentPosition with null success and error callbacks, check that exception is thrown'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00028 +test(function() { + assert_throws(new TypeError(), function() { + geo.getCurrentPosition(3); + }); +}, 'Call getCurrentPosition() with wrong type for first argument. Exception expected.'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00029 +test(function() { + assert_throws(new TypeError(), function() { + geo.getCurrentPosition(dummyFunction, 4); + }); +}, 'Call getCurrentPosition() with wrong type for second argument. Exception expected.'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00030 +test(function() { + assert_throws(new TypeError(), function() { + geo.getCurrentPosition(dummyFunction, dummyFunction, 4); + }); +}, 'Call getCurrentPosition() with wrong type for third argument. Exception expected.'); + +done(); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission-manual.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission-manual.html new file mode 100644 index 0000000..20003cd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission-manual.html
@@ -0,0 +1,21 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Call getCurrentPosition, check that there is UI appearing with the document host</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#privacy_for_uas'> + +<p>Clear all Geolocation permissions before running this test.</p> + +<p>Test passes if there is a permission prompt including the host <strong id='host'></strong> and no FAIL.</p> +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00018 +try { + var dummyFunction = function() {}; + window.navigator.geolocation.getCurrentPosition(dummyFunction, dummyFunction); + + document.getElementById('host').innerHTML = window.location.hostname; +} catch (e) { + document.getElementById('log').innerHTML = 'FAIL: an exception was thrown unexpectedly: ' + e.message; +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow-manual.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow-manual.html new file mode 100644 index 0000000..4628275 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow-manual.html
@@ -0,0 +1,32 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>User asked to approve/remember, then asked to revoke, then reload. The permission dialogue should reappear</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#get-current-position'> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p> + +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00141 +var nextStep, onError, isUsingPreemptivePermission = false; + +nextStep = function() { + document.querySelector('p').innerHTML = + 'Now revoke permissions for this origin (where applicable) and reload the page. Tests passes if there is a permission prompt again and no FAIL.'; +}; + +onError = function(err) { + if (!isUsingPreemptivePermission && err.code === err.POSITION_UNAVAILABLE) { + nextStep(); + } else { + document.getElementById('log').innerHTML = 'FAIL: an error callback was invoked unexpectedly: ' + err.message; + } +}; + +try { + window.navigator.geolocation.getCurrentPosition(nextStep, onError); +} catch (e) { + document.getElementById('log').innerHTML = 'FAIL: an exception was thrown unexpectedly: ' + e.message; +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow.https-expected.txt new file mode 100644 index 0000000..1a29969 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL User allows access, check that success callback is called or error callback is called with correct code. assert_equals: [code: PERMISSION_DENIED (1), message: User denied Geolocation] expected 2 but got 1 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow.https.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow.https.html new file mode 100644 index 0000000..9517109 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_allow.https.html
@@ -0,0 +1,34 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Geolocation Test: getCurrentPosition location access allowed</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#get-current-position'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='support.js'></script> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p> +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00002 +var t = async_test('User allows access, check that success callback is called or error callback is called with correct code.'), + onSuccess, onError, hasMethodReturned = false; + +t.step(function() { + onSuccess = t.step_func_done(function(pos) { + // Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00031 + assert_true(hasMethodReturned); + }); + + onError = t.step_func_done(function(err) { + // Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00031 + assert_true(hasMethodReturned); + assert_false(isUsingPreemptivePermission); + assert_equals(err.code, err.POSITION_UNAVAILABLE, errorToString(err)); + }); + + geo.getCurrentPosition(onSuccess, onError); + hasMethodReturned = true; +}); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_deny-manual.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_deny-manual.html new file mode 100644 index 0000000..b468a65d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_deny-manual.html
@@ -0,0 +1,34 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>User asked to deny/remember, then asked to revoke, then reload. The permission dialogue should reappear</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#get-current-position'> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please deny.</p> + +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00142 +var onSuccess, nextStep, isUsingPreemptivePermission = false; + +onSuccess = function() { + document.getElementById('log').innerHTML = 'FAIL: a success callback was invoked unexpectedly.'; +}; + +nextStep = function(err) { + if ((err.code === err.PERMISSION_DENIED) || + (!isUsingPreemptivePermission && err.code === err.POSITION_UNAVAILABLE)) { + document.querySelector('p').innerHTML = + 'Now revoke permissions for this origin (where applicable) and reload the page. Tests passes if there is a permission prompt again and no FAIL.'; + } else { + document.getElementById('log').innerHTML = + 'FAIL: an error callback was invoked with unexpected error code: ' + err.code + ', error message: ' + err.message; + } +}; + +try { + navigator.geolocation.getCurrentPosition(onSuccess, nextStep); +} catch (e) { + document.getElementById('log').innerHTML = 'FAIL: an exception was thrown unexpectedly: ' + e.message; +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_deny.https.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_deny.https.html new file mode 100644 index 0000000..5012960 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/getCurrentPosition_permission_deny.https.html
@@ -0,0 +1,32 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Geolocation Test: getCurrentPosition location access denied</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#privacy_for_uas'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='support.js'></script> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please deny.</p> +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00001 +var t = async_test('User denies access, check that error callback is called with correct code'), + onSuccess, onError, hasMethodReturned = false; + +t.step(function() { + onSuccess = t.step_func_done(function(pos) { + assert_unreached('A success callback was invoked unexpectedly with position ' + positionToString(pos)); + }); + + onError = t.step_func_done(function(err) { + // http://dev.w3.org/geo/api/test-suite/t.html?00031 + assert_true(hasMethodReturned, 'Check that getCurrentPosition returns synchronously before any callbacks are invoked'); + assert_equals(err.code, err.PERMISSION_DENIED, errorToString(err)); + }); + + geo.getCurrentPosition(onSuccess, onError); + hasMethodReturned = true; +}); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/interfaces.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/interfaces.html new file mode 100644 index 0000000..0db42046 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/interfaces.html
@@ -0,0 +1,95 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Geolocation API IDL tests</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="http://www.w3.org/TR/geolocation-API/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> + +<h1>Geolocation API IDL tests</h1> +<div id="log"></div> + +<script type=text/plain class=untested> +interface Navigator { +}; + +typedef unsigned long long DOMTimeStamp; +</script> + +<script type=text/plain> +partial interface Navigator { + readonly attribute Geolocation geolocation; +}; + +[NoInterfaceObject] +interface Geolocation { + void getCurrentPosition(PositionCallback successCallback, + optional PositionErrorCallback errorCallback, + optional PositionOptions options); + + long watchPosition(PositionCallback successCallback, + optional PositionErrorCallback errorCallback, + optional PositionOptions options); + + void clearWatch(long watchId); +}; + +callback PositionCallback = void (Position position); + +callback PositionErrorCallback = void (PositionError positionError); + +dictionary PositionOptions { + boolean enableHighAccuracy = false; + [Clamp] unsigned long timeout = 0xFFFFFFFF; + [Clamp] unsigned long maximumAge = 0; +}; + +[NoInterfaceObject] +interface Position { + readonly attribute Coordinates coords; + readonly attribute DOMTimeStamp timestamp; +}; + +[NoInterfaceObject] +interface Coordinates { + readonly attribute double latitude; + readonly attribute double longitude; + readonly attribute double? altitude; + readonly attribute double accuracy; + readonly attribute double? altitudeAccuracy; + readonly attribute double? heading; + readonly attribute double? speed; +}; + +[NoInterfaceObject] +interface PositionError { + const unsigned short PERMISSION_DENIED = 1; + const unsigned short POSITION_UNAVAILABLE = 2; + const unsigned short TIMEOUT = 3; + readonly attribute unsigned short code; + readonly attribute DOMString message; +}; +</script> + +<script> +"use strict"; +var idlArray; +setup(function() { + idlArray = new IdlArray(); + [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) { + if (node.className == "untested") { + idlArray.add_untested_idls(node.textContent); + } else { + idlArray.add_idls(node.textContent); + } + }); + idlArray.add_objects({ + Navigator: ["navigator"], + Geolocation: ["navigator.geolocation"] + }); +}); +idlArray.test(); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/support.js b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/support.js new file mode 100644 index 0000000..960b572 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/support.js
@@ -0,0 +1,30 @@ +var geo; + +setup(function() { + geo = navigator.geolocation; +}); + +// The spec states that an implementation SHOULD acquire user permission before +// beggining the position acquisition steps. If an implementation follows this +// advice, set the following flag to aid debugging. +var isUsingPreemptivePermission = false; + + +var dummyFunction = function() {}; + +var positionToString = function(pos) { + var c = pos.coords; + return '[lat: ' + c.latitude + ', lon: ' + c.longitude + ', acc: ' + c.accuracy + ']'; +}; + +var errorToString = function(err) { + var codeString; + switch(err.code) { + case err.UNKNOWN_ERROR: codeString = 'UNKNOWN_ERROR'; break; + case err.PERMISSION_DENIED: codeString = 'PERMISSION_DENIED'; break; + case err.POSITION_UNAVAILABLE: codeString = 'POSITION_UNAVAILABLE'; break; + case err.TIMEOUT: codeString = 'TIMEOUT'; break; + default: codeString = 'undefined error code'; break; + } + return '[code: ' + codeString + ' (' + err.code + '), message: ' + (err.message ? err.message : '(empty)') + ']'; +};
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_TypeError.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_TypeError.html new file mode 100644 index 0000000..9d7efd5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_TypeError.html
@@ -0,0 +1,55 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Geolocation Test: watchPosition TypeError tests</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='support.js'></script> + +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00058 +test(function() { + assert_throws(new TypeError(), function() { + geo.watchPosition(); + }); +}, 'Call watchPosition without arguments, check that exception is thrown'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00015 +test(function() { + assert_throws(new TypeError(), function() { + geo.watchPosition(null); + }); +}, 'Call watchPosition with null success callback, check that exception is thrown'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00017 +test(function() { + assert_throws(new TypeError(), function() { + geo.watchPosition(null, null); + }); +}, 'Call watchPosition with null success and error callbacks, check that exception is thrown'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00059 +test(function() { + assert_throws(new TypeError(), function() { + geo.watchPosition(3); + }); +}, 'Call watchPosition() with wrong type for first argument. Exception expected.'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00060 +test(function() { + assert_throws(new TypeError(), function() { + geo.watchPosition(dummyFunction, 4); + }); +}, 'Call watchPosition() with wrong type for second argument. Exception expected.'); + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00061 +test(function() { + assert_throws(new TypeError(), function() { + geo.watchPosition(dummyFunction, dummyFunction, 4); + }); +}, 'Call watchPosition() with wrong type for third argument. Exception expected.'); + +done(); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_permission-manual.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_permission-manual.html new file mode 100644 index 0000000..e009801 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_permission-manual.html
@@ -0,0 +1,21 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Call watchPosition, check that there is UI appearing with the document host</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#privacy_for_uas'> + +<p>Clear all Geolocation permissions before running this test.</p> + +<p>Test passes if there is a permission prompt including the host <strong id='host'></strong> and no FAIL.</p> +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00019 +try { + var dummyFunction = function() {}; + window.navigator.geolocation.watchPosition(dummyFunction, dummyFunction); + + document.getElementById('host').innerHTML = window.location.hostname; +} catch (e) { + document.getElementById('log').innerHTML = 'FAIL: ' + e.message; +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_permission_deny.https.html b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_permission_deny.https.html new file mode 100644 index 0000000..1e2a3c4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-API/watchPosition_permission_deny.https.html
@@ -0,0 +1,33 @@ +<!DOCTYPE HTML> +<meta charset='utf-8'> +<title>Geolocation Test: watchPosition location access denied</title> +<link rel='help' href='http://www.w3.org/TR/geolocation-API/#watch-position'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='support.js'></script> + +<p>Clear all Geolocation permissions before running this test. If prompted for permission, please deny.</p> +<div id='log'></div> + +<script> +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00062 +var t = async_test('Check that watchPosition returns synchronously before any callbacks are invoked.'), + id, checkMethodHasReturned, hasMethodReturned = false; + +checkMethodHasReturned = t.step_func_done(function() { + assert_true(hasMethodReturned); +}); + +try { + id = geo.watchPosition(checkMethodHasReturned, checkMethodHasReturned); + hasMethodReturned = true; +} catch(e) { + t.unreached_func('An exception was thrown unexpectedly: ' + e.message); +} + +// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00151 +test(function() { + assert_greater_than_equal(id, -2147483648); + assert_less_than_equal(id, 2147483647); +}, 'Check that watchPosition returns a long'); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope.https.html b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope.https.html new file mode 100644 index 0000000..8435912 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope.https.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Gyroscope Test</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/gyroscope/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<iframe src="support-iframe.html" id="frame" style="display:none" sandbox="allow-scripts"> +</iframe> +<script> + +runGenericSensorTests(Gyroscope); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope_insecure_context.html b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope_insecure_context.html new file mode 100644 index 0000000..f772b0a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope_insecure_context.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Gyroscope Test: insecure context</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/gyroscope/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<h2>Precondition</h2> +<ol> + <li> + Run test in an insecure context, e.g. http://example.com/. + </li> +</ol> +<script> + +runGenericSensorInsecureContext(Gyroscope); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope_onerror-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope_onerror-manual.https.html new file mode 100644 index 0000000..f012615 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/Gyroscope_onerror-manual.https.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Gyroscope Test: onerror</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/gyroscope/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<h2>Precondition</h2> +<ol> + <li> + Disable the Gyroscope Sensor or run test on a device without Gyroscope Sensor. + </li> +</ol> +<script> + +runGenericSensorOnerror(Gyroscope); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/gyroscope/support-iframe.html b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/support-iframe.html new file mode 100644 index 0000000..5efbbcd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/gyroscope/support-iframe.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<script> +try { + let sensor = new Gyroscope(); + parent.postMessage("sensor.start() can be fired within iframes", '*'); +} catch (e) { + parent.postMessage(e.name, '*'); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html index e3da59e..4594a1e 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html +++ b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html
@@ -47,12 +47,11 @@ }, function() { // coming back from history, scrollRestoration should be set to manual and respected assert_equals(iframe.contentWindow.location.href, baseURL + '/resources/page-with-fragment.html#fragment', 'should be back on page-with-fragment page'); - iframe.contentWindow.requestAnimationFrame(function() { + iframe.contentWindow.requestAnimationFrame(t.step_func_done(function() { assert_equals(iframe.contentWindow.history.scrollRestoration, 'manual', 'navigating back should retain scrollRestoration value'); assert_equals(iframe.contentWindow.scrollX, 0, 'should not scroll to fragment'); assert_equals(iframe.contentWindow.scrollY, 0, 'should not scroll to fragment'); - t.done(); - }); + })); } ]; @@ -64,4 +63,4 @@ iframe.onload = next; next(); }, 'Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation'); -</script> \ No newline at end of file +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/browsers/history/the-location-interface/per-global.window.js b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/history/the-location-interface/per-global.window.js new file mode 100644 index 0000000..b2956fd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/history/the-location-interface/per-global.window.js
@@ -0,0 +1,3 @@ +// META: script=/common/object-association.js + +testIsPerWindow("location");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html new file mode 100644 index 0000000..68dcc547 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/references/spelling-markers-001-ref.html
@@ -0,0 +1,7 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Reference file for spellcheck tests</title> + +<div>This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise.</div> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html new file mode 100644 index 0000000..4a5fd41 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck on editing hosts</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to editing hosts when they become non editable"> + +<div id="test" contenteditable=true>This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise.</div> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); //alternative to forceSpellCheck(), due to general lack of support + test.removeAttribute("contenteditable"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-002.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-002.html new file mode 100644 index 0000000..44f1ea842 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-002.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck on editable elements</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to editable elements when they become non editable"> + +<div id="test" contenteditable=true>This test passes if there is no visual marker indicating the <span id=child>spellinnnnnggg</span> mistake in this sentence, and fails otherwise.</div> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + var child = document.getElementById("child"); + child.setAttribute("contenteditable", false); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-003.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-003.html new file mode 100644 index 0000000..9c88660e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-003.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck on editing hosts while keeping them editable</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to editing hosts when the spellcheck attribute becomes false"> + +<div id="test" spellcheck=true contenteditable=true>This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise.</div> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + test.setAttribute("spellcheck", false); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-004.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-004.html new file mode 100644 index 0000000..fdeb9064 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-004.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck on editable elements while keeping them editable</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to editable elements when the spellcheck attribute becomes false"> + +<div id="test" spellcheck=true contenteditable=true>This test passes if there is no visual marker indicating the <span id=child>spellinnnnnggg</span> mistake in this sentence, and fails otherwise.</div> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + var child = document.getElementById("child"); + child.setAttribute("spellcheck", false); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-005.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-005.html new file mode 100644 index 0000000..9ab7a3e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-005.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck on editable elements via an ancestor</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to editable elements when the spellcheck attribute becomes false on an ancestor"> + +<div id="test" contenteditable=true>This test passes if there is no visual marker indicating the <span id=child><span>spellinnnnnggg</span></span> mistake in this sentence, and fails otherwise.</div> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + var child = document.getElementById("child"); + child.setAttribute("spellcheck", false); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-006.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-006.html new file mode 100644 index 0000000..f0b54da --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-006.html
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck via an ancestor of the editing host</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying when the spellcheck attribute becomes false on an ancestor, without restrcting the search to the nearest editing host"> + +<div id=parent> + <div id=test contenteditable=true>This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise.</div> +</div> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + var p = document.getElementById("parent"); + p.setAttribute("spellcheck", false); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-007.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-007.html new file mode 100644 index 0000000..4bbeca9a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-007.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck by making textareas readonly</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to textareas when they become readonly"> + +<style> +#test { + /* Match the ref */ + all: initial; + width: 100%; + display: block; + font-family: inherit; +} +</style> + +<textarea id=test>This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise.</textarea> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + test.setAttribute("readonly", true); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-008.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-008.html new file mode 100644 index 0000000..5ed72ab --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-008.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck by making textareas disabled</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to textareas when they become disabled"> + +<style> +#test { + /* Match the ref */ + all: initial; + width: 100%; + display: block; + font-family: inherit; +} +</style> + +<textarea id=test>This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise.</textarea> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + test.setAttribute("disabled", true); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-009.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-009.html new file mode 100644 index 0000000..577ffd8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-009.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck by making input elements readonly</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to input elements when they become readonly"> + +<style> +#test { + /* Match the ref */ + all: initial; + width: 100%; + display: block; + font-family: inherit; +} +</style> + +<input type=text id=test value="This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise."> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + test.setAttribute("readonly", true); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-010.html b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-010.html new file mode 100644 index 0000000..6a2e104 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-010.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>Turning off spellcheck by making input elements disabled</title> +<link rel=match href="references/spelling-markers-001-ref.html"> +<link rel=help href="https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking"> +<meta name=assert content="Spellchecking stops applying to input elements when they become disabled"> + +<style> +#test { + /* Match the ref */ + all: initial; + width: 100%; + display: block; + font-family: inherit; +} +</style> + +<input type=text id=test value="This test passes if there is no visual marker indicating the spellinnnnnggg mistake in this sentence, and fails otherwise."> + +<script> + var test = document.getElementById("test"); + test.focus(); test.blur(); // Alternative to forceSpellCheck(), due to general lack of support + test.setAttribute("disabled", true); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio-expected.txt index a2267a1..591b721 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio-expected.txt
@@ -6,5 +6,6 @@ PASS only one control of a radio button group can have its checkedness set to true PASS radio inputs with non-ASCII name attributes belong to the same radio button group PASS changing the name of a radio input element and setting its checkedness to true makes all the other elements' checkedness in the same radio button group be set to false +PASS moving radio input element out of or into a form should still work as expected Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio.html index ea51d7b..c37fa7ac 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio.html +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/forms/the-input-element/radio.html
@@ -23,6 +23,11 @@ <input type=radio name=group4 id=radio10> <input type=radio name=group4 id=radio11 checked> +<form id="testform"></form> +<input type=radio form=testform name=group6 id=radio12 checked> +<input type=radio form=testform name=group6 id=radio13> +<input type=radio form=testform name=group6 id=radio14> + <script> var radio1 = document.getElementById('radio1'), radio2 = document.getElementById('radio2'), @@ -36,6 +41,10 @@ radio9 = document.getElementById('radio9'), radio10 = document.getElementById('radio10'), radio11 = document.getElementById('radio11'), + radio12 = document.getElementById('radio12'), + radio13 = document.getElementById('radio13'), + radio14 = document.getElementById('radio14'), + testform = document.getElementById('testform'), t1 = async_test("click on mutable radio fires click event, then input event, then change event"), t3 = async_test("click on non-mutable radio doesn't fire the input event"), t4 = async_test("click on non-mutable radio doesn't fire the change event"), @@ -78,6 +87,31 @@ assert_false(radio11.checked); }, "changing the name of a radio input element and setting its checkedness to true makes all the other elements' checkedness in the same radio button group be set to false"); + test(function(){ + radio12.remove(); + assert_true(radio12.checked); + assert_false(radio13.checked); + assert_false(radio14.checked); + radio13.checked = true; + assert_true(radio13.checked); + assert_false(radio14.checked); + radio13.removeAttribute("form"); + radio14.removeAttribute("form"); + assert_true(radio13.checked); + assert_false(radio14.checked); + radio14.checked = true; + assert_false(radio13.checked); + assert_true(radio14.checked); + radio13.setAttribute("form", "testform"); + radio14.setAttribute("form", "testform"); + radio13.checked = true; + assert_true(radio13.checked); + assert_false(radio14.checked); + testform.remove(); + assert_true(radio13.checked); + assert_false(radio14.checked); + }, "moving radio input element out of or into a form should still work as expected"); + radio5.onclick = t1.step_func(function(e) { click_fired = true; assert_false(input_fired, "click event should fire before input event");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html index 26eefed6..212ffc1 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html
@@ -11,6 +11,7 @@ </head> <body> <script> +let supportsNoModule = "noModule" in document.getElementsByTagName("script")[0]; waitForLoadEvent = new Promise((resolve) => { window.onload = resolve; @@ -22,13 +23,13 @@ }); } -let readyForSecondTest; promise_test(() => { window.executed = false; let loaded = false; let errored = false; let script = document.createElement('script'); + script.src = './resources/set-script-executed.js'; script.onload = () => loaded = true; script.onerror = () => errored = true; @@ -36,6 +37,7 @@ document.body.appendChild(script); return waitForAsyncScript().then(() => { + assert_true(supportsNoModule); assert_true(executed); assert_true(loaded); assert_false(errored); @@ -55,6 +57,7 @@ document.body.appendChild(script); return waitForAsyncScript().then(() => { + assert_true(supportsNoModule); assert_false(executed); assert_false(loaded); assert_false(errored);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1-expected.txt new file mode 100644 index 0000000..93f0160 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML1.0 Transitional parsing Á +PASS XHTML1.0 Transitional parsing á +PASS XHTML1.0 Transitional parsing Ă +PASS XHTML1.0 Transitional parsing ă +PASS XHTML1.0 Transitional parsing ∾ +PASS XHTML1.0 Transitional parsing ∿ +PASS XHTML1.0 Transitional parsing ∾̳ +PASS XHTML1.0 Transitional parsing  +PASS XHTML1.0 Transitional parsing â +PASS XHTML1.0 Transitional parsing ´ +PASS XHTML1.0 Transitional parsing А +PASS XHTML1.0 Transitional parsing а +PASS XHTML1.0 Transitional parsing Æ +PASS XHTML1.0 Transitional parsing æ +PASS XHTML1.0 Transitional parsing ⁡ +PASS XHTML1.0 Transitional parsing 𝔄 +PASS XHTML1.0 Transitional parsing 𝔞 +PASS XHTML1.0 Transitional parsing À +PASS XHTML1.0 Transitional parsing à +PASS XHTML1.0 Transitional parsing ℵ +PASS XHTML1.0 Transitional parsing ℵ +PASS XHTML1.0 Transitional parsing Α +PASS XHTML1.0 Transitional parsing α +PASS XHTML1.0 Transitional parsing Ā +PASS XHTML1.0 Transitional parsing ā +PASS XHTML1.0 Transitional parsing ⨿ +PASS XHTML1.0 Transitional parsing & +FAIL XHTML1.0 Transitional parsing & assert_true: expected true got false +PASS XHTML1.0 Transitional parsing ⩕ +PASS XHTML1.0 Transitional parsing ⩓ +PASS XHTML1.0 Transitional parsing ∧ +PASS XHTML1.0 Transitional parsing ⩜ +PASS XHTML1.0 Transitional parsing ⩘ +PASS XHTML1.0 Transitional parsing ⩚ +PASS XHTML1.0 Transitional parsing ∠ +PASS XHTML1.0 Transitional parsing ⦤ +PASS XHTML1.0 Transitional parsing ∠ +PASS XHTML1.0 Transitional parsing ⦨ +PASS XHTML1.0 Transitional parsing ⦩ +PASS XHTML1.0 Transitional parsing ⦪ +PASS XHTML1.0 Transitional parsing ⦫ +PASS XHTML1.0 Transitional parsing ⦬ +PASS XHTML1.0 Transitional parsing ⦭ +PASS XHTML1.0 Transitional parsing ⦮ +PASS XHTML1.0 Transitional parsing ⦯ +PASS XHTML1.0 Transitional parsing ∡ +PASS XHTML1.0 Transitional parsing ∟ +PASS XHTML1.0 Transitional parsing ⊾ +PASS XHTML1.0 Transitional parsing ⦝ +PASS XHTML1.0 Transitional parsing ∢ +PASS XHTML1.0 Transitional parsing Å +PASS XHTML1.0 Transitional parsing ⍼ +PASS XHTML1.0 Transitional parsing Ą +PASS XHTML1.0 Transitional parsing ą +PASS XHTML1.0 Transitional parsing 𝔸 +PASS XHTML1.0 Transitional parsing 𝕒 +PASS XHTML1.0 Transitional parsing ⩯ +PASS XHTML1.0 Transitional parsing ≈ +PASS XHTML1.0 Transitional parsing ⩰ +PASS XHTML1.0 Transitional parsing ≊ +PASS XHTML1.0 Transitional parsing ≋ +PASS XHTML1.0 Transitional parsing ' +PASS XHTML1.0 Transitional parsing ⁡ +PASS XHTML1.0 Transitional parsing ≈ +PASS XHTML1.0 Transitional parsing ≊ +PASS XHTML1.0 Transitional parsing Å +PASS XHTML1.0 Transitional parsing å +PASS XHTML1.0 Transitional parsing 𝒜 +PASS XHTML1.0 Transitional parsing 𝒶 +PASS XHTML1.0 Transitional parsing ≔ +PASS XHTML1.0 Transitional parsing * +PASS XHTML1.0 Transitional parsing ≈ +PASS XHTML1.0 Transitional parsing ≍ +PASS XHTML1.0 Transitional parsing à +PASS XHTML1.0 Transitional parsing ã +PASS XHTML1.0 Transitional parsing Ä +PASS XHTML1.0 Transitional parsing ä +PASS XHTML1.0 Transitional parsing ∳ +PASS XHTML1.0 Transitional parsing ⨑ +PASS XHTML1.0 Transitional parsing ≌ +PASS XHTML1.0 Transitional parsing ϶ +PASS XHTML1.0 Transitional parsing ‵ +PASS XHTML1.0 Transitional parsing ∽ +PASS XHTML1.0 Transitional parsing ⋍ +PASS XHTML1.0 Transitional parsing ∖ +PASS XHTML1.0 Transitional parsing ⫧ +PASS XHTML1.0 Transitional parsing ⊽ +PASS XHTML1.0 Transitional parsing ⌅ +PASS XHTML1.0 Transitional parsing ⌆ +PASS XHTML1.0 Transitional parsing ⌅ +PASS XHTML1.0 Transitional parsing ⎵ +PASS XHTML1.0 Transitional parsing ⎶ +PASS XHTML1.0 Transitional parsing ≌ +PASS XHTML1.0 Transitional parsing Б +PASS XHTML1.0 Transitional parsing б +PASS XHTML1.0 Transitional parsing „ +PASS XHTML1.0 Transitional parsing ∵ +PASS XHTML1.0 Transitional parsing ∵ +PASS XHTML1.0 Transitional parsing ∵ +PASS XHTML1.0 Transitional parsing ⦰ +PASS XHTML1.0 Transitional parsing ϶ +PASS XHTML1.0 Transitional parsing ℬ +PASS XHTML1.0 Transitional parsing ℬ +PASS XHTML1.0 Transitional parsing Β +PASS XHTML1.0 Transitional parsing β +PASS XHTML1.0 Transitional parsing ℶ +PASS XHTML1.0 Transitional parsing ≬ +PASS XHTML1.0 Transitional parsing 𝔅 +PASS XHTML1.0 Transitional parsing 𝔟 +PASS XHTML1.0 Transitional parsing ⋂ +PASS XHTML1.0 Transitional parsing ◯ +PASS XHTML1.0 Transitional parsing ⋃ +PASS XHTML1.0 Transitional parsing ⨀ +PASS XHTML1.0 Transitional parsing ⨁ +PASS XHTML1.0 Transitional parsing ⨂ +PASS XHTML1.0 Transitional parsing ⨆ +PASS XHTML1.0 Transitional parsing ★ +PASS XHTML1.0 Transitional parsing ▽ +PASS XHTML1.0 Transitional parsing △ +PASS XHTML1.0 Transitional parsing ⨄ +PASS XHTML1.0 Transitional parsing ⋁ +PASS XHTML1.0 Transitional parsing ⋀ +PASS XHTML1.0 Transitional parsing ⤍ +PASS XHTML1.0 Transitional parsing ⧫ +PASS XHTML1.0 Transitional parsing ▪ +PASS XHTML1.0 Transitional parsing ▴ +PASS XHTML1.0 Transitional parsing ▾ +PASS XHTML1.0 Transitional parsing ◂ +PASS XHTML1.0 Transitional parsing ▸ +PASS XHTML1.0 Transitional parsing ␣ +PASS XHTML1.0 Transitional parsing ▒ +PASS XHTML1.0 Transitional parsing ░ +PASS XHTML1.0 Transitional parsing ▓ +PASS XHTML1.0 Transitional parsing █ +PASS XHTML1.0 Transitional parsing =⃥ +PASS XHTML1.0 Transitional parsing ≡⃥ +PASS XHTML1.0 Transitional parsing ⫭ +PASS XHTML1.0 Transitional parsing ⌐ +PASS XHTML1.0 Transitional parsing 𝔹 +PASS XHTML1.0 Transitional parsing 𝕓 +PASS XHTML1.0 Transitional parsing ⊥ +PASS XHTML1.0 Transitional parsing ⊥ +PASS XHTML1.0 Transitional parsing ⋈ +PASS XHTML1.0 Transitional parsing ⧉ +PASS XHTML1.0 Transitional parsing ┐ +PASS XHTML1.0 Transitional parsing ╕ +PASS XHTML1.0 Transitional parsing ╖ +PASS XHTML1.0 Transitional parsing ╗ +PASS XHTML1.0 Transitional parsing ┌ +PASS XHTML1.0 Transitional parsing ╒ +PASS XHTML1.0 Transitional parsing ╓ +PASS XHTML1.0 Transitional parsing ╔ +PASS XHTML1.0 Transitional parsing ─ +PASS XHTML1.0 Transitional parsing ═ +PASS XHTML1.0 Transitional parsing ┬ +PASS XHTML1.0 Transitional parsing ╤ +PASS XHTML1.0 Transitional parsing ╥ +PASS XHTML1.0 Transitional parsing ╦ +PASS XHTML1.0 Transitional parsing ┴ +PASS XHTML1.0 Transitional parsing ╧ +PASS XHTML1.0 Transitional parsing ╨ +PASS XHTML1.0 Transitional parsing ╩ +PASS XHTML1.0 Transitional parsing ⊟ +PASS XHTML1.0 Transitional parsing ⊞ +PASS XHTML1.0 Transitional parsing ⊠ +PASS XHTML1.0 Transitional parsing ┘ +PASS XHTML1.0 Transitional parsing ╛ +PASS XHTML1.0 Transitional parsing ╜ +PASS XHTML1.0 Transitional parsing ╝ +PASS XHTML1.0 Transitional parsing └ +PASS XHTML1.0 Transitional parsing ╘ +PASS XHTML1.0 Transitional parsing ╙ +PASS XHTML1.0 Transitional parsing ╚ +PASS XHTML1.0 Transitional parsing │ +PASS XHTML1.0 Transitional parsing ║ +PASS XHTML1.0 Transitional parsing ┼ +PASS XHTML1.0 Transitional parsing ╪ +PASS XHTML1.0 Transitional parsing ╫ +PASS XHTML1.0 Transitional parsing ╬ +PASS XHTML1.0 Transitional parsing ┤ +PASS XHTML1.0 Transitional parsing ╡ +PASS XHTML1.0 Transitional parsing ╢ +PASS XHTML1.0 Transitional parsing ╣ +PASS XHTML1.0 Transitional parsing ├ +PASS XHTML1.0 Transitional parsing ╞ +PASS XHTML1.0 Transitional parsing ╟ +PASS XHTML1.0 Transitional parsing ╠ +PASS XHTML1.0 Transitional parsing ‵ +PASS XHTML1.0 Transitional parsing ˘ +PASS XHTML1.0 Transitional parsing ˘ +PASS XHTML1.0 Transitional parsing ¦ +PASS XHTML1.0 Transitional parsing 𝒷 +PASS XHTML1.0 Transitional parsing ℬ +PASS XHTML1.0 Transitional parsing ⁏ +PASS XHTML1.0 Transitional parsing ∽ +PASS XHTML1.0 Transitional parsing ⋍ +PASS XHTML1.0 Transitional parsing ⧅ +PASS XHTML1.0 Transitional parsing \ +PASS XHTML1.0 Transitional parsing ⟈ +PASS XHTML1.0 Transitional parsing • +PASS XHTML1.0 Transitional parsing • +PASS XHTML1.0 Transitional parsing ≎ +PASS XHTML1.0 Transitional parsing ⪮ +PASS XHTML1.0 Transitional parsing ≏ +PASS XHTML1.0 Transitional parsing ≎ +PASS XHTML1.0 Transitional parsing ≏ +PASS XHTML1.0 Transitional parsing Ć +PASS XHTML1.0 Transitional parsing ć +PASS XHTML1.0 Transitional parsing ⩄ +PASS XHTML1.0 Transitional parsing ⩉ +PASS XHTML1.0 Transitional parsing ⩋ +PASS XHTML1.0 Transitional parsing ∩ +PASS XHTML1.0 Transitional parsing ⋒ +PASS XHTML1.0 Transitional parsing ⩇ +PASS XHTML1.0 Transitional parsing ⩀ +PASS XHTML1.0 Transitional parsing ⅅ +PASS XHTML1.0 Transitional parsing ∩︀ +PASS XHTML1.0 Transitional parsing ⁁ +PASS XHTML1.0 Transitional parsing ˇ +PASS XHTML1.0 Transitional parsing ℭ +PASS XHTML1.0 Transitional parsing ⩍ +PASS XHTML1.0 Transitional parsing Č +PASS XHTML1.0 Transitional parsing č +PASS XHTML1.0 Transitional parsing Ç +PASS XHTML1.0 Transitional parsing ç +PASS XHTML1.0 Transitional parsing Ĉ +PASS XHTML1.0 Transitional parsing ĉ +PASS XHTML1.0 Transitional parsing ∰ +PASS XHTML1.0 Transitional parsing ⩌ +PASS XHTML1.0 Transitional parsing ⩐ +PASS XHTML1.0 Transitional parsing Ċ +PASS XHTML1.0 Transitional parsing ċ +PASS XHTML1.0 Transitional parsing ¸ +PASS XHTML1.0 Transitional parsing ¸ +PASS XHTML1.0 Transitional parsing ⦲ +PASS XHTML1.0 Transitional parsing ¢ +PASS XHTML1.0 Transitional parsing · +PASS XHTML1.0 Transitional parsing · +PASS XHTML1.0 Transitional parsing 𝔠 +PASS XHTML1.0 Transitional parsing ℭ +PASS XHTML1.0 Transitional parsing Ч +PASS XHTML1.0 Transitional parsing ч +PASS XHTML1.0 Transitional parsing ✓ +PASS XHTML1.0 Transitional parsing ✓ +PASS XHTML1.0 Transitional parsing Χ +PASS XHTML1.0 Transitional parsing χ +PASS XHTML1.0 Transitional parsing ˆ +PASS XHTML1.0 Transitional parsing ≗ +PASS XHTML1.0 Transitional parsing ↺ +PASS XHTML1.0 Transitional parsing ↻ +PASS XHTML1.0 Transitional parsing ⊛ +PASS XHTML1.0 Transitional parsing ⊚ +PASS XHTML1.0 Transitional parsing ⊝ +PASS XHTML1.0 Transitional parsing ⊙ +PASS XHTML1.0 Transitional parsing ® +PASS XHTML1.0 Transitional parsing Ⓢ +PASS XHTML1.0 Transitional parsing ⊖ +PASS XHTML1.0 Transitional parsing ⊕ +PASS XHTML1.0 Transitional parsing ⊗ +PASS XHTML1.0 Transitional parsing ○ +PASS XHTML1.0 Transitional parsing ⧃ +PASS XHTML1.0 Transitional parsing ≗ +PASS XHTML1.0 Transitional parsing ⨐ +PASS XHTML1.0 Transitional parsing ⫯ +PASS XHTML1.0 Transitional parsing ⧂ +PASS XHTML1.0 Transitional parsing ∲ +PASS XHTML1.0 Transitional parsing ” +PASS XHTML1.0 Transitional parsing ’ +PASS XHTML1.0 Transitional parsing ♣ +PASS XHTML1.0 Transitional parsing ♣ +PASS XHTML1.0 Transitional parsing : +PASS XHTML1.0 Transitional parsing ∷ +PASS XHTML1.0 Transitional parsing ⩴ +PASS XHTML1.0 Transitional parsing ≔ +PASS XHTML1.0 Transitional parsing ≔ +PASS XHTML1.0 Transitional parsing , +PASS XHTML1.0 Transitional parsing @ +PASS XHTML1.0 Transitional parsing ∁ +PASS XHTML1.0 Transitional parsing ∘ +PASS XHTML1.0 Transitional parsing ∁ +PASS XHTML1.0 Transitional parsing ℂ +PASS XHTML1.0 Transitional parsing ≅ +PASS XHTML1.0 Transitional parsing ⩭ +PASS XHTML1.0 Transitional parsing ≡ +PASS XHTML1.0 Transitional parsing ∮ +PASS XHTML1.0 Transitional parsing ∯ +PASS XHTML1.0 Transitional parsing ∮ +PASS XHTML1.0 Transitional parsing 𝕔 +PASS XHTML1.0 Transitional parsing ℂ +PASS XHTML1.0 Transitional parsing ∐ +PASS XHTML1.0 Transitional parsing ∐ +PASS XHTML1.0 Transitional parsing © +PASS XHTML1.0 Transitional parsing © +PASS XHTML1.0 Transitional parsing ℗ +PASS XHTML1.0 Transitional parsing ∳ +PASS XHTML1.0 Transitional parsing ↵ +PASS XHTML1.0 Transitional parsing ✗ +PASS XHTML1.0 Transitional parsing ⨯ +PASS XHTML1.0 Transitional parsing 𝒞 +PASS XHTML1.0 Transitional parsing 𝒸 +PASS XHTML1.0 Transitional parsing ⫏ +PASS XHTML1.0 Transitional parsing ⫑ +PASS XHTML1.0 Transitional parsing ⫐ +PASS XHTML1.0 Transitional parsing ⫒ +PASS XHTML1.0 Transitional parsing ⋯ +PASS XHTML1.0 Transitional parsing ⤸ +PASS XHTML1.0 Transitional parsing ⤵ +PASS XHTML1.0 Transitional parsing ⋞ +PASS XHTML1.0 Transitional parsing ⋟ +PASS XHTML1.0 Transitional parsing ↶ +PASS XHTML1.0 Transitional parsing ⤽ +PASS XHTML1.0 Transitional parsing ⩈ +PASS XHTML1.0 Transitional parsing ⩆ +PASS XHTML1.0 Transitional parsing ≍ +PASS XHTML1.0 Transitional parsing ∪ +PASS XHTML1.0 Transitional parsing ⋓ +PASS XHTML1.0 Transitional parsing ⩊ +PASS XHTML1.0 Transitional parsing ⊍ +PASS XHTML1.0 Transitional parsing ⩅ +PASS XHTML1.0 Transitional parsing ∪︀ +PASS XHTML1.0 Transitional parsing ↷ +PASS XHTML1.0 Transitional parsing ⤼ +PASS XHTML1.0 Transitional parsing ⋞ +PASS XHTML1.0 Transitional parsing ⋟ +PASS XHTML1.0 Transitional parsing ⋎ +PASS XHTML1.0 Transitional parsing ⋏ +PASS XHTML1.0 Transitional parsing ¤ +PASS XHTML1.0 Transitional parsing ↶ +PASS XHTML1.0 Transitional parsing ↷ +PASS XHTML1.0 Transitional parsing ⋎ +PASS XHTML1.0 Transitional parsing ⋏ +PASS XHTML1.0 Transitional parsing ∲ +PASS XHTML1.0 Transitional parsing ∱ +PASS XHTML1.0 Transitional parsing ⌭ +PASS XHTML1.0 Transitional parsing † +PASS XHTML1.0 Transitional parsing ‡ +PASS XHTML1.0 Transitional parsing ℸ +PASS XHTML1.0 Transitional parsing ↓ +PASS XHTML1.0 Transitional parsing ↡ +PASS XHTML1.0 Transitional parsing ⇓ +PASS XHTML1.0 Transitional parsing ‐ +PASS XHTML1.0 Transitional parsing ⫤ +PASS XHTML1.0 Transitional parsing ⊣ +PASS XHTML1.0 Transitional parsing ⤏ +PASS XHTML1.0 Transitional parsing ˝ +PASS XHTML1.0 Transitional parsing Ď +PASS XHTML1.0 Transitional parsing ď +PASS XHTML1.0 Transitional parsing Д +PASS XHTML1.0 Transitional parsing д +PASS XHTML1.0 Transitional parsing ‡ +PASS XHTML1.0 Transitional parsing ⇊ +PASS XHTML1.0 Transitional parsing ⅅ +PASS XHTML1.0 Transitional parsing ⅆ +PASS XHTML1.0 Transitional parsing ⤑ +PASS XHTML1.0 Transitional parsing ⩷ +PASS XHTML1.0 Transitional parsing ° +PASS XHTML1.0 Transitional parsing ∇ +PASS XHTML1.0 Transitional parsing Δ +PASS XHTML1.0 Transitional parsing δ +PASS XHTML1.0 Transitional parsing ⦱ +PASS XHTML1.0 Transitional parsing ⥿ +PASS XHTML1.0 Transitional parsing 𝔇 +PASS XHTML1.0 Transitional parsing 𝔡 +PASS XHTML1.0 Transitional parsing ⥥ +PASS XHTML1.0 Transitional parsing ⇃ +PASS XHTML1.0 Transitional parsing ⇂ +PASS XHTML1.0 Transitional parsing ´ +PASS XHTML1.0 Transitional parsing ˙ +PASS XHTML1.0 Transitional parsing ˝ +PASS XHTML1.0 Transitional parsing ` +PASS XHTML1.0 Transitional parsing ˜ +PASS XHTML1.0 Transitional parsing ⋄ +PASS XHTML1.0 Transitional parsing ⋄ +PASS XHTML1.0 Transitional parsing ⋄ +PASS XHTML1.0 Transitional parsing ♦ +PASS XHTML1.0 Transitional parsing ♦ +PASS XHTML1.0 Transitional parsing ¨ +PASS XHTML1.0 Transitional parsing ⅆ +PASS XHTML1.0 Transitional parsing ϝ +PASS XHTML1.0 Transitional parsing ⋲ +PASS XHTML1.0 Transitional parsing ÷ +PASS XHTML1.0 Transitional parsing ÷ +PASS XHTML1.0 Transitional parsing ⋇ +PASS XHTML1.0 Transitional parsing ⋇ +PASS XHTML1.0 Transitional parsing Ђ +PASS XHTML1.0 Transitional parsing ђ +PASS XHTML1.0 Transitional parsing ⌞ +PASS XHTML1.0 Transitional parsing ⌍ +PASS XHTML1.0 Transitional parsing $ +PASS XHTML1.0 Transitional parsing 𝔻 +PASS XHTML1.0 Transitional parsing 𝕕 +PASS XHTML1.0 Transitional parsing ¨ +PASS XHTML1.0 Transitional parsing ˙ +PASS XHTML1.0 Transitional parsing ⃜ +PASS XHTML1.0 Transitional parsing ≐ +PASS XHTML1.0 Transitional parsing ≑ +PASS XHTML1.0 Transitional parsing ≐ +PASS XHTML1.0 Transitional parsing ∸ +PASS XHTML1.0 Transitional parsing ∔ +PASS XHTML1.0 Transitional parsing ⊡ +PASS XHTML1.0 Transitional parsing ⌆ +PASS XHTML1.0 Transitional parsing ∯ +PASS XHTML1.0 Transitional parsing ¨ +PASS XHTML1.0 Transitional parsing ⇓ +PASS XHTML1.0 Transitional parsing ⇐ +PASS XHTML1.0 Transitional parsing ⇔ +PASS XHTML1.0 Transitional parsing ⫤ +PASS XHTML1.0 Transitional parsing ⟸ +PASS XHTML1.0 Transitional parsing ⟺ +PASS XHTML1.0 Transitional parsing ⟹ +PASS XHTML1.0 Transitional parsing ⇒ +PASS XHTML1.0 Transitional parsing ⊨ +PASS XHTML1.0 Transitional parsing ⇑ +PASS XHTML1.0 Transitional parsing ⇕ +PASS XHTML1.0 Transitional parsing ∥ +PASS XHTML1.0 Transitional parsing ⤓ +PASS XHTML1.0 Transitional parsing ↓ +PASS XHTML1.0 Transitional parsing ↓ +PASS XHTML1.0 Transitional parsing ⇓ +PASS XHTML1.0 Transitional parsing ⇵ +PASS XHTML1.0 Transitional parsing ̑ +PASS XHTML1.0 Transitional parsing ⇊ +PASS XHTML1.0 Transitional parsing ⇃ +PASS XHTML1.0 Transitional parsing ⇂ +PASS XHTML1.0 Transitional parsing ⥐ +PASS XHTML1.0 Transitional parsing ⥞ +PASS XHTML1.0 Transitional parsing ⥖ +PASS XHTML1.0 Transitional parsing ↽ +PASS XHTML1.0 Transitional parsing ⥟ +PASS XHTML1.0 Transitional parsing ⥗ +PASS XHTML1.0 Transitional parsing ⇁ +PASS XHTML1.0 Transitional parsing ↧ +PASS XHTML1.0 Transitional parsing ⊤ +PASS XHTML1.0 Transitional parsing ⤐ +PASS XHTML1.0 Transitional parsing ⌟ +PASS XHTML1.0 Transitional parsing ⌌ +PASS XHTML1.0 Transitional parsing 𝒟 +PASS XHTML1.0 Transitional parsing 𝒹 +PASS XHTML1.0 Transitional parsing Ѕ +PASS XHTML1.0 Transitional parsing ѕ +PASS XHTML1.0 Transitional parsing ⧶ +PASS XHTML1.0 Transitional parsing Đ +PASS XHTML1.0 Transitional parsing đ +PASS XHTML1.0 Transitional parsing ⋱ +PASS XHTML1.0 Transitional parsing ▿ +PASS XHTML1.0 Transitional parsing ▾ +PASS XHTML1.0 Transitional parsing ⇵ +PASS XHTML1.0 Transitional parsing ⥯ +PASS XHTML1.0 Transitional parsing ⦦ +PASS XHTML1.0 Transitional parsing Џ +PASS XHTML1.0 Transitional parsing џ +PASS XHTML1.0 Transitional parsing ⟿ +PASS XHTML1.0 Transitional parsing É +PASS XHTML1.0 Transitional parsing é +PASS XHTML1.0 Transitional parsing ⩮ +PASS XHTML1.0 Transitional parsing Ě +PASS XHTML1.0 Transitional parsing ě +PASS XHTML1.0 Transitional parsing Ê +PASS XHTML1.0 Transitional parsing ê +PASS XHTML1.0 Transitional parsing ≖ +PASS XHTML1.0 Transitional parsing ≕ +PASS XHTML1.0 Transitional parsing Э +PASS XHTML1.0 Transitional parsing э +PASS XHTML1.0 Transitional parsing ⩷ +PASS XHTML1.0 Transitional parsing Ė +PASS XHTML1.0 Transitional parsing ė +PASS XHTML1.0 Transitional parsing ≑ +PASS XHTML1.0 Transitional parsing ⅇ +PASS XHTML1.0 Transitional parsing ≒ +PASS XHTML1.0 Transitional parsing 𝔈 +PASS XHTML1.0 Transitional parsing 𝔢 +PASS XHTML1.0 Transitional parsing ⪚ +PASS XHTML1.0 Transitional parsing È +PASS XHTML1.0 Transitional parsing è +PASS XHTML1.0 Transitional parsing ⪖ +PASS XHTML1.0 Transitional parsing ⪘ +PASS XHTML1.0 Transitional parsing ⪙ +PASS XHTML1.0 Transitional parsing ∈ +PASS XHTML1.0 Transitional parsing ⏧ +PASS XHTML1.0 Transitional parsing ℓ +PASS XHTML1.0 Transitional parsing ⪕ +PASS XHTML1.0 Transitional parsing ⪗ +PASS XHTML1.0 Transitional parsing Ē +PASS XHTML1.0 Transitional parsing ē +PASS XHTML1.0 Transitional parsing ∅ +PASS XHTML1.0 Transitional parsing ∅ +PASS XHTML1.0 Transitional parsing ◻ +PASS XHTML1.0 Transitional parsing ∅ +PASS XHTML1.0 Transitional parsing ▫ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing Ŋ +PASS XHTML1.0 Transitional parsing ŋ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing Ę +PASS XHTML1.0 Transitional parsing ę +PASS XHTML1.0 Transitional parsing 𝔼 +PASS XHTML1.0 Transitional parsing 𝕖 +PASS XHTML1.0 Transitional parsing ⋕ +PASS XHTML1.0 Transitional parsing ⧣ +PASS XHTML1.0 Transitional parsing ⩱ +PASS XHTML1.0 Transitional parsing ε +PASS XHTML1.0 Transitional parsing Ε +PASS XHTML1.0 Transitional parsing ε +PASS XHTML1.0 Transitional parsing ϵ +PASS XHTML1.0 Transitional parsing ≖ +PASS XHTML1.0 Transitional parsing ≕ +PASS XHTML1.0 Transitional parsing ≂ +PASS XHTML1.0 Transitional parsing ⪖ +PASS XHTML1.0 Transitional parsing ⪕ +PASS XHTML1.0 Transitional parsing ⩵ +PASS XHTML1.0 Transitional parsing = +PASS XHTML1.0 Transitional parsing ≂ +PASS XHTML1.0 Transitional parsing ≟ +PASS XHTML1.0 Transitional parsing ⇌ +PASS XHTML1.0 Transitional parsing ≡ +PASS XHTML1.0 Transitional parsing ⩸ +PASS XHTML1.0 Transitional parsing ⧥ +PASS XHTML1.0 Transitional parsing ⥱ +PASS XHTML1.0 Transitional parsing ≓ +PASS XHTML1.0 Transitional parsing ℯ +PASS XHTML1.0 Transitional parsing ℰ +PASS XHTML1.0 Transitional parsing ≐ +PASS XHTML1.0 Transitional parsing ⩳ +PASS XHTML1.0 Transitional parsing ≂ +PASS XHTML1.0 Transitional parsing Η +PASS XHTML1.0 Transitional parsing η +PASS XHTML1.0 Transitional parsing Ð +PASS XHTML1.0 Transitional parsing ð +PASS XHTML1.0 Transitional parsing Ë +PASS XHTML1.0 Transitional parsing ë +PASS XHTML1.0 Transitional parsing € +PASS XHTML1.0 Transitional parsing ! +PASS XHTML1.0 Transitional parsing ∃ +PASS XHTML1.0 Transitional parsing ∃ +PASS XHTML1.0 Transitional parsing ℰ +PASS XHTML1.0 Transitional parsing ⅇ +PASS XHTML1.0 Transitional parsing ⅇ +PASS XHTML1.0 Transitional parsing ≒ +PASS XHTML1.0 Transitional parsing Ф +PASS XHTML1.0 Transitional parsing ф +PASS XHTML1.0 Transitional parsing ♀ +PASS XHTML1.0 Transitional parsing ffi +PASS XHTML1.0 Transitional parsing ff +PASS XHTML1.0 Transitional parsing ffl +PASS XHTML1.0 Transitional parsing 𝔉 +PASS XHTML1.0 Transitional parsing 𝔣 +PASS XHTML1.0 Transitional parsing fi +PASS XHTML1.0 Transitional parsing ◼ +PASS XHTML1.0 Transitional parsing ▪ +PASS XHTML1.0 Transitional parsing fj +PASS XHTML1.0 Transitional parsing ♭ +PASS XHTML1.0 Transitional parsing fl +PASS XHTML1.0 Transitional parsing ▱ +PASS XHTML1.0 Transitional parsing ƒ +PASS XHTML1.0 Transitional parsing 𝔽 +PASS XHTML1.0 Transitional parsing 𝕗 +PASS XHTML1.0 Transitional parsing ∀ +PASS XHTML1.0 Transitional parsing ∀ +PASS XHTML1.0 Transitional parsing ⋔ +PASS XHTML1.0 Transitional parsing ⫙ +PASS XHTML1.0 Transitional parsing ℱ +PASS XHTML1.0 Transitional parsing ⨍ +PASS XHTML1.0 Transitional parsing ½ +PASS XHTML1.0 Transitional parsing ⅓ +PASS XHTML1.0 Transitional parsing ¼ +PASS XHTML1.0 Transitional parsing ⅕ +PASS XHTML1.0 Transitional parsing ⅙ +PASS XHTML1.0 Transitional parsing ⅛ +PASS XHTML1.0 Transitional parsing ⅔ +PASS XHTML1.0 Transitional parsing ⅖ +PASS XHTML1.0 Transitional parsing ¾ +PASS XHTML1.0 Transitional parsing ⅗ +PASS XHTML1.0 Transitional parsing ⅜ +PASS XHTML1.0 Transitional parsing ⅘ +PASS XHTML1.0 Transitional parsing ⅚ +PASS XHTML1.0 Transitional parsing ⅝ +PASS XHTML1.0 Transitional parsing ⅞ +PASS XHTML1.0 Transitional parsing ⁄ +PASS XHTML1.0 Transitional parsing ⌢ +PASS XHTML1.0 Transitional parsing 𝒻 +PASS XHTML1.0 Transitional parsing ℱ +PASS XHTML1.0 Transitional parsing ǵ +PASS XHTML1.0 Transitional parsing Γ +PASS XHTML1.0 Transitional parsing γ +PASS XHTML1.0 Transitional parsing Ϝ +PASS XHTML1.0 Transitional parsing ϝ +PASS XHTML1.0 Transitional parsing ⪆ +PASS XHTML1.0 Transitional parsing Ğ +PASS XHTML1.0 Transitional parsing ğ +PASS XHTML1.0 Transitional parsing Ģ +PASS XHTML1.0 Transitional parsing Ĝ +PASS XHTML1.0 Transitional parsing ĝ +PASS XHTML1.0 Transitional parsing Г +PASS XHTML1.0 Transitional parsing г +PASS XHTML1.0 Transitional parsing Ġ +PASS XHTML1.0 Transitional parsing ġ +PASS XHTML1.0 Transitional parsing ≥ +PASS XHTML1.0 Transitional parsing ≧ +PASS XHTML1.0 Transitional parsing ⪌ +PASS XHTML1.0 Transitional parsing ⋛ +PASS XHTML1.0 Transitional parsing ≥ +PASS XHTML1.0 Transitional parsing ≧ +PASS XHTML1.0 Transitional parsing ⩾ +PASS XHTML1.0 Transitional parsing ⪩ +PASS XHTML1.0 Transitional parsing ⩾ +PASS XHTML1.0 Transitional parsing ⪀ +PASS XHTML1.0 Transitional parsing ⪂ +PASS XHTML1.0 Transitional parsing ⪄ +PASS XHTML1.0 Transitional parsing ⋛︀ +PASS XHTML1.0 Transitional parsing ⪔ +PASS XHTML1.0 Transitional parsing 𝔊 +PASS XHTML1.0 Transitional parsing 𝔤 +PASS XHTML1.0 Transitional parsing ≫ +PASS XHTML1.0 Transitional parsing ⋙ +PASS XHTML1.0 Transitional parsing ⋙ +PASS XHTML1.0 Transitional parsing ℷ +PASS XHTML1.0 Transitional parsing Ѓ +PASS XHTML1.0 Transitional parsing ѓ +PASS XHTML1.0 Transitional parsing ⪥ +PASS XHTML1.0 Transitional parsing ≷ +PASS XHTML1.0 Transitional parsing ⪒ +PASS XHTML1.0 Transitional parsing ⪤ +PASS XHTML1.0 Transitional parsing ⪊ +PASS XHTML1.0 Transitional parsing ⪊ +PASS XHTML1.0 Transitional parsing ⪈ +PASS XHTML1.0 Transitional parsing ≩ +PASS XHTML1.0 Transitional parsing ⪈ +PASS XHTML1.0 Transitional parsing ≩ +PASS XHTML1.0 Transitional parsing ⋧ +PASS XHTML1.0 Transitional parsing 𝔾 +PASS XHTML1.0 Transitional parsing 𝕘 +PASS XHTML1.0 Transitional parsing ` +PASS XHTML1.0 Transitional parsing ≥ +PASS XHTML1.0 Transitional parsing ⋛ +PASS XHTML1.0 Transitional parsing ≧ +PASS XHTML1.0 Transitional parsing ⪢ +PASS XHTML1.0 Transitional parsing ≷ +PASS XHTML1.0 Transitional parsing ⩾ +PASS XHTML1.0 Transitional parsing ≳ +PASS XHTML1.0 Transitional parsing 𝒢 +PASS XHTML1.0 Transitional parsing ℊ +PASS XHTML1.0 Transitional parsing ≳ +PASS XHTML1.0 Transitional parsing ⪎ +PASS XHTML1.0 Transitional parsing ⪐ +PASS XHTML1.0 Transitional parsing ⪧ +PASS XHTML1.0 Transitional parsing ⩺ +PASS XHTML1.0 Transitional parsing > +PASS XHTML1.0 Transitional parsing > +PASS XHTML1.0 Transitional parsing ≫ +PASS XHTML1.0 Transitional parsing ⋗ +PASS XHTML1.0 Transitional parsing ⦕ +PASS XHTML1.0 Transitional parsing ⩼ +PASS XHTML1.0 Transitional parsing ⪆ +PASS XHTML1.0 Transitional parsing ⥸ +PASS XHTML1.0 Transitional parsing ⋗ +PASS XHTML1.0 Transitional parsing ⋛ +PASS XHTML1.0 Transitional parsing ⪌ +PASS XHTML1.0 Transitional parsing ≷ +PASS XHTML1.0 Transitional parsing ≳ +PASS XHTML1.0 Transitional parsing ≩︀ +PASS XHTML1.0 Transitional parsing ≩︀ +PASS XHTML1.0 Transitional parsing ˇ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing ½ +PASS XHTML1.0 Transitional parsing ℋ +PASS XHTML1.0 Transitional parsing Ъ +PASS XHTML1.0 Transitional parsing ъ +PASS XHTML1.0 Transitional parsing ⥈ +PASS XHTML1.0 Transitional parsing ↔ +PASS XHTML1.0 Transitional parsing ⇔ +PASS XHTML1.0 Transitional parsing ↭ +PASS XHTML1.0 Transitional parsing ^ +PASS XHTML1.0 Transitional parsing ℏ +PASS XHTML1.0 Transitional parsing Ĥ +PASS XHTML1.0 Transitional parsing ĥ +PASS XHTML1.0 Transitional parsing ♥ +PASS XHTML1.0 Transitional parsing ♥ +PASS XHTML1.0 Transitional parsing … +PASS XHTML1.0 Transitional parsing ⊹ +PASS XHTML1.0 Transitional parsing 𝔥 +PASS XHTML1.0 Transitional parsing ℌ +PASS XHTML1.0 Transitional parsing ℋ +PASS XHTML1.0 Transitional parsing ⤥ +PASS XHTML1.0 Transitional parsing ⤦ +PASS XHTML1.0 Transitional parsing ⇿ +PASS XHTML1.0 Transitional parsing ∻ +PASS XHTML1.0 Transitional parsing ↩ +PASS XHTML1.0 Transitional parsing ↪ +PASS XHTML1.0 Transitional parsing 𝕙 +PASS XHTML1.0 Transitional parsing ℍ +PASS XHTML1.0 Transitional parsing ― +PASS XHTML1.0 Transitional parsing ─ +PASS XHTML1.0 Transitional parsing 𝒽 +PASS XHTML1.0 Transitional parsing ℋ +PASS XHTML1.0 Transitional parsing ℏ +PASS XHTML1.0 Transitional parsing Ħ +PASS XHTML1.0 Transitional parsing ħ +PASS XHTML1.0 Transitional parsing ≎ +PASS XHTML1.0 Transitional parsing ≏ +PASS XHTML1.0 Transitional parsing ⁃ +PASS XHTML1.0 Transitional parsing ‐ +PASS XHTML1.0 Transitional parsing Í +PASS XHTML1.0 Transitional parsing í +PASS XHTML1.0 Transitional parsing ⁣ +PASS XHTML1.0 Transitional parsing Î +PASS XHTML1.0 Transitional parsing î +PASS XHTML1.0 Transitional parsing И +PASS XHTML1.0 Transitional parsing и +PASS XHTML1.0 Transitional parsing İ +PASS XHTML1.0 Transitional parsing Е +PASS XHTML1.0 Transitional parsing е +PASS XHTML1.0 Transitional parsing ¡ +PASS XHTML1.0 Transitional parsing ⇔ +PASS XHTML1.0 Transitional parsing 𝔦 +PASS XHTML1.0 Transitional parsing ℑ +PASS XHTML1.0 Transitional parsing Ì +PASS XHTML1.0 Transitional parsing ì +PASS XHTML1.0 Transitional parsing ⅈ +PASS XHTML1.0 Transitional parsing ⨌ +PASS XHTML1.0 Transitional parsing ∭ +PASS XHTML1.0 Transitional parsing ⧜ +PASS XHTML1.0 Transitional parsing ℩ +PASS XHTML1.0 Transitional parsing IJ +PASS XHTML1.0 Transitional parsing ij +PASS XHTML1.0 Transitional parsing Ī +PASS XHTML1.0 Transitional parsing ī +PASS XHTML1.0 Transitional parsing ℑ +PASS XHTML1.0 Transitional parsing ⅈ +PASS XHTML1.0 Transitional parsing ℐ +PASS XHTML1.0 Transitional parsing ℑ +PASS XHTML1.0 Transitional parsing ı +PASS XHTML1.0 Transitional parsing ℑ +PASS XHTML1.0 Transitional parsing ⊷ +PASS XHTML1.0 Transitional parsing Ƶ +PASS XHTML1.0 Transitional parsing ⇒ +PASS XHTML1.0 Transitional parsing ℅ +PASS XHTML1.0 Transitional parsing ∈ +PASS XHTML1.0 Transitional parsing ∞ +PASS XHTML1.0 Transitional parsing ⧝ +PASS XHTML1.0 Transitional parsing ı +PASS XHTML1.0 Transitional parsing ⊺ +PASS XHTML1.0 Transitional parsing ∫ +PASS XHTML1.0 Transitional parsing ∬ +PASS XHTML1.0 Transitional parsing ℤ +PASS XHTML1.0 Transitional parsing ∫ +PASS XHTML1.0 Transitional parsing ⊺ +PASS XHTML1.0 Transitional parsing ⋂ +PASS XHTML1.0 Transitional parsing ⨗ +PASS XHTML1.0 Transitional parsing ⨼ +PASS XHTML1.0 Transitional parsing ⁣ +PASS XHTML1.0 Transitional parsing ⁢ +PASS XHTML1.0 Transitional parsing Ё +PASS XHTML1.0 Transitional parsing ё +PASS XHTML1.0 Transitional parsing Į +PASS XHTML1.0 Transitional parsing į +PASS XHTML1.0 Transitional parsing 𝕀 +PASS XHTML1.0 Transitional parsing 𝕚 +PASS XHTML1.0 Transitional parsing Ι +PASS XHTML1.0 Transitional parsing ι +PASS XHTML1.0 Transitional parsing ⨼ +PASS XHTML1.0 Transitional parsing ¿ +PASS XHTML1.0 Transitional parsing 𝒾 +PASS XHTML1.0 Transitional parsing ℐ +PASS XHTML1.0 Transitional parsing ∈ +PASS XHTML1.0 Transitional parsing ⋵ +PASS XHTML1.0 Transitional parsing ⋹ +PASS XHTML1.0 Transitional parsing ⋴ +PASS XHTML1.0 Transitional parsing ⋳ +PASS XHTML1.0 Transitional parsing ∈ +PASS XHTML1.0 Transitional parsing ⁢ +PASS XHTML1.0 Transitional parsing Ĩ +PASS XHTML1.0 Transitional parsing ĩ +PASS XHTML1.0 Transitional parsing І +PASS XHTML1.0 Transitional parsing і +PASS XHTML1.0 Transitional parsing Ï +PASS XHTML1.0 Transitional parsing ï +PASS XHTML1.0 Transitional parsing Ĵ +PASS XHTML1.0 Transitional parsing ĵ +PASS XHTML1.0 Transitional parsing Й +PASS XHTML1.0 Transitional parsing й +PASS XHTML1.0 Transitional parsing 𝔍 +PASS XHTML1.0 Transitional parsing 𝔧 +PASS XHTML1.0 Transitional parsing ȷ +PASS XHTML1.0 Transitional parsing 𝕁 +PASS XHTML1.0 Transitional parsing 𝕛 +PASS XHTML1.0 Transitional parsing 𝒥 +PASS XHTML1.0 Transitional parsing 𝒿 +PASS XHTML1.0 Transitional parsing Ј +PASS XHTML1.0 Transitional parsing ј +PASS XHTML1.0 Transitional parsing Є +PASS XHTML1.0 Transitional parsing є +PASS XHTML1.0 Transitional parsing Κ +PASS XHTML1.0 Transitional parsing κ +PASS XHTML1.0 Transitional parsing ϰ +PASS XHTML1.0 Transitional parsing Ķ +PASS XHTML1.0 Transitional parsing ķ +PASS XHTML1.0 Transitional parsing К +PASS XHTML1.0 Transitional parsing к +PASS XHTML1.0 Transitional parsing 𝔎 +PASS XHTML1.0 Transitional parsing 𝔨 +PASS XHTML1.0 Transitional parsing ĸ +PASS XHTML1.0 Transitional parsing Х +PASS XHTML1.0 Transitional parsing х +PASS XHTML1.0 Transitional parsing Ќ +PASS XHTML1.0 Transitional parsing ќ +PASS XHTML1.0 Transitional parsing 𝕂 +PASS XHTML1.0 Transitional parsing 𝕜 +PASS XHTML1.0 Transitional parsing 𝒦 +PASS XHTML1.0 Transitional parsing 𝓀 +PASS XHTML1.0 Transitional parsing ⇚ +PASS XHTML1.0 Transitional parsing Ĺ +PASS XHTML1.0 Transitional parsing ĺ +PASS XHTML1.0 Transitional parsing ⦴ +PASS XHTML1.0 Transitional parsing ℒ +PASS XHTML1.0 Transitional parsing Λ +PASS XHTML1.0 Transitional parsing λ +PASS XHTML1.0 Transitional parsing ⟨ +PASS XHTML1.0 Transitional parsing ⟪ +PASS XHTML1.0 Transitional parsing ⦑ +PASS XHTML1.0 Transitional parsing ⟨ +PASS XHTML1.0 Transitional parsing ⪅ +PASS XHTML1.0 Transitional parsing ℒ +PASS XHTML1.0 Transitional parsing « +PASS XHTML1.0 Transitional parsing ⇤ +PASS XHTML1.0 Transitional parsing ⤟ +PASS XHTML1.0 Transitional parsing ← +PASS XHTML1.0 Transitional parsing ↞ +PASS XHTML1.0 Transitional parsing ⇐ +PASS XHTML1.0 Transitional parsing ⤝ +PASS XHTML1.0 Transitional parsing ↩ +PASS XHTML1.0 Transitional parsing ↫ +PASS XHTML1.0 Transitional parsing ⤹ +PASS XHTML1.0 Transitional parsing ⥳ +PASS XHTML1.0 Transitional parsing ↢ +PASS XHTML1.0 Transitional parsing ⤙ +PASS XHTML1.0 Transitional parsing ⤛ +PASS XHTML1.0 Transitional parsing ⪫ +PASS XHTML1.0 Transitional parsing ⪭ +PASS XHTML1.0 Transitional parsing ⪭︀ +PASS XHTML1.0 Transitional parsing ⤌ +PASS XHTML1.0 Transitional parsing ⤎ +PASS XHTML1.0 Transitional parsing ❲ +PASS XHTML1.0 Transitional parsing { +PASS XHTML1.0 Transitional parsing [ +PASS XHTML1.0 Transitional parsing ⦋ +PASS XHTML1.0 Transitional parsing ⦏ +PASS XHTML1.0 Transitional parsing ⦍ +PASS XHTML1.0 Transitional parsing Ľ +PASS XHTML1.0 Transitional parsing ľ +PASS XHTML1.0 Transitional parsing Ļ +PASS XHTML1.0 Transitional parsing ļ +PASS XHTML1.0 Transitional parsing ⌈ +PASS XHTML1.0 Transitional parsing { +PASS XHTML1.0 Transitional parsing Л +PASS XHTML1.0 Transitional parsing л +PASS XHTML1.0 Transitional parsing ⤶ +PASS XHTML1.0 Transitional parsing “ +PASS XHTML1.0 Transitional parsing „ +PASS XHTML1.0 Transitional parsing ⥧ +PASS XHTML1.0 Transitional parsing ⥋ +PASS XHTML1.0 Transitional parsing ↲ +PASS XHTML1.0 Transitional parsing ≤ +PASS XHTML1.0 Transitional parsing ≦ +PASS XHTML1.0 Transitional parsing ⟨ +PASS XHTML1.0 Transitional parsing ⇤ +PASS XHTML1.0 Transitional parsing ← +PASS XHTML1.0 Transitional parsing ← +PASS XHTML1.0 Transitional parsing ⇐ +PASS XHTML1.0 Transitional parsing ⇆ +PASS XHTML1.0 Transitional parsing ↢ +PASS XHTML1.0 Transitional parsing ⌈ +PASS XHTML1.0 Transitional parsing ⟦ +PASS XHTML1.0 Transitional parsing ⥡ +PASS XHTML1.0 Transitional parsing ⥙ +PASS XHTML1.0 Transitional parsing ⇃ +PASS XHTML1.0 Transitional parsing ⌊ +PASS XHTML1.0 Transitional parsing ↽ +PASS XHTML1.0 Transitional parsing ↼ +PASS XHTML1.0 Transitional parsing ⇇ +PASS XHTML1.0 Transitional parsing ↔ +PASS XHTML1.0 Transitional parsing ↔ +PASS XHTML1.0 Transitional parsing ⇔ +PASS XHTML1.0 Transitional parsing ⇆ +PASS XHTML1.0 Transitional parsing ⇋ +PASS XHTML1.0 Transitional parsing ↭ +PASS XHTML1.0 Transitional parsing ⥎ +PASS XHTML1.0 Transitional parsing ↤ +PASS XHTML1.0 Transitional parsing ⊣ +PASS XHTML1.0 Transitional parsing ⥚ +PASS XHTML1.0 Transitional parsing ⋋ +PASS XHTML1.0 Transitional parsing ⧏ +PASS XHTML1.0 Transitional parsing ⊲ +PASS XHTML1.0 Transitional parsing ⊴ +PASS XHTML1.0 Transitional parsing ⥑ +PASS XHTML1.0 Transitional parsing ⥠ +PASS XHTML1.0 Transitional parsing ⥘ +PASS XHTML1.0 Transitional parsing ↿ +PASS XHTML1.0 Transitional parsing ⥒ +PASS XHTML1.0 Transitional parsing ↼ +PASS XHTML1.0 Transitional parsing ⪋ +PASS XHTML1.0 Transitional parsing ⋚ +PASS XHTML1.0 Transitional parsing ≤ +PASS XHTML1.0 Transitional parsing ≦ +PASS XHTML1.0 Transitional parsing ⩽ +PASS XHTML1.0 Transitional parsing ⪨ +PASS XHTML1.0 Transitional parsing ⩽ +PASS XHTML1.0 Transitional parsing ⩿ +PASS XHTML1.0 Transitional parsing ⪁ +PASS XHTML1.0 Transitional parsing ⪃ +PASS XHTML1.0 Transitional parsing ⋚︀ +PASS XHTML1.0 Transitional parsing ⪓ +PASS XHTML1.0 Transitional parsing ⪅ +PASS XHTML1.0 Transitional parsing ⋖ +PASS XHTML1.0 Transitional parsing ⋚ +PASS XHTML1.0 Transitional parsing ⪋ +PASS XHTML1.0 Transitional parsing ⋚ +PASS XHTML1.0 Transitional parsing ≦ +PASS XHTML1.0 Transitional parsing ≶ +PASS XHTML1.0 Transitional parsing ≶ +PASS XHTML1.0 Transitional parsing ⪡ +PASS XHTML1.0 Transitional parsing ≲ +PASS XHTML1.0 Transitional parsing ⩽ +PASS XHTML1.0 Transitional parsing ≲ +PASS XHTML1.0 Transitional parsing ⥼ +PASS XHTML1.0 Transitional parsing ⌊ +PASS XHTML1.0 Transitional parsing 𝔏 +PASS XHTML1.0 Transitional parsing 𝔩 +PASS XHTML1.0 Transitional parsing ≶ +PASS XHTML1.0 Transitional parsing ⪑ +PASS XHTML1.0 Transitional parsing ⥢ +PASS XHTML1.0 Transitional parsing ↽ +PASS XHTML1.0 Transitional parsing ↼ +PASS XHTML1.0 Transitional parsing ⥪ +PASS XHTML1.0 Transitional parsing ▄ +PASS XHTML1.0 Transitional parsing Љ +PASS XHTML1.0 Transitional parsing љ +PASS XHTML1.0 Transitional parsing ⇇ +PASS XHTML1.0 Transitional parsing ≪ +PASS XHTML1.0 Transitional parsing ⋘ +PASS XHTML1.0 Transitional parsing ⌞ +PASS XHTML1.0 Transitional parsing ⇚ +PASS XHTML1.0 Transitional parsing ⥫ +PASS XHTML1.0 Transitional parsing ◺ +PASS XHTML1.0 Transitional parsing Ŀ +PASS XHTML1.0 Transitional parsing ŀ +PASS XHTML1.0 Transitional parsing ⎰ +PASS XHTML1.0 Transitional parsing ⎰ +PASS XHTML1.0 Transitional parsing ⪉ +PASS XHTML1.0 Transitional parsing ⪉ +PASS XHTML1.0 Transitional parsing ⪇ +PASS XHTML1.0 Transitional parsing ≨ +PASS XHTML1.0 Transitional parsing ⪇ +PASS XHTML1.0 Transitional parsing ≨ +PASS XHTML1.0 Transitional parsing ⋦ +PASS XHTML1.0 Transitional parsing ⟬ +PASS XHTML1.0 Transitional parsing ⇽ +PASS XHTML1.0 Transitional parsing ⟦ +PASS XHTML1.0 Transitional parsing ⟵ +PASS XHTML1.0 Transitional parsing ⟵ +PASS XHTML1.0 Transitional parsing ⟸ +PASS XHTML1.0 Transitional parsing ⟷ +PASS XHTML1.0 Transitional parsing ⟷ +PASS XHTML1.0 Transitional parsing ⟺ +PASS XHTML1.0 Transitional parsing ⟼ +PASS XHTML1.0 Transitional parsing ⟶ +PASS XHTML1.0 Transitional parsing ⟶ +PASS XHTML1.0 Transitional parsing ⟹ +PASS XHTML1.0 Transitional parsing ↫ +PASS XHTML1.0 Transitional parsing ↬ +PASS XHTML1.0 Transitional parsing ⦅ +PASS XHTML1.0 Transitional parsing 𝕃 +PASS XHTML1.0 Transitional parsing 𝕝 +PASS XHTML1.0 Transitional parsing ⨭ +PASS XHTML1.0 Transitional parsing ⨴ +PASS XHTML1.0 Transitional parsing ∗ +PASS XHTML1.0 Transitional parsing _ +PASS XHTML1.0 Transitional parsing ↙ +PASS XHTML1.0 Transitional parsing ↘ +PASS XHTML1.0 Transitional parsing ◊ +PASS XHTML1.0 Transitional parsing ◊ +PASS XHTML1.0 Transitional parsing ⧫ +PASS XHTML1.0 Transitional parsing ( +PASS XHTML1.0 Transitional parsing ⦓ +PASS XHTML1.0 Transitional parsing ⇆ +PASS XHTML1.0 Transitional parsing ⌟ +PASS XHTML1.0 Transitional parsing ⇋ +PASS XHTML1.0 Transitional parsing ⥭ +PASS XHTML1.0 Transitional parsing ‎ +PASS XHTML1.0 Transitional parsing ⊿ +PASS XHTML1.0 Transitional parsing ‹ +PASS XHTML1.0 Transitional parsing 𝓁 +PASS XHTML1.0 Transitional parsing ℒ +PASS XHTML1.0 Transitional parsing ↰ +PASS XHTML1.0 Transitional parsing ↰ +PASS XHTML1.0 Transitional parsing ≲ +PASS XHTML1.0 Transitional parsing ⪍ +PASS XHTML1.0 Transitional parsing ⪏ +PASS XHTML1.0 Transitional parsing [ +PASS XHTML1.0 Transitional parsing ‘ +PASS XHTML1.0 Transitional parsing ‚ +PASS XHTML1.0 Transitional parsing Ł +PASS XHTML1.0 Transitional parsing ł +PASS XHTML1.0 Transitional parsing ⪦ +PASS XHTML1.0 Transitional parsing ⩹ +PASS XHTML1.0 Transitional parsing < +FAIL XHTML1.0 Transitional parsing < assert_true: expected true got false +PASS XHTML1.0 Transitional parsing ≪ +PASS XHTML1.0 Transitional parsing ⋖ +PASS XHTML1.0 Transitional parsing ⋋ +PASS XHTML1.0 Transitional parsing ⋉ +PASS XHTML1.0 Transitional parsing ⥶ +PASS XHTML1.0 Transitional parsing ⩻ +PASS XHTML1.0 Transitional parsing ◃ +PASS XHTML1.0 Transitional parsing ⊴ +PASS XHTML1.0 Transitional parsing ◂ +PASS XHTML1.0 Transitional parsing ⦖ +PASS XHTML1.0 Transitional parsing ⥊ +PASS XHTML1.0 Transitional parsing ⥦ +PASS XHTML1.0 Transitional parsing ≨︀ +PASS XHTML1.0 Transitional parsing ≨︀ +PASS XHTML1.0 Transitional parsing ¯ +PASS XHTML1.0 Transitional parsing ♂ +PASS XHTML1.0 Transitional parsing ✠ +PASS XHTML1.0 Transitional parsing ✠ +PASS XHTML1.0 Transitional parsing ⤅ +PASS XHTML1.0 Transitional parsing ↦ +PASS XHTML1.0 Transitional parsing ↦ +PASS XHTML1.0 Transitional parsing ↧ +PASS XHTML1.0 Transitional parsing ↤ +PASS XHTML1.0 Transitional parsing ↥ +PASS XHTML1.0 Transitional parsing ▮ +PASS XHTML1.0 Transitional parsing ⨩ +PASS XHTML1.0 Transitional parsing М +PASS XHTML1.0 Transitional parsing м +PASS XHTML1.0 Transitional parsing — +PASS XHTML1.0 Transitional parsing ∺ +PASS XHTML1.0 Transitional parsing ∡ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing ℳ +PASS XHTML1.0 Transitional parsing 𝔐 +PASS XHTML1.0 Transitional parsing 𝔪 +PASS XHTML1.0 Transitional parsing ℧ +PASS XHTML1.0 Transitional parsing µ +PASS XHTML1.0 Transitional parsing * +PASS XHTML1.0 Transitional parsing ⫰ +PASS XHTML1.0 Transitional parsing ∣ +PASS XHTML1.0 Transitional parsing · +PASS XHTML1.0 Transitional parsing ⊟ +PASS XHTML1.0 Transitional parsing − +PASS XHTML1.0 Transitional parsing ∸ +PASS XHTML1.0 Transitional parsing ⨪ +PASS XHTML1.0 Transitional parsing ∓ +PASS XHTML1.0 Transitional parsing ⫛ +PASS XHTML1.0 Transitional parsing … +PASS XHTML1.0 Transitional parsing ∓ +PASS XHTML1.0 Transitional parsing ⊧ +PASS XHTML1.0 Transitional parsing 𝕄 +PASS XHTML1.0 Transitional parsing 𝕞 +PASS XHTML1.0 Transitional parsing ∓ +PASS XHTML1.0 Transitional parsing 𝓂 +PASS XHTML1.0 Transitional parsing ℳ +PASS XHTML1.0 Transitional parsing ∾ +PASS XHTML1.0 Transitional parsing Μ +PASS XHTML1.0 Transitional parsing μ +PASS XHTML1.0 Transitional parsing ⊸ +PASS XHTML1.0 Transitional parsing ⊸ +PASS XHTML1.0 Transitional parsing ∇ +PASS XHTML1.0 Transitional parsing Ń +PASS XHTML1.0 Transitional parsing ń +PASS XHTML1.0 Transitional parsing ∠⃒ +PASS XHTML1.0 Transitional parsing ≉ +PASS XHTML1.0 Transitional parsing ⩰̸ +PASS XHTML1.0 Transitional parsing ≋̸ +PASS XHTML1.0 Transitional parsing ʼn +PASS XHTML1.0 Transitional parsing ≉ +PASS XHTML1.0 Transitional parsing ♮ +PASS XHTML1.0 Transitional parsing ℕ +PASS XHTML1.0 Transitional parsing ♮ +PASS XHTML1.0 Transitional parsing +PASS XHTML1.0 Transitional parsing ≎̸ +PASS XHTML1.0 Transitional parsing ≏̸ +PASS XHTML1.0 Transitional parsing ⩃ +PASS XHTML1.0 Transitional parsing Ň +PASS XHTML1.0 Transitional parsing ň +PASS XHTML1.0 Transitional parsing Ņ +PASS XHTML1.0 Transitional parsing ņ +PASS XHTML1.0 Transitional parsing ≇ +PASS XHTML1.0 Transitional parsing ⩭̸ +PASS XHTML1.0 Transitional parsing ⩂ +PASS XHTML1.0 Transitional parsing Н +PASS XHTML1.0 Transitional parsing н +PASS XHTML1.0 Transitional parsing – +PASS XHTML1.0 Transitional parsing ⤤ +PASS XHTML1.0 Transitional parsing ↗ +PASS XHTML1.0 Transitional parsing ⇗ +PASS XHTML1.0 Transitional parsing ↗ +PASS XHTML1.0 Transitional parsing ≠ +PASS XHTML1.0 Transitional parsing ≐̸ +PASS XHTML1.0 Transitional parsing ​ +PASS XHTML1.0 Transitional parsing ​ +PASS XHTML1.0 Transitional parsing ​ +PASS XHTML1.0 Transitional parsing ​ +PASS XHTML1.0 Transitional parsing ≢ +PASS XHTML1.0 Transitional parsing ⤨ +PASS XHTML1.0 Transitional parsing ≂̸ +PASS XHTML1.0 Transitional parsing ≫ +PASS XHTML1.0 Transitional parsing ≪ +PASS XHTML1.0 Transitional parsing 
 +PASS XHTML1.0 Transitional parsing ∄ +PASS XHTML1.0 Transitional parsing ∄ +PASS XHTML1.0 Transitional parsing 𝔑 +PASS XHTML1.0 Transitional parsing 𝔫 +PASS XHTML1.0 Transitional parsing ≧̸ +PASS XHTML1.0 Transitional parsing ≱ +PASS XHTML1.0 Transitional parsing ≱ +PASS XHTML1.0 Transitional parsing ≧̸ +PASS XHTML1.0 Transitional parsing ⩾̸ +PASS XHTML1.0 Transitional parsing ⩾̸ +PASS XHTML1.0 Transitional parsing ⋙̸ +PASS XHTML1.0 Transitional parsing ≵ +PASS XHTML1.0 Transitional parsing ≫⃒ +PASS XHTML1.0 Transitional parsing ≯ +PASS XHTML1.0 Transitional parsing ≯ +PASS XHTML1.0 Transitional parsing ≫̸ +PASS XHTML1.0 Transitional parsing ↮ +PASS XHTML1.0 Transitional parsing ⇎ +PASS XHTML1.0 Transitional parsing ⫲ +PASS XHTML1.0 Transitional parsing ∋ +PASS XHTML1.0 Transitional parsing ⋼ +PASS XHTML1.0 Transitional parsing ⋺ +PASS XHTML1.0 Transitional parsing ∋ +PASS XHTML1.0 Transitional parsing Њ +PASS XHTML1.0 Transitional parsing њ +PASS XHTML1.0 Transitional parsing ↚ +PASS XHTML1.0 Transitional parsing ⇍ +PASS XHTML1.0 Transitional parsing ‥ +PASS XHTML1.0 Transitional parsing ≦̸ +PASS XHTML1.0 Transitional parsing ≰ +PASS XHTML1.0 Transitional parsing ↚ +PASS XHTML1.0 Transitional parsing ⇍ +PASS XHTML1.0 Transitional parsing ↮ +PASS XHTML1.0 Transitional parsing ⇎ +PASS XHTML1.0 Transitional parsing ≰ +PASS XHTML1.0 Transitional parsing ≦̸ +PASS XHTML1.0 Transitional parsing ⩽̸ +PASS XHTML1.0 Transitional parsing ⩽̸ +PASS XHTML1.0 Transitional parsing ≮ +PASS XHTML1.0 Transitional parsing ⋘̸ +PASS XHTML1.0 Transitional parsing ≴ +PASS XHTML1.0 Transitional parsing ≪⃒ +PASS XHTML1.0 Transitional parsing ≮ +PASS XHTML1.0 Transitional parsing ⋪ +PASS XHTML1.0 Transitional parsing ⋬ +PASS XHTML1.0 Transitional parsing ≪̸ +PASS XHTML1.0 Transitional parsing ∤ +PASS XHTML1.0 Transitional parsing ⁠ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing 𝕟 +PASS XHTML1.0 Transitional parsing ℕ +PASS XHTML1.0 Transitional parsing ⫬ +PASS XHTML1.0 Transitional parsing ¬ +PASS XHTML1.0 Transitional parsing ≢ +PASS XHTML1.0 Transitional parsing ≭ +PASS XHTML1.0 Transitional parsing ∦ +PASS XHTML1.0 Transitional parsing ∉ +PASS XHTML1.0 Transitional parsing ≠ +PASS XHTML1.0 Transitional parsing ≂̸ +PASS XHTML1.0 Transitional parsing ∄ +PASS XHTML1.0 Transitional parsing ≯ +PASS XHTML1.0 Transitional parsing ≱ +PASS XHTML1.0 Transitional parsing ≧̸ +PASS XHTML1.0 Transitional parsing ≫̸ +PASS XHTML1.0 Transitional parsing ≹ +PASS XHTML1.0 Transitional parsing ⩾̸ +PASS XHTML1.0 Transitional parsing ≵ +PASS XHTML1.0 Transitional parsing ≎̸ +PASS XHTML1.0 Transitional parsing ≏̸ +PASS XHTML1.0 Transitional parsing ∉ +PASS XHTML1.0 Transitional parsing ⋵̸ +PASS XHTML1.0 Transitional parsing ⋹̸ +PASS XHTML1.0 Transitional parsing ∉ +PASS XHTML1.0 Transitional parsing ⋷ +PASS XHTML1.0 Transitional parsing ⋶ +PASS XHTML1.0 Transitional parsing ⧏̸ +PASS XHTML1.0 Transitional parsing ⋪ +PASS XHTML1.0 Transitional parsing ⋬ +PASS XHTML1.0 Transitional parsing ≮ +PASS XHTML1.0 Transitional parsing ≰ +PASS XHTML1.0 Transitional parsing ≸ +PASS XHTML1.0 Transitional parsing ≪̸ +PASS XHTML1.0 Transitional parsing ⩽̸ +PASS XHTML1.0 Transitional parsing ≴ +PASS XHTML1.0 Transitional parsing ⪢̸ +PASS XHTML1.0 Transitional parsing ⪡̸ +PASS XHTML1.0 Transitional parsing ∌ +PASS XHTML1.0 Transitional parsing ∌ +PASS XHTML1.0 Transitional parsing ⋾ +PASS XHTML1.0 Transitional parsing ⋽ +PASS XHTML1.0 Transitional parsing ⊀ +PASS XHTML1.0 Transitional parsing ⪯̸ +PASS XHTML1.0 Transitional parsing ⋠ +PASS XHTML1.0 Transitional parsing ∌ +PASS XHTML1.0 Transitional parsing ⧐̸ +PASS XHTML1.0 Transitional parsing ⋫ +PASS XHTML1.0 Transitional parsing ⋭ +PASS XHTML1.0 Transitional parsing ⊏̸ +PASS XHTML1.0 Transitional parsing ⋢ +PASS XHTML1.0 Transitional parsing ⊐̸ +PASS XHTML1.0 Transitional parsing ⋣ +PASS XHTML1.0 Transitional parsing ⊂⃒ +PASS XHTML1.0 Transitional parsing ⊈ +PASS XHTML1.0 Transitional parsing ⊁ +PASS XHTML1.0 Transitional parsing ⪰̸ +PASS XHTML1.0 Transitional parsing ⋡ +PASS XHTML1.0 Transitional parsing ≿̸ +PASS XHTML1.0 Transitional parsing ⊃⃒ +PASS XHTML1.0 Transitional parsing ⊉ +PASS XHTML1.0 Transitional parsing ≁ +PASS XHTML1.0 Transitional parsing ≄ +PASS XHTML1.0 Transitional parsing ≇ +PASS XHTML1.0 Transitional parsing ≉ +PASS XHTML1.0 Transitional parsing ∤ +PASS XHTML1.0 Transitional parsing ∦ +PASS XHTML1.0 Transitional parsing ∦ +PASS XHTML1.0 Transitional parsing ⫽⃥ +PASS XHTML1.0 Transitional parsing ∂̸ +PASS XHTML1.0 Transitional parsing ⨔ +PASS XHTML1.0 Transitional parsing ⊀ +PASS XHTML1.0 Transitional parsing ⋠ +PASS XHTML1.0 Transitional parsing ⊀ +PASS XHTML1.0 Transitional parsing ⪯̸ +PASS XHTML1.0 Transitional parsing ⪯̸ +PASS XHTML1.0 Transitional parsing ⤳̸ +PASS XHTML1.0 Transitional parsing ↛ +PASS XHTML1.0 Transitional parsing ⇏ +PASS XHTML1.0 Transitional parsing ↝̸ +PASS XHTML1.0 Transitional parsing ↛ +PASS XHTML1.0 Transitional parsing ⇏ +PASS XHTML1.0 Transitional parsing ⋫ +PASS XHTML1.0 Transitional parsing ⋭ +PASS XHTML1.0 Transitional parsing ⊁ +PASS XHTML1.0 Transitional parsing ⋡ +PASS XHTML1.0 Transitional parsing ⪰̸ +PASS XHTML1.0 Transitional parsing 𝒩 +PASS XHTML1.0 Transitional parsing 𝓃 +PASS XHTML1.0 Transitional parsing ∤ +PASS XHTML1.0 Transitional parsing ∦ +PASS XHTML1.0 Transitional parsing ≁ +PASS XHTML1.0 Transitional parsing ≄ +PASS XHTML1.0 Transitional parsing ≄ +PASS XHTML1.0 Transitional parsing ∤ +PASS XHTML1.0 Transitional parsing ∦ +PASS XHTML1.0 Transitional parsing ⋢ +PASS XHTML1.0 Transitional parsing ⋣ +PASS XHTML1.0 Transitional parsing ⊄ +PASS XHTML1.0 Transitional parsing ⫅̸ +PASS XHTML1.0 Transitional parsing ⊈ +PASS XHTML1.0 Transitional parsing ⊂⃒ +PASS XHTML1.0 Transitional parsing ⊈ +PASS XHTML1.0 Transitional parsing ⫅̸ +PASS XHTML1.0 Transitional parsing ⊁ +PASS XHTML1.0 Transitional parsing ⪰̸ +PASS XHTML1.0 Transitional parsing ⊅ +PASS XHTML1.0 Transitional parsing ⫆̸ +PASS XHTML1.0 Transitional parsing ⊉ +PASS XHTML1.0 Transitional parsing ⊃⃒ +PASS XHTML1.0 Transitional parsing ⊉ +PASS XHTML1.0 Transitional parsing ⫆̸ +PASS XHTML1.0 Transitional parsing ≹ +PASS XHTML1.0 Transitional parsing Ñ +PASS XHTML1.0 Transitional parsing ñ +PASS XHTML1.0 Transitional parsing ≸ +PASS XHTML1.0 Transitional parsing ⋪ +PASS XHTML1.0 Transitional parsing ⋬ +PASS XHTML1.0 Transitional parsing ⋫ +PASS XHTML1.0 Transitional parsing ⋭ +PASS XHTML1.0 Transitional parsing Ν +PASS XHTML1.0 Transitional parsing ν +PASS XHTML1.0 Transitional parsing # +PASS XHTML1.0 Transitional parsing № +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing ≍⃒ +PASS XHTML1.0 Transitional parsing ⊬ +PASS XHTML1.0 Transitional parsing ⊭ +PASS XHTML1.0 Transitional parsing ⊮ +PASS XHTML1.0 Transitional parsing ⊯ +PASS XHTML1.0 Transitional parsing ≥⃒ +PASS XHTML1.0 Transitional parsing >⃒ +PASS XHTML1.0 Transitional parsing ⤄ +PASS XHTML1.0 Transitional parsing ⧞ +PASS XHTML1.0 Transitional parsing ⤂ +PASS XHTML1.0 Transitional parsing ≤⃒ +FAIL XHTML1.0 Transitional parsing <⃒ assert_equals: XHTML1.0 Transitional parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML1.0 Transitional parsing ⊴⃒ +PASS XHTML1.0 Transitional parsing ⤃ +PASS XHTML1.0 Transitional parsing ⊵⃒ +PASS XHTML1.0 Transitional parsing ∼⃒ +PASS XHTML1.0 Transitional parsing ⤣ +PASS XHTML1.0 Transitional parsing ↖ +PASS XHTML1.0 Transitional parsing ⇖ +PASS XHTML1.0 Transitional parsing ↖ +PASS XHTML1.0 Transitional parsing ⤧ +PASS XHTML1.0 Transitional parsing Ó +PASS XHTML1.0 Transitional parsing ó +PASS XHTML1.0 Transitional parsing ⊛ +PASS XHTML1.0 Transitional parsing Ô +PASS XHTML1.0 Transitional parsing ô +PASS XHTML1.0 Transitional parsing ⊚ +PASS XHTML1.0 Transitional parsing О +PASS XHTML1.0 Transitional parsing о +PASS XHTML1.0 Transitional parsing ⊝ +PASS XHTML1.0 Transitional parsing Ő +PASS XHTML1.0 Transitional parsing ő +PASS XHTML1.0 Transitional parsing ⨸ +PASS XHTML1.0 Transitional parsing ⊙ +PASS XHTML1.0 Transitional parsing ⦼ +PASS XHTML1.0 Transitional parsing Œ +PASS XHTML1.0 Transitional parsing œ +PASS XHTML1.0 Transitional parsing ⦿ +PASS XHTML1.0 Transitional parsing 𝔒 +PASS XHTML1.0 Transitional parsing 𝔬 +PASS XHTML1.0 Transitional parsing ˛ +PASS XHTML1.0 Transitional parsing Ò +PASS XHTML1.0 Transitional parsing ò +PASS XHTML1.0 Transitional parsing ⧁ +PASS XHTML1.0 Transitional parsing ⦵ +PASS XHTML1.0 Transitional parsing Ω +PASS XHTML1.0 Transitional parsing ∮ +PASS XHTML1.0 Transitional parsing ↺ +PASS XHTML1.0 Transitional parsing ⦾ +PASS XHTML1.0 Transitional parsing ⦻ +PASS XHTML1.0 Transitional parsing ‾ +PASS XHTML1.0 Transitional parsing ⧀ +PASS XHTML1.0 Transitional parsing Ō +PASS XHTML1.0 Transitional parsing ō +PASS XHTML1.0 Transitional parsing Ω +PASS XHTML1.0 Transitional parsing ω +PASS XHTML1.0 Transitional parsing Ο +PASS XHTML1.0 Transitional parsing ο +PASS XHTML1.0 Transitional parsing ⦶ +PASS XHTML1.0 Transitional parsing ⊖ +PASS XHTML1.0 Transitional parsing 𝕆 +PASS XHTML1.0 Transitional parsing 𝕠 +PASS XHTML1.0 Transitional parsing ⦷ +PASS XHTML1.0 Transitional parsing “ +PASS XHTML1.0 Transitional parsing ‘ +PASS XHTML1.0 Transitional parsing ⦹ +PASS XHTML1.0 Transitional parsing ⊕ +PASS XHTML1.0 Transitional parsing ↻ +PASS XHTML1.0 Transitional parsing ⩔ +PASS XHTML1.0 Transitional parsing ∨ +PASS XHTML1.0 Transitional parsing ⩝ +PASS XHTML1.0 Transitional parsing ℴ +PASS XHTML1.0 Transitional parsing ℴ +PASS XHTML1.0 Transitional parsing ª +PASS XHTML1.0 Transitional parsing º +PASS XHTML1.0 Transitional parsing ⊶ +PASS XHTML1.0 Transitional parsing ⩖ +PASS XHTML1.0 Transitional parsing ⩗ +PASS XHTML1.0 Transitional parsing ⩛ +PASS XHTML1.0 Transitional parsing Ⓢ +PASS XHTML1.0 Transitional parsing 𝒪 +PASS XHTML1.0 Transitional parsing ℴ +PASS XHTML1.0 Transitional parsing Ø +PASS XHTML1.0 Transitional parsing ø +PASS XHTML1.0 Transitional parsing ⊘ +PASS XHTML1.0 Transitional parsing Õ +PASS XHTML1.0 Transitional parsing õ +PASS XHTML1.0 Transitional parsing ⨶ +PASS XHTML1.0 Transitional parsing ⨷ +PASS XHTML1.0 Transitional parsing ⊗ +PASS XHTML1.0 Transitional parsing Ö +PASS XHTML1.0 Transitional parsing ö +PASS XHTML1.0 Transitional parsing ⌽ +PASS XHTML1.0 Transitional parsing ‾ +PASS XHTML1.0 Transitional parsing ⏞ +PASS XHTML1.0 Transitional parsing ⎴ +PASS XHTML1.0 Transitional parsing ⏜ +PASS XHTML1.0 Transitional parsing ¶ +PASS XHTML1.0 Transitional parsing ∥ +PASS XHTML1.0 Transitional parsing ∥ +PASS XHTML1.0 Transitional parsing ⫳ +PASS XHTML1.0 Transitional parsing ⫽ +PASS XHTML1.0 Transitional parsing ∂ +PASS XHTML1.0 Transitional parsing ∂ +PASS XHTML1.0 Transitional parsing П +PASS XHTML1.0 Transitional parsing п +PASS XHTML1.0 Transitional parsing % +PASS XHTML1.0 Transitional parsing . +PASS XHTML1.0 Transitional parsing ‰ +PASS XHTML1.0 Transitional parsing ⊥ +PASS XHTML1.0 Transitional parsing ‱ +PASS XHTML1.0 Transitional parsing 𝔓 +PASS XHTML1.0 Transitional parsing 𝔭 +PASS XHTML1.0 Transitional parsing Φ +PASS XHTML1.0 Transitional parsing φ +PASS XHTML1.0 Transitional parsing ϕ +PASS XHTML1.0 Transitional parsing ℳ +PASS XHTML1.0 Transitional parsing ☎ +PASS XHTML1.0 Transitional parsing Π +PASS XHTML1.0 Transitional parsing π +PASS XHTML1.0 Transitional parsing ⋔ +PASS XHTML1.0 Transitional parsing ϖ +PASS XHTML1.0 Transitional parsing ℏ +PASS XHTML1.0 Transitional parsing ℎ +PASS XHTML1.0 Transitional parsing ℏ +PASS XHTML1.0 Transitional parsing ⨣ +PASS XHTML1.0 Transitional parsing ⊞ +PASS XHTML1.0 Transitional parsing ⨢ +PASS XHTML1.0 Transitional parsing + +PASS XHTML1.0 Transitional parsing ∔ +PASS XHTML1.0 Transitional parsing ⨥ +PASS XHTML1.0 Transitional parsing ⩲ +PASS XHTML1.0 Transitional parsing ± +PASS XHTML1.0 Transitional parsing ± +PASS XHTML1.0 Transitional parsing ⨦ +PASS XHTML1.0 Transitional parsing ⨧ +PASS XHTML1.0 Transitional parsing ± +PASS XHTML1.0 Transitional parsing ℌ +PASS XHTML1.0 Transitional parsing ⨕ +PASS XHTML1.0 Transitional parsing 𝕡 +PASS XHTML1.0 Transitional parsing ℙ +PASS XHTML1.0 Transitional parsing £ +PASS XHTML1.0 Transitional parsing ⪷ +PASS XHTML1.0 Transitional parsing ⪻ +PASS XHTML1.0 Transitional parsing ≺ +PASS XHTML1.0 Transitional parsing ≼ +PASS XHTML1.0 Transitional parsing ⪷ +PASS XHTML1.0 Transitional parsing ≺ +PASS XHTML1.0 Transitional parsing ≼ +PASS XHTML1.0 Transitional parsing ≺ +PASS XHTML1.0 Transitional parsing ⪯ +PASS XHTML1.0 Transitional parsing ≼ +PASS XHTML1.0 Transitional parsing ≾ +PASS XHTML1.0 Transitional parsing ⪯ +PASS XHTML1.0 Transitional parsing ⪹ +PASS XHTML1.0 Transitional parsing ⪵ +PASS XHTML1.0 Transitional parsing ⋨ +PASS XHTML1.0 Transitional parsing ⪯ +PASS XHTML1.0 Transitional parsing ⪳ +PASS XHTML1.0 Transitional parsing ≾ +PASS XHTML1.0 Transitional parsing ′ +PASS XHTML1.0 Transitional parsing ″ +PASS XHTML1.0 Transitional parsing ℙ +PASS XHTML1.0 Transitional parsing ⪹ +PASS XHTML1.0 Transitional parsing ⪵ +PASS XHTML1.0 Transitional parsing ⋨ +PASS XHTML1.0 Transitional parsing ∏ +PASS XHTML1.0 Transitional parsing ∏ +PASS XHTML1.0 Transitional parsing ⌮ +PASS XHTML1.0 Transitional parsing ⌒ +PASS XHTML1.0 Transitional parsing ⌓ +PASS XHTML1.0 Transitional parsing ∝ +PASS XHTML1.0 Transitional parsing ∝ +PASS XHTML1.0 Transitional parsing ∷ +PASS XHTML1.0 Transitional parsing ∝ +PASS XHTML1.0 Transitional parsing ≾ +PASS XHTML1.0 Transitional parsing ⊰ +PASS XHTML1.0 Transitional parsing 𝒫 +PASS XHTML1.0 Transitional parsing 𝓅 +PASS XHTML1.0 Transitional parsing Ψ +PASS XHTML1.0 Transitional parsing ψ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing 𝔔 +PASS XHTML1.0 Transitional parsing 𝔮 +PASS XHTML1.0 Transitional parsing ⨌ +PASS XHTML1.0 Transitional parsing 𝕢 +PASS XHTML1.0 Transitional parsing ℚ +PASS XHTML1.0 Transitional parsing ⁗ +PASS XHTML1.0 Transitional parsing 𝒬 +PASS XHTML1.0 Transitional parsing 𝓆 +PASS XHTML1.0 Transitional parsing ℍ +PASS XHTML1.0 Transitional parsing ⨖ +PASS XHTML1.0 Transitional parsing ? +PASS XHTML1.0 Transitional parsing ≟ +PASS XHTML1.0 Transitional parsing " +PASS XHTML1.0 Transitional parsing " +PASS XHTML1.0 Transitional parsing ⇛ +PASS XHTML1.0 Transitional parsing ∽̱ +PASS XHTML1.0 Transitional parsing Ŕ +PASS XHTML1.0 Transitional parsing ŕ +PASS XHTML1.0 Transitional parsing √ +PASS XHTML1.0 Transitional parsing ⦳ +PASS XHTML1.0 Transitional parsing ⟩ +PASS XHTML1.0 Transitional parsing ⟫ +PASS XHTML1.0 Transitional parsing ⦒ +PASS XHTML1.0 Transitional parsing ⦥ +PASS XHTML1.0 Transitional parsing ⟩ +PASS XHTML1.0 Transitional parsing » +PASS XHTML1.0 Transitional parsing ⥵ +PASS XHTML1.0 Transitional parsing ⇥ +PASS XHTML1.0 Transitional parsing ⤠ +PASS XHTML1.0 Transitional parsing ⤳ +PASS XHTML1.0 Transitional parsing → +PASS XHTML1.0 Transitional parsing ↠ +PASS XHTML1.0 Transitional parsing ⇒ +PASS XHTML1.0 Transitional parsing ⤞ +PASS XHTML1.0 Transitional parsing ↪ +PASS XHTML1.0 Transitional parsing ↬ +PASS XHTML1.0 Transitional parsing ⥅ +PASS XHTML1.0 Transitional parsing ⥴ +PASS XHTML1.0 Transitional parsing ⤖ +PASS XHTML1.0 Transitional parsing ↣ +PASS XHTML1.0 Transitional parsing ↝ +PASS XHTML1.0 Transitional parsing ⤚ +PASS XHTML1.0 Transitional parsing ⤜ +PASS XHTML1.0 Transitional parsing ∶ +PASS XHTML1.0 Transitional parsing ℚ +PASS XHTML1.0 Transitional parsing ⤍ +PASS XHTML1.0 Transitional parsing ⤏ +PASS XHTML1.0 Transitional parsing ⤐ +PASS XHTML1.0 Transitional parsing ❳ +PASS XHTML1.0 Transitional parsing } +PASS XHTML1.0 Transitional parsing ] +PASS XHTML1.0 Transitional parsing ⦌ +PASS XHTML1.0 Transitional parsing ⦎ +PASS XHTML1.0 Transitional parsing ⦐ +PASS XHTML1.0 Transitional parsing Ř +PASS XHTML1.0 Transitional parsing ř +PASS XHTML1.0 Transitional parsing Ŗ +PASS XHTML1.0 Transitional parsing ŗ +PASS XHTML1.0 Transitional parsing ⌉ +PASS XHTML1.0 Transitional parsing } +PASS XHTML1.0 Transitional parsing Р +PASS XHTML1.0 Transitional parsing р +PASS XHTML1.0 Transitional parsing ⤷ +PASS XHTML1.0 Transitional parsing ⥩ +PASS XHTML1.0 Transitional parsing ” +PASS XHTML1.0 Transitional parsing ” +PASS XHTML1.0 Transitional parsing ↳ +PASS XHTML1.0 Transitional parsing ℜ +PASS XHTML1.0 Transitional parsing ℛ +PASS XHTML1.0 Transitional parsing ℜ +PASS XHTML1.0 Transitional parsing ℝ +PASS XHTML1.0 Transitional parsing ℜ +PASS XHTML1.0 Transitional parsing ▭ +PASS XHTML1.0 Transitional parsing ® +PASS XHTML1.0 Transitional parsing ® +PASS XHTML1.0 Transitional parsing ∋ +PASS XHTML1.0 Transitional parsing ⇋ +PASS XHTML1.0 Transitional parsing ⥯ +PASS XHTML1.0 Transitional parsing ⥽ +PASS XHTML1.0 Transitional parsing ⌋ +PASS XHTML1.0 Transitional parsing 𝔯 +PASS XHTML1.0 Transitional parsing ℜ +PASS XHTML1.0 Transitional parsing ⥤ +PASS XHTML1.0 Transitional parsing ⇁ +PASS XHTML1.0 Transitional parsing ⇀ +PASS XHTML1.0 Transitional parsing ⥬ +PASS XHTML1.0 Transitional parsing Ρ +PASS XHTML1.0 Transitional parsing ρ +PASS XHTML1.0 Transitional parsing ϱ +PASS XHTML1.0 Transitional parsing ⟩ +PASS XHTML1.0 Transitional parsing ⇥ +PASS XHTML1.0 Transitional parsing → +PASS XHTML1.0 Transitional parsing → +PASS XHTML1.0 Transitional parsing ⇒ +PASS XHTML1.0 Transitional parsing ⇄ +PASS XHTML1.0 Transitional parsing ↣ +PASS XHTML1.0 Transitional parsing ⌉ +PASS XHTML1.0 Transitional parsing ⟧ +PASS XHTML1.0 Transitional parsing ⥝ +PASS XHTML1.0 Transitional parsing ⥕ +PASS XHTML1.0 Transitional parsing ⇂ +PASS XHTML1.0 Transitional parsing ⌋ +PASS XHTML1.0 Transitional parsing ⇁ +PASS XHTML1.0 Transitional parsing ⇀ +PASS XHTML1.0 Transitional parsing ⇄ +PASS XHTML1.0 Transitional parsing ⇌ +PASS XHTML1.0 Transitional parsing ⇉ +PASS XHTML1.0 Transitional parsing ↝ +PASS XHTML1.0 Transitional parsing ↦ +PASS XHTML1.0 Transitional parsing ⊢ +PASS XHTML1.0 Transitional parsing ⥛ +PASS XHTML1.0 Transitional parsing ⋌ +PASS XHTML1.0 Transitional parsing ⧐ +PASS XHTML1.0 Transitional parsing ⊳ +PASS XHTML1.0 Transitional parsing ⊵ +PASS XHTML1.0 Transitional parsing ⥏ +PASS XHTML1.0 Transitional parsing ⥜ +PASS XHTML1.0 Transitional parsing ⥔ +PASS XHTML1.0 Transitional parsing ↾ +PASS XHTML1.0 Transitional parsing ⥓ +PASS XHTML1.0 Transitional parsing ⇀ +PASS XHTML1.0 Transitional parsing ˚ +PASS XHTML1.0 Transitional parsing ≓ +PASS XHTML1.0 Transitional parsing ⇄ +PASS XHTML1.0 Transitional parsing ⇌ +PASS XHTML1.0 Transitional parsing ‏ +PASS XHTML1.0 Transitional parsing ⎱ +PASS XHTML1.0 Transitional parsing ⎱ +PASS XHTML1.0 Transitional parsing ⫮ +PASS XHTML1.0 Transitional parsing ⟭ +PASS XHTML1.0 Transitional parsing ⇾ +PASS XHTML1.0 Transitional parsing ⟧ +PASS XHTML1.0 Transitional parsing ⦆ +PASS XHTML1.0 Transitional parsing 𝕣 +PASS XHTML1.0 Transitional parsing ℝ +PASS XHTML1.0 Transitional parsing ⨮ +PASS XHTML1.0 Transitional parsing ⨵ +PASS XHTML1.0 Transitional parsing ⥰ +PASS XHTML1.0 Transitional parsing ) +PASS XHTML1.0 Transitional parsing ⦔ +PASS XHTML1.0 Transitional parsing ⨒ +PASS XHTML1.0 Transitional parsing ⇉ +PASS XHTML1.0 Transitional parsing ⇛ +PASS XHTML1.0 Transitional parsing › +PASS XHTML1.0 Transitional parsing 𝓇 +PASS XHTML1.0 Transitional parsing ℛ +PASS XHTML1.0 Transitional parsing ↱ +PASS XHTML1.0 Transitional parsing ↱ +PASS XHTML1.0 Transitional parsing ] +PASS XHTML1.0 Transitional parsing ’ +PASS XHTML1.0 Transitional parsing ’ +PASS XHTML1.0 Transitional parsing ⋌ +PASS XHTML1.0 Transitional parsing ⋊ +PASS XHTML1.0 Transitional parsing ▹ +PASS XHTML1.0 Transitional parsing ⊵ +PASS XHTML1.0 Transitional parsing ▸ +PASS XHTML1.0 Transitional parsing ⧎ +PASS XHTML1.0 Transitional parsing ⧴ +PASS XHTML1.0 Transitional parsing ⥨ +PASS XHTML1.0 Transitional parsing ℞ +PASS XHTML1.0 Transitional parsing Ś +PASS XHTML1.0 Transitional parsing ś +PASS XHTML1.0 Transitional parsing ‚ +PASS XHTML1.0 Transitional parsing ⪸ +PASS XHTML1.0 Transitional parsing Š +PASS XHTML1.0 Transitional parsing š +PASS XHTML1.0 Transitional parsing ⪼ +PASS XHTML1.0 Transitional parsing ≻ +PASS XHTML1.0 Transitional parsing ≽ +PASS XHTML1.0 Transitional parsing ⪰ +PASS XHTML1.0 Transitional parsing ⪴ +PASS XHTML1.0 Transitional parsing Ş +PASS XHTML1.0 Transitional parsing ş +PASS XHTML1.0 Transitional parsing Ŝ +PASS XHTML1.0 Transitional parsing ŝ +PASS XHTML1.0 Transitional parsing ⪺ +PASS XHTML1.0 Transitional parsing ⪶ +PASS XHTML1.0 Transitional parsing ⋩ +PASS XHTML1.0 Transitional parsing ⨓ +PASS XHTML1.0 Transitional parsing ≿ +PASS XHTML1.0 Transitional parsing С +PASS XHTML1.0 Transitional parsing с +PASS XHTML1.0 Transitional parsing ⊡ +PASS XHTML1.0 Transitional parsing ⋅ +PASS XHTML1.0 Transitional parsing ⩦ +PASS XHTML1.0 Transitional parsing ⤥ +PASS XHTML1.0 Transitional parsing ↘ +PASS XHTML1.0 Transitional parsing ⇘ +PASS XHTML1.0 Transitional parsing ↘ +PASS XHTML1.0 Transitional parsing § +PASS XHTML1.0 Transitional parsing ; +PASS XHTML1.0 Transitional parsing ⤩ +PASS XHTML1.0 Transitional parsing ∖ +PASS XHTML1.0 Transitional parsing ∖ +PASS XHTML1.0 Transitional parsing ✶ +PASS XHTML1.0 Transitional parsing 𝔖 +PASS XHTML1.0 Transitional parsing 𝔰 +PASS XHTML1.0 Transitional parsing ⌢ +PASS XHTML1.0 Transitional parsing ♯ +PASS XHTML1.0 Transitional parsing Щ +PASS XHTML1.0 Transitional parsing щ +PASS XHTML1.0 Transitional parsing Ш +PASS XHTML1.0 Transitional parsing ш +PASS XHTML1.0 Transitional parsing ↓ +PASS XHTML1.0 Transitional parsing ← +PASS XHTML1.0 Transitional parsing ∣ +PASS XHTML1.0 Transitional parsing ∥ +PASS XHTML1.0 Transitional parsing → +PASS XHTML1.0 Transitional parsing ↑ +PASS XHTML1.0 Transitional parsing ­ +PASS XHTML1.0 Transitional parsing Σ +PASS XHTML1.0 Transitional parsing σ +PASS XHTML1.0 Transitional parsing ς +PASS XHTML1.0 Transitional parsing ς +PASS XHTML1.0 Transitional parsing ∼ +PASS XHTML1.0 Transitional parsing ⩪ +PASS XHTML1.0 Transitional parsing ≃ +PASS XHTML1.0 Transitional parsing ≃ +PASS XHTML1.0 Transitional parsing ⪞ +PASS XHTML1.0 Transitional parsing ⪠ +PASS XHTML1.0 Transitional parsing ⪝ +PASS XHTML1.0 Transitional parsing ⪟ +PASS XHTML1.0 Transitional parsing ≆ +PASS XHTML1.0 Transitional parsing ⨤ +PASS XHTML1.0 Transitional parsing ⥲ +PASS XHTML1.0 Transitional parsing ← +PASS XHTML1.0 Transitional parsing ∘ +PASS XHTML1.0 Transitional parsing ∖ +PASS XHTML1.0 Transitional parsing ⨳ +PASS XHTML1.0 Transitional parsing ⧤ +PASS XHTML1.0 Transitional parsing ∣ +PASS XHTML1.0 Transitional parsing ⌣ +PASS XHTML1.0 Transitional parsing ⪪ +PASS XHTML1.0 Transitional parsing ⪬ +PASS XHTML1.0 Transitional parsing ⪬︀ +PASS XHTML1.0 Transitional parsing Ь +PASS XHTML1.0 Transitional parsing ь +PASS XHTML1.0 Transitional parsing ⌿ +PASS XHTML1.0 Transitional parsing ⧄ +PASS XHTML1.0 Transitional parsing / +PASS XHTML1.0 Transitional parsing 𝕊 +PASS XHTML1.0 Transitional parsing 𝕤 +PASS XHTML1.0 Transitional parsing ♠ +PASS XHTML1.0 Transitional parsing ♠ +PASS XHTML1.0 Transitional parsing ∥ +PASS XHTML1.0 Transitional parsing ⊓ +PASS XHTML1.0 Transitional parsing ⊓︀ +PASS XHTML1.0 Transitional parsing ⊔ +PASS XHTML1.0 Transitional parsing ⊔︀ +PASS XHTML1.0 Transitional parsing √ +PASS XHTML1.0 Transitional parsing ⊏ +PASS XHTML1.0 Transitional parsing ⊑ +PASS XHTML1.0 Transitional parsing ⊏ +PASS XHTML1.0 Transitional parsing ⊑ +PASS XHTML1.0 Transitional parsing ⊐ +PASS XHTML1.0 Transitional parsing ⊒ +PASS XHTML1.0 Transitional parsing ⊐ +PASS XHTML1.0 Transitional parsing ⊒ +PASS XHTML1.0 Transitional parsing □ +PASS XHTML1.0 Transitional parsing □ +PASS XHTML1.0 Transitional parsing ⊓ +PASS XHTML1.0 Transitional parsing ⊏ +PASS XHTML1.0 Transitional parsing ⊑ +PASS XHTML1.0 Transitional parsing ⊐ +PASS XHTML1.0 Transitional parsing ⊒ +PASS XHTML1.0 Transitional parsing ⊔ +PASS XHTML1.0 Transitional parsing ▪ +PASS XHTML1.0 Transitional parsing □ +PASS XHTML1.0 Transitional parsing ▪ +PASS XHTML1.0 Transitional parsing → +PASS XHTML1.0 Transitional parsing 𝒮 +PASS XHTML1.0 Transitional parsing 𝓈 +PASS XHTML1.0 Transitional parsing ∖ +PASS XHTML1.0 Transitional parsing ⌣ +PASS XHTML1.0 Transitional parsing ⋆ +PASS XHTML1.0 Transitional parsing ⋆ +PASS XHTML1.0 Transitional parsing ☆ +PASS XHTML1.0 Transitional parsing ★ +PASS XHTML1.0 Transitional parsing ϵ +PASS XHTML1.0 Transitional parsing ϕ +PASS XHTML1.0 Transitional parsing ¯ +PASS XHTML1.0 Transitional parsing ⊂ +PASS XHTML1.0 Transitional parsing ⋐ +PASS XHTML1.0 Transitional parsing ⪽ +PASS XHTML1.0 Transitional parsing ⫅ +PASS XHTML1.0 Transitional parsing ⊆ +PASS XHTML1.0 Transitional parsing ⫃ +PASS XHTML1.0 Transitional parsing ⫁ +PASS XHTML1.0 Transitional parsing ⫋ +PASS XHTML1.0 Transitional parsing ⊊ +PASS XHTML1.0 Transitional parsing ⪿ +PASS XHTML1.0 Transitional parsing ⥹ +PASS XHTML1.0 Transitional parsing ⊂ +PASS XHTML1.0 Transitional parsing ⋐ +PASS XHTML1.0 Transitional parsing ⊆ +PASS XHTML1.0 Transitional parsing ⫅ +PASS XHTML1.0 Transitional parsing ⊆ +PASS XHTML1.0 Transitional parsing ⊊ +PASS XHTML1.0 Transitional parsing ⫋ +PASS XHTML1.0 Transitional parsing ⫇ +PASS XHTML1.0 Transitional parsing ⫕ +PASS XHTML1.0 Transitional parsing ⫓ +PASS XHTML1.0 Transitional parsing ⪸ +PASS XHTML1.0 Transitional parsing ≻ +PASS XHTML1.0 Transitional parsing ≽ +PASS XHTML1.0 Transitional parsing ≻ +PASS XHTML1.0 Transitional parsing ⪰ +PASS XHTML1.0 Transitional parsing ≽ +PASS XHTML1.0 Transitional parsing ≿ +PASS XHTML1.0 Transitional parsing ⪰ +PASS XHTML1.0 Transitional parsing ⪺ +PASS XHTML1.0 Transitional parsing ⪶ +PASS XHTML1.0 Transitional parsing ⋩ +PASS XHTML1.0 Transitional parsing ≿ +PASS XHTML1.0 Transitional parsing ∋ +PASS XHTML1.0 Transitional parsing ∑ +PASS XHTML1.0 Transitional parsing ∑ +PASS XHTML1.0 Transitional parsing ♪ +PASS XHTML1.0 Transitional parsing ¹ +PASS XHTML1.0 Transitional parsing ² +PASS XHTML1.0 Transitional parsing ³ +PASS XHTML1.0 Transitional parsing ⊃ +PASS XHTML1.0 Transitional parsing ⋑ +PASS XHTML1.0 Transitional parsing ⪾ +PASS XHTML1.0 Transitional parsing ⫘ +PASS XHTML1.0 Transitional parsing ⫆ +PASS XHTML1.0 Transitional parsing ⊇ +PASS XHTML1.0 Transitional parsing ⫄ +PASS XHTML1.0 Transitional parsing ⊃ +PASS XHTML1.0 Transitional parsing ⊇ +PASS XHTML1.0 Transitional parsing ⟉ +PASS XHTML1.0 Transitional parsing ⫗ +PASS XHTML1.0 Transitional parsing ⥻ +PASS XHTML1.0 Transitional parsing ⫂ +PASS XHTML1.0 Transitional parsing ⫌ +PASS XHTML1.0 Transitional parsing ⊋ +PASS XHTML1.0 Transitional parsing ⫀ +PASS XHTML1.0 Transitional parsing ⊃ +PASS XHTML1.0 Transitional parsing ⋑ +PASS XHTML1.0 Transitional parsing ⊇ +PASS XHTML1.0 Transitional parsing ⫆ +PASS XHTML1.0 Transitional parsing ⊋ +PASS XHTML1.0 Transitional parsing ⫌ +PASS XHTML1.0 Transitional parsing ⫈ +PASS XHTML1.0 Transitional parsing ⫔ +PASS XHTML1.0 Transitional parsing ⫖ +PASS XHTML1.0 Transitional parsing ⤦ +PASS XHTML1.0 Transitional parsing ↙ +PASS XHTML1.0 Transitional parsing ⇙ +PASS XHTML1.0 Transitional parsing ↙ +PASS XHTML1.0 Transitional parsing ⤪ +PASS XHTML1.0 Transitional parsing ß +PASS XHTML1.0 Transitional parsing 	 +PASS XHTML1.0 Transitional parsing ⌖ +PASS XHTML1.0 Transitional parsing Τ +PASS XHTML1.0 Transitional parsing τ +PASS XHTML1.0 Transitional parsing ⎴ +PASS XHTML1.0 Transitional parsing Ť +PASS XHTML1.0 Transitional parsing ť +PASS XHTML1.0 Transitional parsing Ţ +PASS XHTML1.0 Transitional parsing ţ +PASS XHTML1.0 Transitional parsing Т +PASS XHTML1.0 Transitional parsing т +PASS XHTML1.0 Transitional parsing ⃛ +PASS XHTML1.0 Transitional parsing ⌕ +PASS XHTML1.0 Transitional parsing 𝔗 +PASS XHTML1.0 Transitional parsing 𝔱 +PASS XHTML1.0 Transitional parsing ∴ +PASS XHTML1.0 Transitional parsing ∴ +PASS XHTML1.0 Transitional parsing ∴ +PASS XHTML1.0 Transitional parsing Θ +PASS XHTML1.0 Transitional parsing θ +PASS XHTML1.0 Transitional parsing ϑ +PASS XHTML1.0 Transitional parsing ϑ +PASS XHTML1.0 Transitional parsing ≈ +PASS XHTML1.0 Transitional parsing ∼ +PASS XHTML1.0 Transitional parsing    +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing ≈ +PASS XHTML1.0 Transitional parsing ∼ +PASS XHTML1.0 Transitional parsing Þ +PASS XHTML1.0 Transitional parsing þ +PASS XHTML1.0 Transitional parsing ˜ +PASS XHTML1.0 Transitional parsing ∼ +PASS XHTML1.0 Transitional parsing ≃ +PASS XHTML1.0 Transitional parsing ≅ +PASS XHTML1.0 Transitional parsing ≈ +PASS XHTML1.0 Transitional parsing ⨱ +PASS XHTML1.0 Transitional parsing ⊠ +PASS XHTML1.0 Transitional parsing × +PASS XHTML1.0 Transitional parsing ⨰ +PASS XHTML1.0 Transitional parsing ∭ +PASS XHTML1.0 Transitional parsing ⤨ +PASS XHTML1.0 Transitional parsing ⌶ +PASS XHTML1.0 Transitional parsing ⫱ +PASS XHTML1.0 Transitional parsing ⊤ +PASS XHTML1.0 Transitional parsing 𝕋 +PASS XHTML1.0 Transitional parsing 𝕥 +PASS XHTML1.0 Transitional parsing ⫚ +PASS XHTML1.0 Transitional parsing ⤩ +PASS XHTML1.0 Transitional parsing ‴ +PASS XHTML1.0 Transitional parsing ™ +PASS XHTML1.0 Transitional parsing ™ +PASS XHTML1.0 Transitional parsing ▵ +PASS XHTML1.0 Transitional parsing ▿ +PASS XHTML1.0 Transitional parsing ◃ +PASS XHTML1.0 Transitional parsing ⊴ +PASS XHTML1.0 Transitional parsing ≜ +PASS XHTML1.0 Transitional parsing ▹ +PASS XHTML1.0 Transitional parsing ⊵ +PASS XHTML1.0 Transitional parsing ◬ +PASS XHTML1.0 Transitional parsing ≜ +PASS XHTML1.0 Transitional parsing ⨺ +PASS XHTML1.0 Transitional parsing ⃛ +PASS XHTML1.0 Transitional parsing ⨹ +PASS XHTML1.0 Transitional parsing ⧍ +PASS XHTML1.0 Transitional parsing ⨻ +PASS XHTML1.0 Transitional parsing ⏢ +PASS XHTML1.0 Transitional parsing 𝒯 +PASS XHTML1.0 Transitional parsing 𝓉 +PASS XHTML1.0 Transitional parsing Ц +PASS XHTML1.0 Transitional parsing ц +PASS XHTML1.0 Transitional parsing Ћ +PASS XHTML1.0 Transitional parsing ћ +PASS XHTML1.0 Transitional parsing Ŧ +PASS XHTML1.0 Transitional parsing ŧ +PASS XHTML1.0 Transitional parsing ≬ +PASS XHTML1.0 Transitional parsing ↞ +PASS XHTML1.0 Transitional parsing ↠ +PASS XHTML1.0 Transitional parsing Ú +PASS XHTML1.0 Transitional parsing ú +PASS XHTML1.0 Transitional parsing ↑ +PASS XHTML1.0 Transitional parsing ↟ +PASS XHTML1.0 Transitional parsing ⇑ +PASS XHTML1.0 Transitional parsing ⥉ +PASS XHTML1.0 Transitional parsing Ў +PASS XHTML1.0 Transitional parsing ў +PASS XHTML1.0 Transitional parsing Ŭ +PASS XHTML1.0 Transitional parsing ŭ +PASS XHTML1.0 Transitional parsing Û +PASS XHTML1.0 Transitional parsing û +PASS XHTML1.0 Transitional parsing У +PASS XHTML1.0 Transitional parsing у +PASS XHTML1.0 Transitional parsing ⇅ +PASS XHTML1.0 Transitional parsing Ű +PASS XHTML1.0 Transitional parsing ű +PASS XHTML1.0 Transitional parsing ⥮ +PASS XHTML1.0 Transitional parsing ⥾ +PASS XHTML1.0 Transitional parsing 𝔘 +PASS XHTML1.0 Transitional parsing 𝔲 +PASS XHTML1.0 Transitional parsing Ù +PASS XHTML1.0 Transitional parsing ù +PASS XHTML1.0 Transitional parsing ⥣ +PASS XHTML1.0 Transitional parsing ↿ +PASS XHTML1.0 Transitional parsing ↾ +PASS XHTML1.0 Transitional parsing ▀ +PASS XHTML1.0 Transitional parsing ⌜ +PASS XHTML1.0 Transitional parsing ⌜ +PASS XHTML1.0 Transitional parsing ⌏ +PASS XHTML1.0 Transitional parsing ◸ +PASS XHTML1.0 Transitional parsing Ū +PASS XHTML1.0 Transitional parsing ū +PASS XHTML1.0 Transitional parsing ¨ +PASS XHTML1.0 Transitional parsing _ +PASS XHTML1.0 Transitional parsing ⏟ +PASS XHTML1.0 Transitional parsing ⎵ +PASS XHTML1.0 Transitional parsing ⏝ +PASS XHTML1.0 Transitional parsing ⋃ +PASS XHTML1.0 Transitional parsing ⊎ +PASS XHTML1.0 Transitional parsing Ų +PASS XHTML1.0 Transitional parsing ų +PASS XHTML1.0 Transitional parsing 𝕌 +PASS XHTML1.0 Transitional parsing 𝕦 +PASS XHTML1.0 Transitional parsing ⤒ +PASS XHTML1.0 Transitional parsing ↑ +PASS XHTML1.0 Transitional parsing ↑ +PASS XHTML1.0 Transitional parsing ⇑ +PASS XHTML1.0 Transitional parsing ⇅ +PASS XHTML1.0 Transitional parsing ↕ +PASS XHTML1.0 Transitional parsing ↕ +PASS XHTML1.0 Transitional parsing ⇕ +PASS XHTML1.0 Transitional parsing ⥮ +PASS XHTML1.0 Transitional parsing ↿ +PASS XHTML1.0 Transitional parsing ↾ +PASS XHTML1.0 Transitional parsing ⊎ +PASS XHTML1.0 Transitional parsing ↖ +PASS XHTML1.0 Transitional parsing ↗ +PASS XHTML1.0 Transitional parsing υ +PASS XHTML1.0 Transitional parsing ϒ +PASS XHTML1.0 Transitional parsing ϒ +PASS XHTML1.0 Transitional parsing Υ +PASS XHTML1.0 Transitional parsing υ +PASS XHTML1.0 Transitional parsing ↥ +PASS XHTML1.0 Transitional parsing ⊥ +PASS XHTML1.0 Transitional parsing ⇈ +PASS XHTML1.0 Transitional parsing ⌝ +PASS XHTML1.0 Transitional parsing ⌝ +PASS XHTML1.0 Transitional parsing ⌎ +PASS XHTML1.0 Transitional parsing Ů +PASS XHTML1.0 Transitional parsing ů +PASS XHTML1.0 Transitional parsing ◹ +PASS XHTML1.0 Transitional parsing 𝒰 +PASS XHTML1.0 Transitional parsing 𝓊 +PASS XHTML1.0 Transitional parsing ⋰ +PASS XHTML1.0 Transitional parsing Ũ +PASS XHTML1.0 Transitional parsing ũ +PASS XHTML1.0 Transitional parsing ▵ +PASS XHTML1.0 Transitional parsing ▴ +PASS XHTML1.0 Transitional parsing ⇈ +PASS XHTML1.0 Transitional parsing Ü +PASS XHTML1.0 Transitional parsing ü +PASS XHTML1.0 Transitional parsing ⦧ +PASS XHTML1.0 Transitional parsing ⦜ +PASS XHTML1.0 Transitional parsing ϵ +PASS XHTML1.0 Transitional parsing ϰ +PASS XHTML1.0 Transitional parsing ∅ +PASS XHTML1.0 Transitional parsing ϕ +PASS XHTML1.0 Transitional parsing ϖ +PASS XHTML1.0 Transitional parsing ∝ +PASS XHTML1.0 Transitional parsing ↕ +PASS XHTML1.0 Transitional parsing ⇕ +PASS XHTML1.0 Transitional parsing ϱ +PASS XHTML1.0 Transitional parsing ς +PASS XHTML1.0 Transitional parsing ⊊︀ +PASS XHTML1.0 Transitional parsing ⫋︀ +PASS XHTML1.0 Transitional parsing ⊋︀ +PASS XHTML1.0 Transitional parsing ⫌︀ +PASS XHTML1.0 Transitional parsing ϑ +PASS XHTML1.0 Transitional parsing ⊲ +PASS XHTML1.0 Transitional parsing ⊳ +PASS XHTML1.0 Transitional parsing ⫨ +PASS XHTML1.0 Transitional parsing ⫫ +PASS XHTML1.0 Transitional parsing ⫩ +PASS XHTML1.0 Transitional parsing В +PASS XHTML1.0 Transitional parsing в +PASS XHTML1.0 Transitional parsing ⊢ +PASS XHTML1.0 Transitional parsing ⊨ +PASS XHTML1.0 Transitional parsing ⊩ +PASS XHTML1.0 Transitional parsing ⊫ +PASS XHTML1.0 Transitional parsing ⫦ +PASS XHTML1.0 Transitional parsing ⊻ +PASS XHTML1.0 Transitional parsing ∨ +PASS XHTML1.0 Transitional parsing ⋁ +PASS XHTML1.0 Transitional parsing ≚ +PASS XHTML1.0 Transitional parsing ⋮ +PASS XHTML1.0 Transitional parsing | +PASS XHTML1.0 Transitional parsing ‖ +PASS XHTML1.0 Transitional parsing | +PASS XHTML1.0 Transitional parsing ‖ +PASS XHTML1.0 Transitional parsing ∣ +PASS XHTML1.0 Transitional parsing | +PASS XHTML1.0 Transitional parsing ❘ +PASS XHTML1.0 Transitional parsing ≀ +PASS XHTML1.0 Transitional parsing   +PASS XHTML1.0 Transitional parsing 𝔙 +PASS XHTML1.0 Transitional parsing 𝔳 +PASS XHTML1.0 Transitional parsing ⊲ +PASS XHTML1.0 Transitional parsing ⊂⃒ +PASS XHTML1.0 Transitional parsing ⊃⃒ +PASS XHTML1.0 Transitional parsing 𝕍 +PASS XHTML1.0 Transitional parsing 𝕧 +PASS XHTML1.0 Transitional parsing ∝ +PASS XHTML1.0 Transitional parsing ⊳ +PASS XHTML1.0 Transitional parsing 𝒱 +PASS XHTML1.0 Transitional parsing 𝓋 +PASS XHTML1.0 Transitional parsing ⫋︀ +PASS XHTML1.0 Transitional parsing ⊊︀ +PASS XHTML1.0 Transitional parsing ⫌︀ +PASS XHTML1.0 Transitional parsing ⊋︀ +PASS XHTML1.0 Transitional parsing ⊪ +PASS XHTML1.0 Transitional parsing ⦚ +PASS XHTML1.0 Transitional parsing Ŵ +PASS XHTML1.0 Transitional parsing ŵ +PASS XHTML1.0 Transitional parsing ⩟ +PASS XHTML1.0 Transitional parsing ∧ +PASS XHTML1.0 Transitional parsing ⋀ +PASS XHTML1.0 Transitional parsing ≙ +PASS XHTML1.0 Transitional parsing ℘ +PASS XHTML1.0 Transitional parsing 𝔚 +PASS XHTML1.0 Transitional parsing 𝔴 +PASS XHTML1.0 Transitional parsing 𝕎 +PASS XHTML1.0 Transitional parsing 𝕨 +PASS XHTML1.0 Transitional parsing ℘ +PASS XHTML1.0 Transitional parsing ≀ +PASS XHTML1.0 Transitional parsing ≀ +PASS XHTML1.0 Transitional parsing 𝒲 +PASS XHTML1.0 Transitional parsing 𝓌 +PASS XHTML1.0 Transitional parsing ⋂ +PASS XHTML1.0 Transitional parsing ◯ +PASS XHTML1.0 Transitional parsing ⋃ +PASS XHTML1.0 Transitional parsing ▽ +PASS XHTML1.0 Transitional parsing 𝔛 +PASS XHTML1.0 Transitional parsing 𝔵 +PASS XHTML1.0 Transitional parsing ⟷ +PASS XHTML1.0 Transitional parsing ⟺ +PASS XHTML1.0 Transitional parsing Ξ +PASS XHTML1.0 Transitional parsing ξ +PASS XHTML1.0 Transitional parsing ⟵ +PASS XHTML1.0 Transitional parsing ⟸ +PASS XHTML1.0 Transitional parsing ⟼ +PASS XHTML1.0 Transitional parsing ⋻ +PASS XHTML1.0 Transitional parsing ⨀ +PASS XHTML1.0 Transitional parsing 𝕏 +PASS XHTML1.0 Transitional parsing 𝕩 +PASS XHTML1.0 Transitional parsing ⨁ +PASS XHTML1.0 Transitional parsing ⨂ +PASS XHTML1.0 Transitional parsing ⟶ +PASS XHTML1.0 Transitional parsing ⟹ +PASS XHTML1.0 Transitional parsing 𝒳 +PASS XHTML1.0 Transitional parsing 𝓍 +PASS XHTML1.0 Transitional parsing ⨆ +PASS XHTML1.0 Transitional parsing ⨄ +PASS XHTML1.0 Transitional parsing △ +PASS XHTML1.0 Transitional parsing ⋁ +PASS XHTML1.0 Transitional parsing ⋀ +PASS XHTML1.0 Transitional parsing Ý +PASS XHTML1.0 Transitional parsing ý +PASS XHTML1.0 Transitional parsing Я +PASS XHTML1.0 Transitional parsing я +PASS XHTML1.0 Transitional parsing Ŷ +PASS XHTML1.0 Transitional parsing ŷ +PASS XHTML1.0 Transitional parsing Ы +PASS XHTML1.0 Transitional parsing ы +PASS XHTML1.0 Transitional parsing ¥ +PASS XHTML1.0 Transitional parsing 𝔜 +PASS XHTML1.0 Transitional parsing 𝔶 +PASS XHTML1.0 Transitional parsing Ї +PASS XHTML1.0 Transitional parsing ї +PASS XHTML1.0 Transitional parsing 𝕐 +PASS XHTML1.0 Transitional parsing 𝕪 +PASS XHTML1.0 Transitional parsing 𝒴 +PASS XHTML1.0 Transitional parsing 𝓎 +PASS XHTML1.0 Transitional parsing Ю +PASS XHTML1.0 Transitional parsing ю +PASS XHTML1.0 Transitional parsing ÿ +PASS XHTML1.0 Transitional parsing Ÿ +PASS XHTML1.0 Transitional parsing Ź +PASS XHTML1.0 Transitional parsing ź +PASS XHTML1.0 Transitional parsing Ž +PASS XHTML1.0 Transitional parsing ž +PASS XHTML1.0 Transitional parsing З +PASS XHTML1.0 Transitional parsing з +PASS XHTML1.0 Transitional parsing Ż +PASS XHTML1.0 Transitional parsing ż +PASS XHTML1.0 Transitional parsing ℨ +PASS XHTML1.0 Transitional parsing ​ +PASS XHTML1.0 Transitional parsing Ζ +PASS XHTML1.0 Transitional parsing ζ +PASS XHTML1.0 Transitional parsing 𝔷 +PASS XHTML1.0 Transitional parsing ℨ +PASS XHTML1.0 Transitional parsing Ж +PASS XHTML1.0 Transitional parsing ж +PASS XHTML1.0 Transitional parsing ⇝ +PASS XHTML1.0 Transitional parsing 𝕫 +PASS XHTML1.0 Transitional parsing ℤ +PASS XHTML1.0 Transitional parsing 𝒵 +PASS XHTML1.0 Transitional parsing 𝓏 +PASS XHTML1.0 Transitional parsing ‍ +PASS XHTML1.0 Transitional parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm new file mode 100644 index 0000000..4025e2a4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML 1.0 Transitional//EN", "foo", "XHTML1.0 Transitional"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm new file mode 100644 index 0000000..698239e1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["text/html", null, null, "HTML"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2-expected.txt new file mode 100644 index 0000000..7c9166ed --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML1.1 parsing Á +PASS XHTML1.1 parsing á +PASS XHTML1.1 parsing Ă +PASS XHTML1.1 parsing ă +PASS XHTML1.1 parsing ∾ +PASS XHTML1.1 parsing ∿ +PASS XHTML1.1 parsing ∾̳ +PASS XHTML1.1 parsing  +PASS XHTML1.1 parsing â +PASS XHTML1.1 parsing ´ +PASS XHTML1.1 parsing А +PASS XHTML1.1 parsing а +PASS XHTML1.1 parsing Æ +PASS XHTML1.1 parsing æ +PASS XHTML1.1 parsing ⁡ +PASS XHTML1.1 parsing 𝔄 +PASS XHTML1.1 parsing 𝔞 +PASS XHTML1.1 parsing À +PASS XHTML1.1 parsing à +PASS XHTML1.1 parsing ℵ +PASS XHTML1.1 parsing ℵ +PASS XHTML1.1 parsing Α +PASS XHTML1.1 parsing α +PASS XHTML1.1 parsing Ā +PASS XHTML1.1 parsing ā +PASS XHTML1.1 parsing ⨿ +PASS XHTML1.1 parsing & +FAIL XHTML1.1 parsing & assert_true: expected true got false +PASS XHTML1.1 parsing ⩕ +PASS XHTML1.1 parsing ⩓ +PASS XHTML1.1 parsing ∧ +PASS XHTML1.1 parsing ⩜ +PASS XHTML1.1 parsing ⩘ +PASS XHTML1.1 parsing ⩚ +PASS XHTML1.1 parsing ∠ +PASS XHTML1.1 parsing ⦤ +PASS XHTML1.1 parsing ∠ +PASS XHTML1.1 parsing ⦨ +PASS XHTML1.1 parsing ⦩ +PASS XHTML1.1 parsing ⦪ +PASS XHTML1.1 parsing ⦫ +PASS XHTML1.1 parsing ⦬ +PASS XHTML1.1 parsing ⦭ +PASS XHTML1.1 parsing ⦮ +PASS XHTML1.1 parsing ⦯ +PASS XHTML1.1 parsing ∡ +PASS XHTML1.1 parsing ∟ +PASS XHTML1.1 parsing ⊾ +PASS XHTML1.1 parsing ⦝ +PASS XHTML1.1 parsing ∢ +PASS XHTML1.1 parsing Å +PASS XHTML1.1 parsing ⍼ +PASS XHTML1.1 parsing Ą +PASS XHTML1.1 parsing ą +PASS XHTML1.1 parsing 𝔸 +PASS XHTML1.1 parsing 𝕒 +PASS XHTML1.1 parsing ⩯ +PASS XHTML1.1 parsing ≈ +PASS XHTML1.1 parsing ⩰ +PASS XHTML1.1 parsing ≊ +PASS XHTML1.1 parsing ≋ +PASS XHTML1.1 parsing ' +PASS XHTML1.1 parsing ⁡ +PASS XHTML1.1 parsing ≈ +PASS XHTML1.1 parsing ≊ +PASS XHTML1.1 parsing Å +PASS XHTML1.1 parsing å +PASS XHTML1.1 parsing 𝒜 +PASS XHTML1.1 parsing 𝒶 +PASS XHTML1.1 parsing ≔ +PASS XHTML1.1 parsing * +PASS XHTML1.1 parsing ≈ +PASS XHTML1.1 parsing ≍ +PASS XHTML1.1 parsing à +PASS XHTML1.1 parsing ã +PASS XHTML1.1 parsing Ä +PASS XHTML1.1 parsing ä +PASS XHTML1.1 parsing ∳ +PASS XHTML1.1 parsing ⨑ +PASS XHTML1.1 parsing ≌ +PASS XHTML1.1 parsing ϶ +PASS XHTML1.1 parsing ‵ +PASS XHTML1.1 parsing ∽ +PASS XHTML1.1 parsing ⋍ +PASS XHTML1.1 parsing ∖ +PASS XHTML1.1 parsing ⫧ +PASS XHTML1.1 parsing ⊽ +PASS XHTML1.1 parsing ⌅ +PASS XHTML1.1 parsing ⌆ +PASS XHTML1.1 parsing ⌅ +PASS XHTML1.1 parsing ⎵ +PASS XHTML1.1 parsing ⎶ +PASS XHTML1.1 parsing ≌ +PASS XHTML1.1 parsing Б +PASS XHTML1.1 parsing б +PASS XHTML1.1 parsing „ +PASS XHTML1.1 parsing ∵ +PASS XHTML1.1 parsing ∵ +PASS XHTML1.1 parsing ∵ +PASS XHTML1.1 parsing ⦰ +PASS XHTML1.1 parsing ϶ +PASS XHTML1.1 parsing ℬ +PASS XHTML1.1 parsing ℬ +PASS XHTML1.1 parsing Β +PASS XHTML1.1 parsing β +PASS XHTML1.1 parsing ℶ +PASS XHTML1.1 parsing ≬ +PASS XHTML1.1 parsing 𝔅 +PASS XHTML1.1 parsing 𝔟 +PASS XHTML1.1 parsing ⋂ +PASS XHTML1.1 parsing ◯ +PASS XHTML1.1 parsing ⋃ +PASS XHTML1.1 parsing ⨀ +PASS XHTML1.1 parsing ⨁ +PASS XHTML1.1 parsing ⨂ +PASS XHTML1.1 parsing ⨆ +PASS XHTML1.1 parsing ★ +PASS XHTML1.1 parsing ▽ +PASS XHTML1.1 parsing △ +PASS XHTML1.1 parsing ⨄ +PASS XHTML1.1 parsing ⋁ +PASS XHTML1.1 parsing ⋀ +PASS XHTML1.1 parsing ⤍ +PASS XHTML1.1 parsing ⧫ +PASS XHTML1.1 parsing ▪ +PASS XHTML1.1 parsing ▴ +PASS XHTML1.1 parsing ▾ +PASS XHTML1.1 parsing ◂ +PASS XHTML1.1 parsing ▸ +PASS XHTML1.1 parsing ␣ +PASS XHTML1.1 parsing ▒ +PASS XHTML1.1 parsing ░ +PASS XHTML1.1 parsing ▓ +PASS XHTML1.1 parsing █ +PASS XHTML1.1 parsing =⃥ +PASS XHTML1.1 parsing ≡⃥ +PASS XHTML1.1 parsing ⫭ +PASS XHTML1.1 parsing ⌐ +PASS XHTML1.1 parsing 𝔹 +PASS XHTML1.1 parsing 𝕓 +PASS XHTML1.1 parsing ⊥ +PASS XHTML1.1 parsing ⊥ +PASS XHTML1.1 parsing ⋈ +PASS XHTML1.1 parsing ⧉ +PASS XHTML1.1 parsing ┐ +PASS XHTML1.1 parsing ╕ +PASS XHTML1.1 parsing ╖ +PASS XHTML1.1 parsing ╗ +PASS XHTML1.1 parsing ┌ +PASS XHTML1.1 parsing ╒ +PASS XHTML1.1 parsing ╓ +PASS XHTML1.1 parsing ╔ +PASS XHTML1.1 parsing ─ +PASS XHTML1.1 parsing ═ +PASS XHTML1.1 parsing ┬ +PASS XHTML1.1 parsing ╤ +PASS XHTML1.1 parsing ╥ +PASS XHTML1.1 parsing ╦ +PASS XHTML1.1 parsing ┴ +PASS XHTML1.1 parsing ╧ +PASS XHTML1.1 parsing ╨ +PASS XHTML1.1 parsing ╩ +PASS XHTML1.1 parsing ⊟ +PASS XHTML1.1 parsing ⊞ +PASS XHTML1.1 parsing ⊠ +PASS XHTML1.1 parsing ┘ +PASS XHTML1.1 parsing ╛ +PASS XHTML1.1 parsing ╜ +PASS XHTML1.1 parsing ╝ +PASS XHTML1.1 parsing └ +PASS XHTML1.1 parsing ╘ +PASS XHTML1.1 parsing ╙ +PASS XHTML1.1 parsing ╚ +PASS XHTML1.1 parsing │ +PASS XHTML1.1 parsing ║ +PASS XHTML1.1 parsing ┼ +PASS XHTML1.1 parsing ╪ +PASS XHTML1.1 parsing ╫ +PASS XHTML1.1 parsing ╬ +PASS XHTML1.1 parsing ┤ +PASS XHTML1.1 parsing ╡ +PASS XHTML1.1 parsing ╢ +PASS XHTML1.1 parsing ╣ +PASS XHTML1.1 parsing ├ +PASS XHTML1.1 parsing ╞ +PASS XHTML1.1 parsing ╟ +PASS XHTML1.1 parsing ╠ +PASS XHTML1.1 parsing ‵ +PASS XHTML1.1 parsing ˘ +PASS XHTML1.1 parsing ˘ +PASS XHTML1.1 parsing ¦ +PASS XHTML1.1 parsing 𝒷 +PASS XHTML1.1 parsing ℬ +PASS XHTML1.1 parsing ⁏ +PASS XHTML1.1 parsing ∽ +PASS XHTML1.1 parsing ⋍ +PASS XHTML1.1 parsing ⧅ +PASS XHTML1.1 parsing \ +PASS XHTML1.1 parsing ⟈ +PASS XHTML1.1 parsing • +PASS XHTML1.1 parsing • +PASS XHTML1.1 parsing ≎ +PASS XHTML1.1 parsing ⪮ +PASS XHTML1.1 parsing ≏ +PASS XHTML1.1 parsing ≎ +PASS XHTML1.1 parsing ≏ +PASS XHTML1.1 parsing Ć +PASS XHTML1.1 parsing ć +PASS XHTML1.1 parsing ⩄ +PASS XHTML1.1 parsing ⩉ +PASS XHTML1.1 parsing ⩋ +PASS XHTML1.1 parsing ∩ +PASS XHTML1.1 parsing ⋒ +PASS XHTML1.1 parsing ⩇ +PASS XHTML1.1 parsing ⩀ +PASS XHTML1.1 parsing ⅅ +PASS XHTML1.1 parsing ∩︀ +PASS XHTML1.1 parsing ⁁ +PASS XHTML1.1 parsing ˇ +PASS XHTML1.1 parsing ℭ +PASS XHTML1.1 parsing ⩍ +PASS XHTML1.1 parsing Č +PASS XHTML1.1 parsing č +PASS XHTML1.1 parsing Ç +PASS XHTML1.1 parsing ç +PASS XHTML1.1 parsing Ĉ +PASS XHTML1.1 parsing ĉ +PASS XHTML1.1 parsing ∰ +PASS XHTML1.1 parsing ⩌ +PASS XHTML1.1 parsing ⩐ +PASS XHTML1.1 parsing Ċ +PASS XHTML1.1 parsing ċ +PASS XHTML1.1 parsing ¸ +PASS XHTML1.1 parsing ¸ +PASS XHTML1.1 parsing ⦲ +PASS XHTML1.1 parsing ¢ +PASS XHTML1.1 parsing · +PASS XHTML1.1 parsing · +PASS XHTML1.1 parsing 𝔠 +PASS XHTML1.1 parsing ℭ +PASS XHTML1.1 parsing Ч +PASS XHTML1.1 parsing ч +PASS XHTML1.1 parsing ✓ +PASS XHTML1.1 parsing ✓ +PASS XHTML1.1 parsing Χ +PASS XHTML1.1 parsing χ +PASS XHTML1.1 parsing ˆ +PASS XHTML1.1 parsing ≗ +PASS XHTML1.1 parsing ↺ +PASS XHTML1.1 parsing ↻ +PASS XHTML1.1 parsing ⊛ +PASS XHTML1.1 parsing ⊚ +PASS XHTML1.1 parsing ⊝ +PASS XHTML1.1 parsing ⊙ +PASS XHTML1.1 parsing ® +PASS XHTML1.1 parsing Ⓢ +PASS XHTML1.1 parsing ⊖ +PASS XHTML1.1 parsing ⊕ +PASS XHTML1.1 parsing ⊗ +PASS XHTML1.1 parsing ○ +PASS XHTML1.1 parsing ⧃ +PASS XHTML1.1 parsing ≗ +PASS XHTML1.1 parsing ⨐ +PASS XHTML1.1 parsing ⫯ +PASS XHTML1.1 parsing ⧂ +PASS XHTML1.1 parsing ∲ +PASS XHTML1.1 parsing ” +PASS XHTML1.1 parsing ’ +PASS XHTML1.1 parsing ♣ +PASS XHTML1.1 parsing ♣ +PASS XHTML1.1 parsing : +PASS XHTML1.1 parsing ∷ +PASS XHTML1.1 parsing ⩴ +PASS XHTML1.1 parsing ≔ +PASS XHTML1.1 parsing ≔ +PASS XHTML1.1 parsing , +PASS XHTML1.1 parsing @ +PASS XHTML1.1 parsing ∁ +PASS XHTML1.1 parsing ∘ +PASS XHTML1.1 parsing ∁ +PASS XHTML1.1 parsing ℂ +PASS XHTML1.1 parsing ≅ +PASS XHTML1.1 parsing ⩭ +PASS XHTML1.1 parsing ≡ +PASS XHTML1.1 parsing ∮ +PASS XHTML1.1 parsing ∯ +PASS XHTML1.1 parsing ∮ +PASS XHTML1.1 parsing 𝕔 +PASS XHTML1.1 parsing ℂ +PASS XHTML1.1 parsing ∐ +PASS XHTML1.1 parsing ∐ +PASS XHTML1.1 parsing © +PASS XHTML1.1 parsing © +PASS XHTML1.1 parsing ℗ +PASS XHTML1.1 parsing ∳ +PASS XHTML1.1 parsing ↵ +PASS XHTML1.1 parsing ✗ +PASS XHTML1.1 parsing ⨯ +PASS XHTML1.1 parsing 𝒞 +PASS XHTML1.1 parsing 𝒸 +PASS XHTML1.1 parsing ⫏ +PASS XHTML1.1 parsing ⫑ +PASS XHTML1.1 parsing ⫐ +PASS XHTML1.1 parsing ⫒ +PASS XHTML1.1 parsing ⋯ +PASS XHTML1.1 parsing ⤸ +PASS XHTML1.1 parsing ⤵ +PASS XHTML1.1 parsing ⋞ +PASS XHTML1.1 parsing ⋟ +PASS XHTML1.1 parsing ↶ +PASS XHTML1.1 parsing ⤽ +PASS XHTML1.1 parsing ⩈ +PASS XHTML1.1 parsing ⩆ +PASS XHTML1.1 parsing ≍ +PASS XHTML1.1 parsing ∪ +PASS XHTML1.1 parsing ⋓ +PASS XHTML1.1 parsing ⩊ +PASS XHTML1.1 parsing ⊍ +PASS XHTML1.1 parsing ⩅ +PASS XHTML1.1 parsing ∪︀ +PASS XHTML1.1 parsing ↷ +PASS XHTML1.1 parsing ⤼ +PASS XHTML1.1 parsing ⋞ +PASS XHTML1.1 parsing ⋟ +PASS XHTML1.1 parsing ⋎ +PASS XHTML1.1 parsing ⋏ +PASS XHTML1.1 parsing ¤ +PASS XHTML1.1 parsing ↶ +PASS XHTML1.1 parsing ↷ +PASS XHTML1.1 parsing ⋎ +PASS XHTML1.1 parsing ⋏ +PASS XHTML1.1 parsing ∲ +PASS XHTML1.1 parsing ∱ +PASS XHTML1.1 parsing ⌭ +PASS XHTML1.1 parsing † +PASS XHTML1.1 parsing ‡ +PASS XHTML1.1 parsing ℸ +PASS XHTML1.1 parsing ↓ +PASS XHTML1.1 parsing ↡ +PASS XHTML1.1 parsing ⇓ +PASS XHTML1.1 parsing ‐ +PASS XHTML1.1 parsing ⫤ +PASS XHTML1.1 parsing ⊣ +PASS XHTML1.1 parsing ⤏ +PASS XHTML1.1 parsing ˝ +PASS XHTML1.1 parsing Ď +PASS XHTML1.1 parsing ď +PASS XHTML1.1 parsing Д +PASS XHTML1.1 parsing д +PASS XHTML1.1 parsing ‡ +PASS XHTML1.1 parsing ⇊ +PASS XHTML1.1 parsing ⅅ +PASS XHTML1.1 parsing ⅆ +PASS XHTML1.1 parsing ⤑ +PASS XHTML1.1 parsing ⩷ +PASS XHTML1.1 parsing ° +PASS XHTML1.1 parsing ∇ +PASS XHTML1.1 parsing Δ +PASS XHTML1.1 parsing δ +PASS XHTML1.1 parsing ⦱ +PASS XHTML1.1 parsing ⥿ +PASS XHTML1.1 parsing 𝔇 +PASS XHTML1.1 parsing 𝔡 +PASS XHTML1.1 parsing ⥥ +PASS XHTML1.1 parsing ⇃ +PASS XHTML1.1 parsing ⇂ +PASS XHTML1.1 parsing ´ +PASS XHTML1.1 parsing ˙ +PASS XHTML1.1 parsing ˝ +PASS XHTML1.1 parsing ` +PASS XHTML1.1 parsing ˜ +PASS XHTML1.1 parsing ⋄ +PASS XHTML1.1 parsing ⋄ +PASS XHTML1.1 parsing ⋄ +PASS XHTML1.1 parsing ♦ +PASS XHTML1.1 parsing ♦ +PASS XHTML1.1 parsing ¨ +PASS XHTML1.1 parsing ⅆ +PASS XHTML1.1 parsing ϝ +PASS XHTML1.1 parsing ⋲ +PASS XHTML1.1 parsing ÷ +PASS XHTML1.1 parsing ÷ +PASS XHTML1.1 parsing ⋇ +PASS XHTML1.1 parsing ⋇ +PASS XHTML1.1 parsing Ђ +PASS XHTML1.1 parsing ђ +PASS XHTML1.1 parsing ⌞ +PASS XHTML1.1 parsing ⌍ +PASS XHTML1.1 parsing $ +PASS XHTML1.1 parsing 𝔻 +PASS XHTML1.1 parsing 𝕕 +PASS XHTML1.1 parsing ¨ +PASS XHTML1.1 parsing ˙ +PASS XHTML1.1 parsing ⃜ +PASS XHTML1.1 parsing ≐ +PASS XHTML1.1 parsing ≑ +PASS XHTML1.1 parsing ≐ +PASS XHTML1.1 parsing ∸ +PASS XHTML1.1 parsing ∔ +PASS XHTML1.1 parsing ⊡ +PASS XHTML1.1 parsing ⌆ +PASS XHTML1.1 parsing ∯ +PASS XHTML1.1 parsing ¨ +PASS XHTML1.1 parsing ⇓ +PASS XHTML1.1 parsing ⇐ +PASS XHTML1.1 parsing ⇔ +PASS XHTML1.1 parsing ⫤ +PASS XHTML1.1 parsing ⟸ +PASS XHTML1.1 parsing ⟺ +PASS XHTML1.1 parsing ⟹ +PASS XHTML1.1 parsing ⇒ +PASS XHTML1.1 parsing ⊨ +PASS XHTML1.1 parsing ⇑ +PASS XHTML1.1 parsing ⇕ +PASS XHTML1.1 parsing ∥ +PASS XHTML1.1 parsing ⤓ +PASS XHTML1.1 parsing ↓ +PASS XHTML1.1 parsing ↓ +PASS XHTML1.1 parsing ⇓ +PASS XHTML1.1 parsing ⇵ +PASS XHTML1.1 parsing ̑ +PASS XHTML1.1 parsing ⇊ +PASS XHTML1.1 parsing ⇃ +PASS XHTML1.1 parsing ⇂ +PASS XHTML1.1 parsing ⥐ +PASS XHTML1.1 parsing ⥞ +PASS XHTML1.1 parsing ⥖ +PASS XHTML1.1 parsing ↽ +PASS XHTML1.1 parsing ⥟ +PASS XHTML1.1 parsing ⥗ +PASS XHTML1.1 parsing ⇁ +PASS XHTML1.1 parsing ↧ +PASS XHTML1.1 parsing ⊤ +PASS XHTML1.1 parsing ⤐ +PASS XHTML1.1 parsing ⌟ +PASS XHTML1.1 parsing ⌌ +PASS XHTML1.1 parsing 𝒟 +PASS XHTML1.1 parsing 𝒹 +PASS XHTML1.1 parsing Ѕ +PASS XHTML1.1 parsing ѕ +PASS XHTML1.1 parsing ⧶ +PASS XHTML1.1 parsing Đ +PASS XHTML1.1 parsing đ +PASS XHTML1.1 parsing ⋱ +PASS XHTML1.1 parsing ▿ +PASS XHTML1.1 parsing ▾ +PASS XHTML1.1 parsing ⇵ +PASS XHTML1.1 parsing ⥯ +PASS XHTML1.1 parsing ⦦ +PASS XHTML1.1 parsing Џ +PASS XHTML1.1 parsing џ +PASS XHTML1.1 parsing ⟿ +PASS XHTML1.1 parsing É +PASS XHTML1.1 parsing é +PASS XHTML1.1 parsing ⩮ +PASS XHTML1.1 parsing Ě +PASS XHTML1.1 parsing ě +PASS XHTML1.1 parsing Ê +PASS XHTML1.1 parsing ê +PASS XHTML1.1 parsing ≖ +PASS XHTML1.1 parsing ≕ +PASS XHTML1.1 parsing Э +PASS XHTML1.1 parsing э +PASS XHTML1.1 parsing ⩷ +PASS XHTML1.1 parsing Ė +PASS XHTML1.1 parsing ė +PASS XHTML1.1 parsing ≑ +PASS XHTML1.1 parsing ⅇ +PASS XHTML1.1 parsing ≒ +PASS XHTML1.1 parsing 𝔈 +PASS XHTML1.1 parsing 𝔢 +PASS XHTML1.1 parsing ⪚ +PASS XHTML1.1 parsing È +PASS XHTML1.1 parsing è +PASS XHTML1.1 parsing ⪖ +PASS XHTML1.1 parsing ⪘ +PASS XHTML1.1 parsing ⪙ +PASS XHTML1.1 parsing ∈ +PASS XHTML1.1 parsing ⏧ +PASS XHTML1.1 parsing ℓ +PASS XHTML1.1 parsing ⪕ +PASS XHTML1.1 parsing ⪗ +PASS XHTML1.1 parsing Ē +PASS XHTML1.1 parsing ē +PASS XHTML1.1 parsing ∅ +PASS XHTML1.1 parsing ∅ +PASS XHTML1.1 parsing ◻ +PASS XHTML1.1 parsing ∅ +PASS XHTML1.1 parsing ▫ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing Ŋ +PASS XHTML1.1 parsing ŋ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing Ę +PASS XHTML1.1 parsing ę +PASS XHTML1.1 parsing 𝔼 +PASS XHTML1.1 parsing 𝕖 +PASS XHTML1.1 parsing ⋕ +PASS XHTML1.1 parsing ⧣ +PASS XHTML1.1 parsing ⩱ +PASS XHTML1.1 parsing ε +PASS XHTML1.1 parsing Ε +PASS XHTML1.1 parsing ε +PASS XHTML1.1 parsing ϵ +PASS XHTML1.1 parsing ≖ +PASS XHTML1.1 parsing ≕ +PASS XHTML1.1 parsing ≂ +PASS XHTML1.1 parsing ⪖ +PASS XHTML1.1 parsing ⪕ +PASS XHTML1.1 parsing ⩵ +PASS XHTML1.1 parsing = +PASS XHTML1.1 parsing ≂ +PASS XHTML1.1 parsing ≟ +PASS XHTML1.1 parsing ⇌ +PASS XHTML1.1 parsing ≡ +PASS XHTML1.1 parsing ⩸ +PASS XHTML1.1 parsing ⧥ +PASS XHTML1.1 parsing ⥱ +PASS XHTML1.1 parsing ≓ +PASS XHTML1.1 parsing ℯ +PASS XHTML1.1 parsing ℰ +PASS XHTML1.1 parsing ≐ +PASS XHTML1.1 parsing ⩳ +PASS XHTML1.1 parsing ≂ +PASS XHTML1.1 parsing Η +PASS XHTML1.1 parsing η +PASS XHTML1.1 parsing Ð +PASS XHTML1.1 parsing ð +PASS XHTML1.1 parsing Ë +PASS XHTML1.1 parsing ë +PASS XHTML1.1 parsing € +PASS XHTML1.1 parsing ! +PASS XHTML1.1 parsing ∃ +PASS XHTML1.1 parsing ∃ +PASS XHTML1.1 parsing ℰ +PASS XHTML1.1 parsing ⅇ +PASS XHTML1.1 parsing ⅇ +PASS XHTML1.1 parsing ≒ +PASS XHTML1.1 parsing Ф +PASS XHTML1.1 parsing ф +PASS XHTML1.1 parsing ♀ +PASS XHTML1.1 parsing ffi +PASS XHTML1.1 parsing ff +PASS XHTML1.1 parsing ffl +PASS XHTML1.1 parsing 𝔉 +PASS XHTML1.1 parsing 𝔣 +PASS XHTML1.1 parsing fi +PASS XHTML1.1 parsing ◼ +PASS XHTML1.1 parsing ▪ +PASS XHTML1.1 parsing fj +PASS XHTML1.1 parsing ♭ +PASS XHTML1.1 parsing fl +PASS XHTML1.1 parsing ▱ +PASS XHTML1.1 parsing ƒ +PASS XHTML1.1 parsing 𝔽 +PASS XHTML1.1 parsing 𝕗 +PASS XHTML1.1 parsing ∀ +PASS XHTML1.1 parsing ∀ +PASS XHTML1.1 parsing ⋔ +PASS XHTML1.1 parsing ⫙ +PASS XHTML1.1 parsing ℱ +PASS XHTML1.1 parsing ⨍ +PASS XHTML1.1 parsing ½ +PASS XHTML1.1 parsing ⅓ +PASS XHTML1.1 parsing ¼ +PASS XHTML1.1 parsing ⅕ +PASS XHTML1.1 parsing ⅙ +PASS XHTML1.1 parsing ⅛ +PASS XHTML1.1 parsing ⅔ +PASS XHTML1.1 parsing ⅖ +PASS XHTML1.1 parsing ¾ +PASS XHTML1.1 parsing ⅗ +PASS XHTML1.1 parsing ⅜ +PASS XHTML1.1 parsing ⅘ +PASS XHTML1.1 parsing ⅚ +PASS XHTML1.1 parsing ⅝ +PASS XHTML1.1 parsing ⅞ +PASS XHTML1.1 parsing ⁄ +PASS XHTML1.1 parsing ⌢ +PASS XHTML1.1 parsing 𝒻 +PASS XHTML1.1 parsing ℱ +PASS XHTML1.1 parsing ǵ +PASS XHTML1.1 parsing Γ +PASS XHTML1.1 parsing γ +PASS XHTML1.1 parsing Ϝ +PASS XHTML1.1 parsing ϝ +PASS XHTML1.1 parsing ⪆ +PASS XHTML1.1 parsing Ğ +PASS XHTML1.1 parsing ğ +PASS XHTML1.1 parsing Ģ +PASS XHTML1.1 parsing Ĝ +PASS XHTML1.1 parsing ĝ +PASS XHTML1.1 parsing Г +PASS XHTML1.1 parsing г +PASS XHTML1.1 parsing Ġ +PASS XHTML1.1 parsing ġ +PASS XHTML1.1 parsing ≥ +PASS XHTML1.1 parsing ≧ +PASS XHTML1.1 parsing ⪌ +PASS XHTML1.1 parsing ⋛ +PASS XHTML1.1 parsing ≥ +PASS XHTML1.1 parsing ≧ +PASS XHTML1.1 parsing ⩾ +PASS XHTML1.1 parsing ⪩ +PASS XHTML1.1 parsing ⩾ +PASS XHTML1.1 parsing ⪀ +PASS XHTML1.1 parsing ⪂ +PASS XHTML1.1 parsing ⪄ +PASS XHTML1.1 parsing ⋛︀ +PASS XHTML1.1 parsing ⪔ +PASS XHTML1.1 parsing 𝔊 +PASS XHTML1.1 parsing 𝔤 +PASS XHTML1.1 parsing ≫ +PASS XHTML1.1 parsing ⋙ +PASS XHTML1.1 parsing ⋙ +PASS XHTML1.1 parsing ℷ +PASS XHTML1.1 parsing Ѓ +PASS XHTML1.1 parsing ѓ +PASS XHTML1.1 parsing ⪥ +PASS XHTML1.1 parsing ≷ +PASS XHTML1.1 parsing ⪒ +PASS XHTML1.1 parsing ⪤ +PASS XHTML1.1 parsing ⪊ +PASS XHTML1.1 parsing ⪊ +PASS XHTML1.1 parsing ⪈ +PASS XHTML1.1 parsing ≩ +PASS XHTML1.1 parsing ⪈ +PASS XHTML1.1 parsing ≩ +PASS XHTML1.1 parsing ⋧ +PASS XHTML1.1 parsing 𝔾 +PASS XHTML1.1 parsing 𝕘 +PASS XHTML1.1 parsing ` +PASS XHTML1.1 parsing ≥ +PASS XHTML1.1 parsing ⋛ +PASS XHTML1.1 parsing ≧ +PASS XHTML1.1 parsing ⪢ +PASS XHTML1.1 parsing ≷ +PASS XHTML1.1 parsing ⩾ +PASS XHTML1.1 parsing ≳ +PASS XHTML1.1 parsing 𝒢 +PASS XHTML1.1 parsing ℊ +PASS XHTML1.1 parsing ≳ +PASS XHTML1.1 parsing ⪎ +PASS XHTML1.1 parsing ⪐ +PASS XHTML1.1 parsing ⪧ +PASS XHTML1.1 parsing ⩺ +PASS XHTML1.1 parsing > +PASS XHTML1.1 parsing > +PASS XHTML1.1 parsing ≫ +PASS XHTML1.1 parsing ⋗ +PASS XHTML1.1 parsing ⦕ +PASS XHTML1.1 parsing ⩼ +PASS XHTML1.1 parsing ⪆ +PASS XHTML1.1 parsing ⥸ +PASS XHTML1.1 parsing ⋗ +PASS XHTML1.1 parsing ⋛ +PASS XHTML1.1 parsing ⪌ +PASS XHTML1.1 parsing ≷ +PASS XHTML1.1 parsing ≳ +PASS XHTML1.1 parsing ≩︀ +PASS XHTML1.1 parsing ≩︀ +PASS XHTML1.1 parsing ˇ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing ½ +PASS XHTML1.1 parsing ℋ +PASS XHTML1.1 parsing Ъ +PASS XHTML1.1 parsing ъ +PASS XHTML1.1 parsing ⥈ +PASS XHTML1.1 parsing ↔ +PASS XHTML1.1 parsing ⇔ +PASS XHTML1.1 parsing ↭ +PASS XHTML1.1 parsing ^ +PASS XHTML1.1 parsing ℏ +PASS XHTML1.1 parsing Ĥ +PASS XHTML1.1 parsing ĥ +PASS XHTML1.1 parsing ♥ +PASS XHTML1.1 parsing ♥ +PASS XHTML1.1 parsing … +PASS XHTML1.1 parsing ⊹ +PASS XHTML1.1 parsing 𝔥 +PASS XHTML1.1 parsing ℌ +PASS XHTML1.1 parsing ℋ +PASS XHTML1.1 parsing ⤥ +PASS XHTML1.1 parsing ⤦ +PASS XHTML1.1 parsing ⇿ +PASS XHTML1.1 parsing ∻ +PASS XHTML1.1 parsing ↩ +PASS XHTML1.1 parsing ↪ +PASS XHTML1.1 parsing 𝕙 +PASS XHTML1.1 parsing ℍ +PASS XHTML1.1 parsing ― +PASS XHTML1.1 parsing ─ +PASS XHTML1.1 parsing 𝒽 +PASS XHTML1.1 parsing ℋ +PASS XHTML1.1 parsing ℏ +PASS XHTML1.1 parsing Ħ +PASS XHTML1.1 parsing ħ +PASS XHTML1.1 parsing ≎ +PASS XHTML1.1 parsing ≏ +PASS XHTML1.1 parsing ⁃ +PASS XHTML1.1 parsing ‐ +PASS XHTML1.1 parsing Í +PASS XHTML1.1 parsing í +PASS XHTML1.1 parsing ⁣ +PASS XHTML1.1 parsing Î +PASS XHTML1.1 parsing î +PASS XHTML1.1 parsing И +PASS XHTML1.1 parsing и +PASS XHTML1.1 parsing İ +PASS XHTML1.1 parsing Е +PASS XHTML1.1 parsing е +PASS XHTML1.1 parsing ¡ +PASS XHTML1.1 parsing ⇔ +PASS XHTML1.1 parsing 𝔦 +PASS XHTML1.1 parsing ℑ +PASS XHTML1.1 parsing Ì +PASS XHTML1.1 parsing ì +PASS XHTML1.1 parsing ⅈ +PASS XHTML1.1 parsing ⨌ +PASS XHTML1.1 parsing ∭ +PASS XHTML1.1 parsing ⧜ +PASS XHTML1.1 parsing ℩ +PASS XHTML1.1 parsing IJ +PASS XHTML1.1 parsing ij +PASS XHTML1.1 parsing Ī +PASS XHTML1.1 parsing ī +PASS XHTML1.1 parsing ℑ +PASS XHTML1.1 parsing ⅈ +PASS XHTML1.1 parsing ℐ +PASS XHTML1.1 parsing ℑ +PASS XHTML1.1 parsing ı +PASS XHTML1.1 parsing ℑ +PASS XHTML1.1 parsing ⊷ +PASS XHTML1.1 parsing Ƶ +PASS XHTML1.1 parsing ⇒ +PASS XHTML1.1 parsing ℅ +PASS XHTML1.1 parsing ∈ +PASS XHTML1.1 parsing ∞ +PASS XHTML1.1 parsing ⧝ +PASS XHTML1.1 parsing ı +PASS XHTML1.1 parsing ⊺ +PASS XHTML1.1 parsing ∫ +PASS XHTML1.1 parsing ∬ +PASS XHTML1.1 parsing ℤ +PASS XHTML1.1 parsing ∫ +PASS XHTML1.1 parsing ⊺ +PASS XHTML1.1 parsing ⋂ +PASS XHTML1.1 parsing ⨗ +PASS XHTML1.1 parsing ⨼ +PASS XHTML1.1 parsing ⁣ +PASS XHTML1.1 parsing ⁢ +PASS XHTML1.1 parsing Ё +PASS XHTML1.1 parsing ё +PASS XHTML1.1 parsing Į +PASS XHTML1.1 parsing į +PASS XHTML1.1 parsing 𝕀 +PASS XHTML1.1 parsing 𝕚 +PASS XHTML1.1 parsing Ι +PASS XHTML1.1 parsing ι +PASS XHTML1.1 parsing ⨼ +PASS XHTML1.1 parsing ¿ +PASS XHTML1.1 parsing 𝒾 +PASS XHTML1.1 parsing ℐ +PASS XHTML1.1 parsing ∈ +PASS XHTML1.1 parsing ⋵ +PASS XHTML1.1 parsing ⋹ +PASS XHTML1.1 parsing ⋴ +PASS XHTML1.1 parsing ⋳ +PASS XHTML1.1 parsing ∈ +PASS XHTML1.1 parsing ⁢ +PASS XHTML1.1 parsing Ĩ +PASS XHTML1.1 parsing ĩ +PASS XHTML1.1 parsing І +PASS XHTML1.1 parsing і +PASS XHTML1.1 parsing Ï +PASS XHTML1.1 parsing ï +PASS XHTML1.1 parsing Ĵ +PASS XHTML1.1 parsing ĵ +PASS XHTML1.1 parsing Й +PASS XHTML1.1 parsing й +PASS XHTML1.1 parsing 𝔍 +PASS XHTML1.1 parsing 𝔧 +PASS XHTML1.1 parsing ȷ +PASS XHTML1.1 parsing 𝕁 +PASS XHTML1.1 parsing 𝕛 +PASS XHTML1.1 parsing 𝒥 +PASS XHTML1.1 parsing 𝒿 +PASS XHTML1.1 parsing Ј +PASS XHTML1.1 parsing ј +PASS XHTML1.1 parsing Є +PASS XHTML1.1 parsing є +PASS XHTML1.1 parsing Κ +PASS XHTML1.1 parsing κ +PASS XHTML1.1 parsing ϰ +PASS XHTML1.1 parsing Ķ +PASS XHTML1.1 parsing ķ +PASS XHTML1.1 parsing К +PASS XHTML1.1 parsing к +PASS XHTML1.1 parsing 𝔎 +PASS XHTML1.1 parsing 𝔨 +PASS XHTML1.1 parsing ĸ +PASS XHTML1.1 parsing Х +PASS XHTML1.1 parsing х +PASS XHTML1.1 parsing Ќ +PASS XHTML1.1 parsing ќ +PASS XHTML1.1 parsing 𝕂 +PASS XHTML1.1 parsing 𝕜 +PASS XHTML1.1 parsing 𝒦 +PASS XHTML1.1 parsing 𝓀 +PASS XHTML1.1 parsing ⇚ +PASS XHTML1.1 parsing Ĺ +PASS XHTML1.1 parsing ĺ +PASS XHTML1.1 parsing ⦴ +PASS XHTML1.1 parsing ℒ +PASS XHTML1.1 parsing Λ +PASS XHTML1.1 parsing λ +PASS XHTML1.1 parsing ⟨ +PASS XHTML1.1 parsing ⟪ +PASS XHTML1.1 parsing ⦑ +PASS XHTML1.1 parsing ⟨ +PASS XHTML1.1 parsing ⪅ +PASS XHTML1.1 parsing ℒ +PASS XHTML1.1 parsing « +PASS XHTML1.1 parsing ⇤ +PASS XHTML1.1 parsing ⤟ +PASS XHTML1.1 parsing ← +PASS XHTML1.1 parsing ↞ +PASS XHTML1.1 parsing ⇐ +PASS XHTML1.1 parsing ⤝ +PASS XHTML1.1 parsing ↩ +PASS XHTML1.1 parsing ↫ +PASS XHTML1.1 parsing ⤹ +PASS XHTML1.1 parsing ⥳ +PASS XHTML1.1 parsing ↢ +PASS XHTML1.1 parsing ⤙ +PASS XHTML1.1 parsing ⤛ +PASS XHTML1.1 parsing ⪫ +PASS XHTML1.1 parsing ⪭ +PASS XHTML1.1 parsing ⪭︀ +PASS XHTML1.1 parsing ⤌ +PASS XHTML1.1 parsing ⤎ +PASS XHTML1.1 parsing ❲ +PASS XHTML1.1 parsing { +PASS XHTML1.1 parsing [ +PASS XHTML1.1 parsing ⦋ +PASS XHTML1.1 parsing ⦏ +PASS XHTML1.1 parsing ⦍ +PASS XHTML1.1 parsing Ľ +PASS XHTML1.1 parsing ľ +PASS XHTML1.1 parsing Ļ +PASS XHTML1.1 parsing ļ +PASS XHTML1.1 parsing ⌈ +PASS XHTML1.1 parsing { +PASS XHTML1.1 parsing Л +PASS XHTML1.1 parsing л +PASS XHTML1.1 parsing ⤶ +PASS XHTML1.1 parsing “ +PASS XHTML1.1 parsing „ +PASS XHTML1.1 parsing ⥧ +PASS XHTML1.1 parsing ⥋ +PASS XHTML1.1 parsing ↲ +PASS XHTML1.1 parsing ≤ +PASS XHTML1.1 parsing ≦ +PASS XHTML1.1 parsing ⟨ +PASS XHTML1.1 parsing ⇤ +PASS XHTML1.1 parsing ← +PASS XHTML1.1 parsing ← +PASS XHTML1.1 parsing ⇐ +PASS XHTML1.1 parsing ⇆ +PASS XHTML1.1 parsing ↢ +PASS XHTML1.1 parsing ⌈ +PASS XHTML1.1 parsing ⟦ +PASS XHTML1.1 parsing ⥡ +PASS XHTML1.1 parsing ⥙ +PASS XHTML1.1 parsing ⇃ +PASS XHTML1.1 parsing ⌊ +PASS XHTML1.1 parsing ↽ +PASS XHTML1.1 parsing ↼ +PASS XHTML1.1 parsing ⇇ +PASS XHTML1.1 parsing ↔ +PASS XHTML1.1 parsing ↔ +PASS XHTML1.1 parsing ⇔ +PASS XHTML1.1 parsing ⇆ +PASS XHTML1.1 parsing ⇋ +PASS XHTML1.1 parsing ↭ +PASS XHTML1.1 parsing ⥎ +PASS XHTML1.1 parsing ↤ +PASS XHTML1.1 parsing ⊣ +PASS XHTML1.1 parsing ⥚ +PASS XHTML1.1 parsing ⋋ +PASS XHTML1.1 parsing ⧏ +PASS XHTML1.1 parsing ⊲ +PASS XHTML1.1 parsing ⊴ +PASS XHTML1.1 parsing ⥑ +PASS XHTML1.1 parsing ⥠ +PASS XHTML1.1 parsing ⥘ +PASS XHTML1.1 parsing ↿ +PASS XHTML1.1 parsing ⥒ +PASS XHTML1.1 parsing ↼ +PASS XHTML1.1 parsing ⪋ +PASS XHTML1.1 parsing ⋚ +PASS XHTML1.1 parsing ≤ +PASS XHTML1.1 parsing ≦ +PASS XHTML1.1 parsing ⩽ +PASS XHTML1.1 parsing ⪨ +PASS XHTML1.1 parsing ⩽ +PASS XHTML1.1 parsing ⩿ +PASS XHTML1.1 parsing ⪁ +PASS XHTML1.1 parsing ⪃ +PASS XHTML1.1 parsing ⋚︀ +PASS XHTML1.1 parsing ⪓ +PASS XHTML1.1 parsing ⪅ +PASS XHTML1.1 parsing ⋖ +PASS XHTML1.1 parsing ⋚ +PASS XHTML1.1 parsing ⪋ +PASS XHTML1.1 parsing ⋚ +PASS XHTML1.1 parsing ≦ +PASS XHTML1.1 parsing ≶ +PASS XHTML1.1 parsing ≶ +PASS XHTML1.1 parsing ⪡ +PASS XHTML1.1 parsing ≲ +PASS XHTML1.1 parsing ⩽ +PASS XHTML1.1 parsing ≲ +PASS XHTML1.1 parsing ⥼ +PASS XHTML1.1 parsing ⌊ +PASS XHTML1.1 parsing 𝔏 +PASS XHTML1.1 parsing 𝔩 +PASS XHTML1.1 parsing ≶ +PASS XHTML1.1 parsing ⪑ +PASS XHTML1.1 parsing ⥢ +PASS XHTML1.1 parsing ↽ +PASS XHTML1.1 parsing ↼ +PASS XHTML1.1 parsing ⥪ +PASS XHTML1.1 parsing ▄ +PASS XHTML1.1 parsing Љ +PASS XHTML1.1 parsing љ +PASS XHTML1.1 parsing ⇇ +PASS XHTML1.1 parsing ≪ +PASS XHTML1.1 parsing ⋘ +PASS XHTML1.1 parsing ⌞ +PASS XHTML1.1 parsing ⇚ +PASS XHTML1.1 parsing ⥫ +PASS XHTML1.1 parsing ◺ +PASS XHTML1.1 parsing Ŀ +PASS XHTML1.1 parsing ŀ +PASS XHTML1.1 parsing ⎰ +PASS XHTML1.1 parsing ⎰ +PASS XHTML1.1 parsing ⪉ +PASS XHTML1.1 parsing ⪉ +PASS XHTML1.1 parsing ⪇ +PASS XHTML1.1 parsing ≨ +PASS XHTML1.1 parsing ⪇ +PASS XHTML1.1 parsing ≨ +PASS XHTML1.1 parsing ⋦ +PASS XHTML1.1 parsing ⟬ +PASS XHTML1.1 parsing ⇽ +PASS XHTML1.1 parsing ⟦ +PASS XHTML1.1 parsing ⟵ +PASS XHTML1.1 parsing ⟵ +PASS XHTML1.1 parsing ⟸ +PASS XHTML1.1 parsing ⟷ +PASS XHTML1.1 parsing ⟷ +PASS XHTML1.1 parsing ⟺ +PASS XHTML1.1 parsing ⟼ +PASS XHTML1.1 parsing ⟶ +PASS XHTML1.1 parsing ⟶ +PASS XHTML1.1 parsing ⟹ +PASS XHTML1.1 parsing ↫ +PASS XHTML1.1 parsing ↬ +PASS XHTML1.1 parsing ⦅ +PASS XHTML1.1 parsing 𝕃 +PASS XHTML1.1 parsing 𝕝 +PASS XHTML1.1 parsing ⨭ +PASS XHTML1.1 parsing ⨴ +PASS XHTML1.1 parsing ∗ +PASS XHTML1.1 parsing _ +PASS XHTML1.1 parsing ↙ +PASS XHTML1.1 parsing ↘ +PASS XHTML1.1 parsing ◊ +PASS XHTML1.1 parsing ◊ +PASS XHTML1.1 parsing ⧫ +PASS XHTML1.1 parsing ( +PASS XHTML1.1 parsing ⦓ +PASS XHTML1.1 parsing ⇆ +PASS XHTML1.1 parsing ⌟ +PASS XHTML1.1 parsing ⇋ +PASS XHTML1.1 parsing ⥭ +PASS XHTML1.1 parsing ‎ +PASS XHTML1.1 parsing ⊿ +PASS XHTML1.1 parsing ‹ +PASS XHTML1.1 parsing 𝓁 +PASS XHTML1.1 parsing ℒ +PASS XHTML1.1 parsing ↰ +PASS XHTML1.1 parsing ↰ +PASS XHTML1.1 parsing ≲ +PASS XHTML1.1 parsing ⪍ +PASS XHTML1.1 parsing ⪏ +PASS XHTML1.1 parsing [ +PASS XHTML1.1 parsing ‘ +PASS XHTML1.1 parsing ‚ +PASS XHTML1.1 parsing Ł +PASS XHTML1.1 parsing ł +PASS XHTML1.1 parsing ⪦ +PASS XHTML1.1 parsing ⩹ +PASS XHTML1.1 parsing < +FAIL XHTML1.1 parsing < assert_true: expected true got false +PASS XHTML1.1 parsing ≪ +PASS XHTML1.1 parsing ⋖ +PASS XHTML1.1 parsing ⋋ +PASS XHTML1.1 parsing ⋉ +PASS XHTML1.1 parsing ⥶ +PASS XHTML1.1 parsing ⩻ +PASS XHTML1.1 parsing ◃ +PASS XHTML1.1 parsing ⊴ +PASS XHTML1.1 parsing ◂ +PASS XHTML1.1 parsing ⦖ +PASS XHTML1.1 parsing ⥊ +PASS XHTML1.1 parsing ⥦ +PASS XHTML1.1 parsing ≨︀ +PASS XHTML1.1 parsing ≨︀ +PASS XHTML1.1 parsing ¯ +PASS XHTML1.1 parsing ♂ +PASS XHTML1.1 parsing ✠ +PASS XHTML1.1 parsing ✠ +PASS XHTML1.1 parsing ⤅ +PASS XHTML1.1 parsing ↦ +PASS XHTML1.1 parsing ↦ +PASS XHTML1.1 parsing ↧ +PASS XHTML1.1 parsing ↤ +PASS XHTML1.1 parsing ↥ +PASS XHTML1.1 parsing ▮ +PASS XHTML1.1 parsing ⨩ +PASS XHTML1.1 parsing М +PASS XHTML1.1 parsing м +PASS XHTML1.1 parsing — +PASS XHTML1.1 parsing ∺ +PASS XHTML1.1 parsing ∡ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing ℳ +PASS XHTML1.1 parsing 𝔐 +PASS XHTML1.1 parsing 𝔪 +PASS XHTML1.1 parsing ℧ +PASS XHTML1.1 parsing µ +PASS XHTML1.1 parsing * +PASS XHTML1.1 parsing ⫰ +PASS XHTML1.1 parsing ∣ +PASS XHTML1.1 parsing · +PASS XHTML1.1 parsing ⊟ +PASS XHTML1.1 parsing − +PASS XHTML1.1 parsing ∸ +PASS XHTML1.1 parsing ⨪ +PASS XHTML1.1 parsing ∓ +PASS XHTML1.1 parsing ⫛ +PASS XHTML1.1 parsing … +PASS XHTML1.1 parsing ∓ +PASS XHTML1.1 parsing ⊧ +PASS XHTML1.1 parsing 𝕄 +PASS XHTML1.1 parsing 𝕞 +PASS XHTML1.1 parsing ∓ +PASS XHTML1.1 parsing 𝓂 +PASS XHTML1.1 parsing ℳ +PASS XHTML1.1 parsing ∾ +PASS XHTML1.1 parsing Μ +PASS XHTML1.1 parsing μ +PASS XHTML1.1 parsing ⊸ +PASS XHTML1.1 parsing ⊸ +PASS XHTML1.1 parsing ∇ +PASS XHTML1.1 parsing Ń +PASS XHTML1.1 parsing ń +PASS XHTML1.1 parsing ∠⃒ +PASS XHTML1.1 parsing ≉ +PASS XHTML1.1 parsing ⩰̸ +PASS XHTML1.1 parsing ≋̸ +PASS XHTML1.1 parsing ʼn +PASS XHTML1.1 parsing ≉ +PASS XHTML1.1 parsing ♮ +PASS XHTML1.1 parsing ℕ +PASS XHTML1.1 parsing ♮ +PASS XHTML1.1 parsing +PASS XHTML1.1 parsing ≎̸ +PASS XHTML1.1 parsing ≏̸ +PASS XHTML1.1 parsing ⩃ +PASS XHTML1.1 parsing Ň +PASS XHTML1.1 parsing ň +PASS XHTML1.1 parsing Ņ +PASS XHTML1.1 parsing ņ +PASS XHTML1.1 parsing ≇ +PASS XHTML1.1 parsing ⩭̸ +PASS XHTML1.1 parsing ⩂ +PASS XHTML1.1 parsing Н +PASS XHTML1.1 parsing н +PASS XHTML1.1 parsing – +PASS XHTML1.1 parsing ⤤ +PASS XHTML1.1 parsing ↗ +PASS XHTML1.1 parsing ⇗ +PASS XHTML1.1 parsing ↗ +PASS XHTML1.1 parsing ≠ +PASS XHTML1.1 parsing ≐̸ +PASS XHTML1.1 parsing ​ +PASS XHTML1.1 parsing ​ +PASS XHTML1.1 parsing ​ +PASS XHTML1.1 parsing ​ +PASS XHTML1.1 parsing ≢ +PASS XHTML1.1 parsing ⤨ +PASS XHTML1.1 parsing ≂̸ +PASS XHTML1.1 parsing ≫ +PASS XHTML1.1 parsing ≪ +PASS XHTML1.1 parsing 
 +PASS XHTML1.1 parsing ∄ +PASS XHTML1.1 parsing ∄ +PASS XHTML1.1 parsing 𝔑 +PASS XHTML1.1 parsing 𝔫 +PASS XHTML1.1 parsing ≧̸ +PASS XHTML1.1 parsing ≱ +PASS XHTML1.1 parsing ≱ +PASS XHTML1.1 parsing ≧̸ +PASS XHTML1.1 parsing ⩾̸ +PASS XHTML1.1 parsing ⩾̸ +PASS XHTML1.1 parsing ⋙̸ +PASS XHTML1.1 parsing ≵ +PASS XHTML1.1 parsing ≫⃒ +PASS XHTML1.1 parsing ≯ +PASS XHTML1.1 parsing ≯ +PASS XHTML1.1 parsing ≫̸ +PASS XHTML1.1 parsing ↮ +PASS XHTML1.1 parsing ⇎ +PASS XHTML1.1 parsing ⫲ +PASS XHTML1.1 parsing ∋ +PASS XHTML1.1 parsing ⋼ +PASS XHTML1.1 parsing ⋺ +PASS XHTML1.1 parsing ∋ +PASS XHTML1.1 parsing Њ +PASS XHTML1.1 parsing њ +PASS XHTML1.1 parsing ↚ +PASS XHTML1.1 parsing ⇍ +PASS XHTML1.1 parsing ‥ +PASS XHTML1.1 parsing ≦̸ +PASS XHTML1.1 parsing ≰ +PASS XHTML1.1 parsing ↚ +PASS XHTML1.1 parsing ⇍ +PASS XHTML1.1 parsing ↮ +PASS XHTML1.1 parsing ⇎ +PASS XHTML1.1 parsing ≰ +PASS XHTML1.1 parsing ≦̸ +PASS XHTML1.1 parsing ⩽̸ +PASS XHTML1.1 parsing ⩽̸ +PASS XHTML1.1 parsing ≮ +PASS XHTML1.1 parsing ⋘̸ +PASS XHTML1.1 parsing ≴ +PASS XHTML1.1 parsing ≪⃒ +PASS XHTML1.1 parsing ≮ +PASS XHTML1.1 parsing ⋪ +PASS XHTML1.1 parsing ⋬ +PASS XHTML1.1 parsing ≪̸ +PASS XHTML1.1 parsing ∤ +PASS XHTML1.1 parsing ⁠ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing 𝕟 +PASS XHTML1.1 parsing ℕ +PASS XHTML1.1 parsing ⫬ +PASS XHTML1.1 parsing ¬ +PASS XHTML1.1 parsing ≢ +PASS XHTML1.1 parsing ≭ +PASS XHTML1.1 parsing ∦ +PASS XHTML1.1 parsing ∉ +PASS XHTML1.1 parsing ≠ +PASS XHTML1.1 parsing ≂̸ +PASS XHTML1.1 parsing ∄ +PASS XHTML1.1 parsing ≯ +PASS XHTML1.1 parsing ≱ +PASS XHTML1.1 parsing ≧̸ +PASS XHTML1.1 parsing ≫̸ +PASS XHTML1.1 parsing ≹ +PASS XHTML1.1 parsing ⩾̸ +PASS XHTML1.1 parsing ≵ +PASS XHTML1.1 parsing ≎̸ +PASS XHTML1.1 parsing ≏̸ +PASS XHTML1.1 parsing ∉ +PASS XHTML1.1 parsing ⋵̸ +PASS XHTML1.1 parsing ⋹̸ +PASS XHTML1.1 parsing ∉ +PASS XHTML1.1 parsing ⋷ +PASS XHTML1.1 parsing ⋶ +PASS XHTML1.1 parsing ⧏̸ +PASS XHTML1.1 parsing ⋪ +PASS XHTML1.1 parsing ⋬ +PASS XHTML1.1 parsing ≮ +PASS XHTML1.1 parsing ≰ +PASS XHTML1.1 parsing ≸ +PASS XHTML1.1 parsing ≪̸ +PASS XHTML1.1 parsing ⩽̸ +PASS XHTML1.1 parsing ≴ +PASS XHTML1.1 parsing ⪢̸ +PASS XHTML1.1 parsing ⪡̸ +PASS XHTML1.1 parsing ∌ +PASS XHTML1.1 parsing ∌ +PASS XHTML1.1 parsing ⋾ +PASS XHTML1.1 parsing ⋽ +PASS XHTML1.1 parsing ⊀ +PASS XHTML1.1 parsing ⪯̸ +PASS XHTML1.1 parsing ⋠ +PASS XHTML1.1 parsing ∌ +PASS XHTML1.1 parsing ⧐̸ +PASS XHTML1.1 parsing ⋫ +PASS XHTML1.1 parsing ⋭ +PASS XHTML1.1 parsing ⊏̸ +PASS XHTML1.1 parsing ⋢ +PASS XHTML1.1 parsing ⊐̸ +PASS XHTML1.1 parsing ⋣ +PASS XHTML1.1 parsing ⊂⃒ +PASS XHTML1.1 parsing ⊈ +PASS XHTML1.1 parsing ⊁ +PASS XHTML1.1 parsing ⪰̸ +PASS XHTML1.1 parsing ⋡ +PASS XHTML1.1 parsing ≿̸ +PASS XHTML1.1 parsing ⊃⃒ +PASS XHTML1.1 parsing ⊉ +PASS XHTML1.1 parsing ≁ +PASS XHTML1.1 parsing ≄ +PASS XHTML1.1 parsing ≇ +PASS XHTML1.1 parsing ≉ +PASS XHTML1.1 parsing ∤ +PASS XHTML1.1 parsing ∦ +PASS XHTML1.1 parsing ∦ +PASS XHTML1.1 parsing ⫽⃥ +PASS XHTML1.1 parsing ∂̸ +PASS XHTML1.1 parsing ⨔ +PASS XHTML1.1 parsing ⊀ +PASS XHTML1.1 parsing ⋠ +PASS XHTML1.1 parsing ⊀ +PASS XHTML1.1 parsing ⪯̸ +PASS XHTML1.1 parsing ⪯̸ +PASS XHTML1.1 parsing ⤳̸ +PASS XHTML1.1 parsing ↛ +PASS XHTML1.1 parsing ⇏ +PASS XHTML1.1 parsing ↝̸ +PASS XHTML1.1 parsing ↛ +PASS XHTML1.1 parsing ⇏ +PASS XHTML1.1 parsing ⋫ +PASS XHTML1.1 parsing ⋭ +PASS XHTML1.1 parsing ⊁ +PASS XHTML1.1 parsing ⋡ +PASS XHTML1.1 parsing ⪰̸ +PASS XHTML1.1 parsing 𝒩 +PASS XHTML1.1 parsing 𝓃 +PASS XHTML1.1 parsing ∤ +PASS XHTML1.1 parsing ∦ +PASS XHTML1.1 parsing ≁ +PASS XHTML1.1 parsing ≄ +PASS XHTML1.1 parsing ≄ +PASS XHTML1.1 parsing ∤ +PASS XHTML1.1 parsing ∦ +PASS XHTML1.1 parsing ⋢ +PASS XHTML1.1 parsing ⋣ +PASS XHTML1.1 parsing ⊄ +PASS XHTML1.1 parsing ⫅̸ +PASS XHTML1.1 parsing ⊈ +PASS XHTML1.1 parsing ⊂⃒ +PASS XHTML1.1 parsing ⊈ +PASS XHTML1.1 parsing ⫅̸ +PASS XHTML1.1 parsing ⊁ +PASS XHTML1.1 parsing ⪰̸ +PASS XHTML1.1 parsing ⊅ +PASS XHTML1.1 parsing ⫆̸ +PASS XHTML1.1 parsing ⊉ +PASS XHTML1.1 parsing ⊃⃒ +PASS XHTML1.1 parsing ⊉ +PASS XHTML1.1 parsing ⫆̸ +PASS XHTML1.1 parsing ≹ +PASS XHTML1.1 parsing Ñ +PASS XHTML1.1 parsing ñ +PASS XHTML1.1 parsing ≸ +PASS XHTML1.1 parsing ⋪ +PASS XHTML1.1 parsing ⋬ +PASS XHTML1.1 parsing ⋫ +PASS XHTML1.1 parsing ⋭ +PASS XHTML1.1 parsing Ν +PASS XHTML1.1 parsing ν +PASS XHTML1.1 parsing # +PASS XHTML1.1 parsing № +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing ≍⃒ +PASS XHTML1.1 parsing ⊬ +PASS XHTML1.1 parsing ⊭ +PASS XHTML1.1 parsing ⊮ +PASS XHTML1.1 parsing ⊯ +PASS XHTML1.1 parsing ≥⃒ +PASS XHTML1.1 parsing >⃒ +PASS XHTML1.1 parsing ⤄ +PASS XHTML1.1 parsing ⧞ +PASS XHTML1.1 parsing ⤂ +PASS XHTML1.1 parsing ≤⃒ +FAIL XHTML1.1 parsing <⃒ assert_equals: XHTML1.1 parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML1.1 parsing ⊴⃒ +PASS XHTML1.1 parsing ⤃ +PASS XHTML1.1 parsing ⊵⃒ +PASS XHTML1.1 parsing ∼⃒ +PASS XHTML1.1 parsing ⤣ +PASS XHTML1.1 parsing ↖ +PASS XHTML1.1 parsing ⇖ +PASS XHTML1.1 parsing ↖ +PASS XHTML1.1 parsing ⤧ +PASS XHTML1.1 parsing Ó +PASS XHTML1.1 parsing ó +PASS XHTML1.1 parsing ⊛ +PASS XHTML1.1 parsing Ô +PASS XHTML1.1 parsing ô +PASS XHTML1.1 parsing ⊚ +PASS XHTML1.1 parsing О +PASS XHTML1.1 parsing о +PASS XHTML1.1 parsing ⊝ +PASS XHTML1.1 parsing Ő +PASS XHTML1.1 parsing ő +PASS XHTML1.1 parsing ⨸ +PASS XHTML1.1 parsing ⊙ +PASS XHTML1.1 parsing ⦼ +PASS XHTML1.1 parsing Œ +PASS XHTML1.1 parsing œ +PASS XHTML1.1 parsing ⦿ +PASS XHTML1.1 parsing 𝔒 +PASS XHTML1.1 parsing 𝔬 +PASS XHTML1.1 parsing ˛ +PASS XHTML1.1 parsing Ò +PASS XHTML1.1 parsing ò +PASS XHTML1.1 parsing ⧁ +PASS XHTML1.1 parsing ⦵ +PASS XHTML1.1 parsing Ω +PASS XHTML1.1 parsing ∮ +PASS XHTML1.1 parsing ↺ +PASS XHTML1.1 parsing ⦾ +PASS XHTML1.1 parsing ⦻ +PASS XHTML1.1 parsing ‾ +PASS XHTML1.1 parsing ⧀ +PASS XHTML1.1 parsing Ō +PASS XHTML1.1 parsing ō +PASS XHTML1.1 parsing Ω +PASS XHTML1.1 parsing ω +PASS XHTML1.1 parsing Ο +PASS XHTML1.1 parsing ο +PASS XHTML1.1 parsing ⦶ +PASS XHTML1.1 parsing ⊖ +PASS XHTML1.1 parsing 𝕆 +PASS XHTML1.1 parsing 𝕠 +PASS XHTML1.1 parsing ⦷ +PASS XHTML1.1 parsing “ +PASS XHTML1.1 parsing ‘ +PASS XHTML1.1 parsing ⦹ +PASS XHTML1.1 parsing ⊕ +PASS XHTML1.1 parsing ↻ +PASS XHTML1.1 parsing ⩔ +PASS XHTML1.1 parsing ∨ +PASS XHTML1.1 parsing ⩝ +PASS XHTML1.1 parsing ℴ +PASS XHTML1.1 parsing ℴ +PASS XHTML1.1 parsing ª +PASS XHTML1.1 parsing º +PASS XHTML1.1 parsing ⊶ +PASS XHTML1.1 parsing ⩖ +PASS XHTML1.1 parsing ⩗ +PASS XHTML1.1 parsing ⩛ +PASS XHTML1.1 parsing Ⓢ +PASS XHTML1.1 parsing 𝒪 +PASS XHTML1.1 parsing ℴ +PASS XHTML1.1 parsing Ø +PASS XHTML1.1 parsing ø +PASS XHTML1.1 parsing ⊘ +PASS XHTML1.1 parsing Õ +PASS XHTML1.1 parsing õ +PASS XHTML1.1 parsing ⨶ +PASS XHTML1.1 parsing ⨷ +PASS XHTML1.1 parsing ⊗ +PASS XHTML1.1 parsing Ö +PASS XHTML1.1 parsing ö +PASS XHTML1.1 parsing ⌽ +PASS XHTML1.1 parsing ‾ +PASS XHTML1.1 parsing ⏞ +PASS XHTML1.1 parsing ⎴ +PASS XHTML1.1 parsing ⏜ +PASS XHTML1.1 parsing ¶ +PASS XHTML1.1 parsing ∥ +PASS XHTML1.1 parsing ∥ +PASS XHTML1.1 parsing ⫳ +PASS XHTML1.1 parsing ⫽ +PASS XHTML1.1 parsing ∂ +PASS XHTML1.1 parsing ∂ +PASS XHTML1.1 parsing П +PASS XHTML1.1 parsing п +PASS XHTML1.1 parsing % +PASS XHTML1.1 parsing . +PASS XHTML1.1 parsing ‰ +PASS XHTML1.1 parsing ⊥ +PASS XHTML1.1 parsing ‱ +PASS XHTML1.1 parsing 𝔓 +PASS XHTML1.1 parsing 𝔭 +PASS XHTML1.1 parsing Φ +PASS XHTML1.1 parsing φ +PASS XHTML1.1 parsing ϕ +PASS XHTML1.1 parsing ℳ +PASS XHTML1.1 parsing ☎ +PASS XHTML1.1 parsing Π +PASS XHTML1.1 parsing π +PASS XHTML1.1 parsing ⋔ +PASS XHTML1.1 parsing ϖ +PASS XHTML1.1 parsing ℏ +PASS XHTML1.1 parsing ℎ +PASS XHTML1.1 parsing ℏ +PASS XHTML1.1 parsing ⨣ +PASS XHTML1.1 parsing ⊞ +PASS XHTML1.1 parsing ⨢ +PASS XHTML1.1 parsing + +PASS XHTML1.1 parsing ∔ +PASS XHTML1.1 parsing ⨥ +PASS XHTML1.1 parsing ⩲ +PASS XHTML1.1 parsing ± +PASS XHTML1.1 parsing ± +PASS XHTML1.1 parsing ⨦ +PASS XHTML1.1 parsing ⨧ +PASS XHTML1.1 parsing ± +PASS XHTML1.1 parsing ℌ +PASS XHTML1.1 parsing ⨕ +PASS XHTML1.1 parsing 𝕡 +PASS XHTML1.1 parsing ℙ +PASS XHTML1.1 parsing £ +PASS XHTML1.1 parsing ⪷ +PASS XHTML1.1 parsing ⪻ +PASS XHTML1.1 parsing ≺ +PASS XHTML1.1 parsing ≼ +PASS XHTML1.1 parsing ⪷ +PASS XHTML1.1 parsing ≺ +PASS XHTML1.1 parsing ≼ +PASS XHTML1.1 parsing ≺ +PASS XHTML1.1 parsing ⪯ +PASS XHTML1.1 parsing ≼ +PASS XHTML1.1 parsing ≾ +PASS XHTML1.1 parsing ⪯ +PASS XHTML1.1 parsing ⪹ +PASS XHTML1.1 parsing ⪵ +PASS XHTML1.1 parsing ⋨ +PASS XHTML1.1 parsing ⪯ +PASS XHTML1.1 parsing ⪳ +PASS XHTML1.1 parsing ≾ +PASS XHTML1.1 parsing ′ +PASS XHTML1.1 parsing ″ +PASS XHTML1.1 parsing ℙ +PASS XHTML1.1 parsing ⪹ +PASS XHTML1.1 parsing ⪵ +PASS XHTML1.1 parsing ⋨ +PASS XHTML1.1 parsing ∏ +PASS XHTML1.1 parsing ∏ +PASS XHTML1.1 parsing ⌮ +PASS XHTML1.1 parsing ⌒ +PASS XHTML1.1 parsing ⌓ +PASS XHTML1.1 parsing ∝ +PASS XHTML1.1 parsing ∝ +PASS XHTML1.1 parsing ∷ +PASS XHTML1.1 parsing ∝ +PASS XHTML1.1 parsing ≾ +PASS XHTML1.1 parsing ⊰ +PASS XHTML1.1 parsing 𝒫 +PASS XHTML1.1 parsing 𝓅 +PASS XHTML1.1 parsing Ψ +PASS XHTML1.1 parsing ψ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing 𝔔 +PASS XHTML1.1 parsing 𝔮 +PASS XHTML1.1 parsing ⨌ +PASS XHTML1.1 parsing 𝕢 +PASS XHTML1.1 parsing ℚ +PASS XHTML1.1 parsing ⁗ +PASS XHTML1.1 parsing 𝒬 +PASS XHTML1.1 parsing 𝓆 +PASS XHTML1.1 parsing ℍ +PASS XHTML1.1 parsing ⨖ +PASS XHTML1.1 parsing ? +PASS XHTML1.1 parsing ≟ +PASS XHTML1.1 parsing " +PASS XHTML1.1 parsing " +PASS XHTML1.1 parsing ⇛ +PASS XHTML1.1 parsing ∽̱ +PASS XHTML1.1 parsing Ŕ +PASS XHTML1.1 parsing ŕ +PASS XHTML1.1 parsing √ +PASS XHTML1.1 parsing ⦳ +PASS XHTML1.1 parsing ⟩ +PASS XHTML1.1 parsing ⟫ +PASS XHTML1.1 parsing ⦒ +PASS XHTML1.1 parsing ⦥ +PASS XHTML1.1 parsing ⟩ +PASS XHTML1.1 parsing » +PASS XHTML1.1 parsing ⥵ +PASS XHTML1.1 parsing ⇥ +PASS XHTML1.1 parsing ⤠ +PASS XHTML1.1 parsing ⤳ +PASS XHTML1.1 parsing → +PASS XHTML1.1 parsing ↠ +PASS XHTML1.1 parsing ⇒ +PASS XHTML1.1 parsing ⤞ +PASS XHTML1.1 parsing ↪ +PASS XHTML1.1 parsing ↬ +PASS XHTML1.1 parsing ⥅ +PASS XHTML1.1 parsing ⥴ +PASS XHTML1.1 parsing ⤖ +PASS XHTML1.1 parsing ↣ +PASS XHTML1.1 parsing ↝ +PASS XHTML1.1 parsing ⤚ +PASS XHTML1.1 parsing ⤜ +PASS XHTML1.1 parsing ∶ +PASS XHTML1.1 parsing ℚ +PASS XHTML1.1 parsing ⤍ +PASS XHTML1.1 parsing ⤏ +PASS XHTML1.1 parsing ⤐ +PASS XHTML1.1 parsing ❳ +PASS XHTML1.1 parsing } +PASS XHTML1.1 parsing ] +PASS XHTML1.1 parsing ⦌ +PASS XHTML1.1 parsing ⦎ +PASS XHTML1.1 parsing ⦐ +PASS XHTML1.1 parsing Ř +PASS XHTML1.1 parsing ř +PASS XHTML1.1 parsing Ŗ +PASS XHTML1.1 parsing ŗ +PASS XHTML1.1 parsing ⌉ +PASS XHTML1.1 parsing } +PASS XHTML1.1 parsing Р +PASS XHTML1.1 parsing р +PASS XHTML1.1 parsing ⤷ +PASS XHTML1.1 parsing ⥩ +PASS XHTML1.1 parsing ” +PASS XHTML1.1 parsing ” +PASS XHTML1.1 parsing ↳ +PASS XHTML1.1 parsing ℜ +PASS XHTML1.1 parsing ℛ +PASS XHTML1.1 parsing ℜ +PASS XHTML1.1 parsing ℝ +PASS XHTML1.1 parsing ℜ +PASS XHTML1.1 parsing ▭ +PASS XHTML1.1 parsing ® +PASS XHTML1.1 parsing ® +PASS XHTML1.1 parsing ∋ +PASS XHTML1.1 parsing ⇋ +PASS XHTML1.1 parsing ⥯ +PASS XHTML1.1 parsing ⥽ +PASS XHTML1.1 parsing ⌋ +PASS XHTML1.1 parsing 𝔯 +PASS XHTML1.1 parsing ℜ +PASS XHTML1.1 parsing ⥤ +PASS XHTML1.1 parsing ⇁ +PASS XHTML1.1 parsing ⇀ +PASS XHTML1.1 parsing ⥬ +PASS XHTML1.1 parsing Ρ +PASS XHTML1.1 parsing ρ +PASS XHTML1.1 parsing ϱ +PASS XHTML1.1 parsing ⟩ +PASS XHTML1.1 parsing ⇥ +PASS XHTML1.1 parsing → +PASS XHTML1.1 parsing → +PASS XHTML1.1 parsing ⇒ +PASS XHTML1.1 parsing ⇄ +PASS XHTML1.1 parsing ↣ +PASS XHTML1.1 parsing ⌉ +PASS XHTML1.1 parsing ⟧ +PASS XHTML1.1 parsing ⥝ +PASS XHTML1.1 parsing ⥕ +PASS XHTML1.1 parsing ⇂ +PASS XHTML1.1 parsing ⌋ +PASS XHTML1.1 parsing ⇁ +PASS XHTML1.1 parsing ⇀ +PASS XHTML1.1 parsing ⇄ +PASS XHTML1.1 parsing ⇌ +PASS XHTML1.1 parsing ⇉ +PASS XHTML1.1 parsing ↝ +PASS XHTML1.1 parsing ↦ +PASS XHTML1.1 parsing ⊢ +PASS XHTML1.1 parsing ⥛ +PASS XHTML1.1 parsing ⋌ +PASS XHTML1.1 parsing ⧐ +PASS XHTML1.1 parsing ⊳ +PASS XHTML1.1 parsing ⊵ +PASS XHTML1.1 parsing ⥏ +PASS XHTML1.1 parsing ⥜ +PASS XHTML1.1 parsing ⥔ +PASS XHTML1.1 parsing ↾ +PASS XHTML1.1 parsing ⥓ +PASS XHTML1.1 parsing ⇀ +PASS XHTML1.1 parsing ˚ +PASS XHTML1.1 parsing ≓ +PASS XHTML1.1 parsing ⇄ +PASS XHTML1.1 parsing ⇌ +PASS XHTML1.1 parsing ‏ +PASS XHTML1.1 parsing ⎱ +PASS XHTML1.1 parsing ⎱ +PASS XHTML1.1 parsing ⫮ +PASS XHTML1.1 parsing ⟭ +PASS XHTML1.1 parsing ⇾ +PASS XHTML1.1 parsing ⟧ +PASS XHTML1.1 parsing ⦆ +PASS XHTML1.1 parsing 𝕣 +PASS XHTML1.1 parsing ℝ +PASS XHTML1.1 parsing ⨮ +PASS XHTML1.1 parsing ⨵ +PASS XHTML1.1 parsing ⥰ +PASS XHTML1.1 parsing ) +PASS XHTML1.1 parsing ⦔ +PASS XHTML1.1 parsing ⨒ +PASS XHTML1.1 parsing ⇉ +PASS XHTML1.1 parsing ⇛ +PASS XHTML1.1 parsing › +PASS XHTML1.1 parsing 𝓇 +PASS XHTML1.1 parsing ℛ +PASS XHTML1.1 parsing ↱ +PASS XHTML1.1 parsing ↱ +PASS XHTML1.1 parsing ] +PASS XHTML1.1 parsing ’ +PASS XHTML1.1 parsing ’ +PASS XHTML1.1 parsing ⋌ +PASS XHTML1.1 parsing ⋊ +PASS XHTML1.1 parsing ▹ +PASS XHTML1.1 parsing ⊵ +PASS XHTML1.1 parsing ▸ +PASS XHTML1.1 parsing ⧎ +PASS XHTML1.1 parsing ⧴ +PASS XHTML1.1 parsing ⥨ +PASS XHTML1.1 parsing ℞ +PASS XHTML1.1 parsing Ś +PASS XHTML1.1 parsing ś +PASS XHTML1.1 parsing ‚ +PASS XHTML1.1 parsing ⪸ +PASS XHTML1.1 parsing Š +PASS XHTML1.1 parsing š +PASS XHTML1.1 parsing ⪼ +PASS XHTML1.1 parsing ≻ +PASS XHTML1.1 parsing ≽ +PASS XHTML1.1 parsing ⪰ +PASS XHTML1.1 parsing ⪴ +PASS XHTML1.1 parsing Ş +PASS XHTML1.1 parsing ş +PASS XHTML1.1 parsing Ŝ +PASS XHTML1.1 parsing ŝ +PASS XHTML1.1 parsing ⪺ +PASS XHTML1.1 parsing ⪶ +PASS XHTML1.1 parsing ⋩ +PASS XHTML1.1 parsing ⨓ +PASS XHTML1.1 parsing ≿ +PASS XHTML1.1 parsing С +PASS XHTML1.1 parsing с +PASS XHTML1.1 parsing ⊡ +PASS XHTML1.1 parsing ⋅ +PASS XHTML1.1 parsing ⩦ +PASS XHTML1.1 parsing ⤥ +PASS XHTML1.1 parsing ↘ +PASS XHTML1.1 parsing ⇘ +PASS XHTML1.1 parsing ↘ +PASS XHTML1.1 parsing § +PASS XHTML1.1 parsing ; +PASS XHTML1.1 parsing ⤩ +PASS XHTML1.1 parsing ∖ +PASS XHTML1.1 parsing ∖ +PASS XHTML1.1 parsing ✶ +PASS XHTML1.1 parsing 𝔖 +PASS XHTML1.1 parsing 𝔰 +PASS XHTML1.1 parsing ⌢ +PASS XHTML1.1 parsing ♯ +PASS XHTML1.1 parsing Щ +PASS XHTML1.1 parsing щ +PASS XHTML1.1 parsing Ш +PASS XHTML1.1 parsing ш +PASS XHTML1.1 parsing ↓ +PASS XHTML1.1 parsing ← +PASS XHTML1.1 parsing ∣ +PASS XHTML1.1 parsing ∥ +PASS XHTML1.1 parsing → +PASS XHTML1.1 parsing ↑ +PASS XHTML1.1 parsing ­ +PASS XHTML1.1 parsing Σ +PASS XHTML1.1 parsing σ +PASS XHTML1.1 parsing ς +PASS XHTML1.1 parsing ς +PASS XHTML1.1 parsing ∼ +PASS XHTML1.1 parsing ⩪ +PASS XHTML1.1 parsing ≃ +PASS XHTML1.1 parsing ≃ +PASS XHTML1.1 parsing ⪞ +PASS XHTML1.1 parsing ⪠ +PASS XHTML1.1 parsing ⪝ +PASS XHTML1.1 parsing ⪟ +PASS XHTML1.1 parsing ≆ +PASS XHTML1.1 parsing ⨤ +PASS XHTML1.1 parsing ⥲ +PASS XHTML1.1 parsing ← +PASS XHTML1.1 parsing ∘ +PASS XHTML1.1 parsing ∖ +PASS XHTML1.1 parsing ⨳ +PASS XHTML1.1 parsing ⧤ +PASS XHTML1.1 parsing ∣ +PASS XHTML1.1 parsing ⌣ +PASS XHTML1.1 parsing ⪪ +PASS XHTML1.1 parsing ⪬ +PASS XHTML1.1 parsing ⪬︀ +PASS XHTML1.1 parsing Ь +PASS XHTML1.1 parsing ь +PASS XHTML1.1 parsing ⌿ +PASS XHTML1.1 parsing ⧄ +PASS XHTML1.1 parsing / +PASS XHTML1.1 parsing 𝕊 +PASS XHTML1.1 parsing 𝕤 +PASS XHTML1.1 parsing ♠ +PASS XHTML1.1 parsing ♠ +PASS XHTML1.1 parsing ∥ +PASS XHTML1.1 parsing ⊓ +PASS XHTML1.1 parsing ⊓︀ +PASS XHTML1.1 parsing ⊔ +PASS XHTML1.1 parsing ⊔︀ +PASS XHTML1.1 parsing √ +PASS XHTML1.1 parsing ⊏ +PASS XHTML1.1 parsing ⊑ +PASS XHTML1.1 parsing ⊏ +PASS XHTML1.1 parsing ⊑ +PASS XHTML1.1 parsing ⊐ +PASS XHTML1.1 parsing ⊒ +PASS XHTML1.1 parsing ⊐ +PASS XHTML1.1 parsing ⊒ +PASS XHTML1.1 parsing □ +PASS XHTML1.1 parsing □ +PASS XHTML1.1 parsing ⊓ +PASS XHTML1.1 parsing ⊏ +PASS XHTML1.1 parsing ⊑ +PASS XHTML1.1 parsing ⊐ +PASS XHTML1.1 parsing ⊒ +PASS XHTML1.1 parsing ⊔ +PASS XHTML1.1 parsing ▪ +PASS XHTML1.1 parsing □ +PASS XHTML1.1 parsing ▪ +PASS XHTML1.1 parsing → +PASS XHTML1.1 parsing 𝒮 +PASS XHTML1.1 parsing 𝓈 +PASS XHTML1.1 parsing ∖ +PASS XHTML1.1 parsing ⌣ +PASS XHTML1.1 parsing ⋆ +PASS XHTML1.1 parsing ⋆ +PASS XHTML1.1 parsing ☆ +PASS XHTML1.1 parsing ★ +PASS XHTML1.1 parsing ϵ +PASS XHTML1.1 parsing ϕ +PASS XHTML1.1 parsing ¯ +PASS XHTML1.1 parsing ⊂ +PASS XHTML1.1 parsing ⋐ +PASS XHTML1.1 parsing ⪽ +PASS XHTML1.1 parsing ⫅ +PASS XHTML1.1 parsing ⊆ +PASS XHTML1.1 parsing ⫃ +PASS XHTML1.1 parsing ⫁ +PASS XHTML1.1 parsing ⫋ +PASS XHTML1.1 parsing ⊊ +PASS XHTML1.1 parsing ⪿ +PASS XHTML1.1 parsing ⥹ +PASS XHTML1.1 parsing ⊂ +PASS XHTML1.1 parsing ⋐ +PASS XHTML1.1 parsing ⊆ +PASS XHTML1.1 parsing ⫅ +PASS XHTML1.1 parsing ⊆ +PASS XHTML1.1 parsing ⊊ +PASS XHTML1.1 parsing ⫋ +PASS XHTML1.1 parsing ⫇ +PASS XHTML1.1 parsing ⫕ +PASS XHTML1.1 parsing ⫓ +PASS XHTML1.1 parsing ⪸ +PASS XHTML1.1 parsing ≻ +PASS XHTML1.1 parsing ≽ +PASS XHTML1.1 parsing ≻ +PASS XHTML1.1 parsing ⪰ +PASS XHTML1.1 parsing ≽ +PASS XHTML1.1 parsing ≿ +PASS XHTML1.1 parsing ⪰ +PASS XHTML1.1 parsing ⪺ +PASS XHTML1.1 parsing ⪶ +PASS XHTML1.1 parsing ⋩ +PASS XHTML1.1 parsing ≿ +PASS XHTML1.1 parsing ∋ +PASS XHTML1.1 parsing ∑ +PASS XHTML1.1 parsing ∑ +PASS XHTML1.1 parsing ♪ +PASS XHTML1.1 parsing ¹ +PASS XHTML1.1 parsing ² +PASS XHTML1.1 parsing ³ +PASS XHTML1.1 parsing ⊃ +PASS XHTML1.1 parsing ⋑ +PASS XHTML1.1 parsing ⪾ +PASS XHTML1.1 parsing ⫘ +PASS XHTML1.1 parsing ⫆ +PASS XHTML1.1 parsing ⊇ +PASS XHTML1.1 parsing ⫄ +PASS XHTML1.1 parsing ⊃ +PASS XHTML1.1 parsing ⊇ +PASS XHTML1.1 parsing ⟉ +PASS XHTML1.1 parsing ⫗ +PASS XHTML1.1 parsing ⥻ +PASS XHTML1.1 parsing ⫂ +PASS XHTML1.1 parsing ⫌ +PASS XHTML1.1 parsing ⊋ +PASS XHTML1.1 parsing ⫀ +PASS XHTML1.1 parsing ⊃ +PASS XHTML1.1 parsing ⋑ +PASS XHTML1.1 parsing ⊇ +PASS XHTML1.1 parsing ⫆ +PASS XHTML1.1 parsing ⊋ +PASS XHTML1.1 parsing ⫌ +PASS XHTML1.1 parsing ⫈ +PASS XHTML1.1 parsing ⫔ +PASS XHTML1.1 parsing ⫖ +PASS XHTML1.1 parsing ⤦ +PASS XHTML1.1 parsing ↙ +PASS XHTML1.1 parsing ⇙ +PASS XHTML1.1 parsing ↙ +PASS XHTML1.1 parsing ⤪ +PASS XHTML1.1 parsing ß +PASS XHTML1.1 parsing 	 +PASS XHTML1.1 parsing ⌖ +PASS XHTML1.1 parsing Τ +PASS XHTML1.1 parsing τ +PASS XHTML1.1 parsing ⎴ +PASS XHTML1.1 parsing Ť +PASS XHTML1.1 parsing ť +PASS XHTML1.1 parsing Ţ +PASS XHTML1.1 parsing ţ +PASS XHTML1.1 parsing Т +PASS XHTML1.1 parsing т +PASS XHTML1.1 parsing ⃛ +PASS XHTML1.1 parsing ⌕ +PASS XHTML1.1 parsing 𝔗 +PASS XHTML1.1 parsing 𝔱 +PASS XHTML1.1 parsing ∴ +PASS XHTML1.1 parsing ∴ +PASS XHTML1.1 parsing ∴ +PASS XHTML1.1 parsing Θ +PASS XHTML1.1 parsing θ +PASS XHTML1.1 parsing ϑ +PASS XHTML1.1 parsing ϑ +PASS XHTML1.1 parsing ≈ +PASS XHTML1.1 parsing ∼ +PASS XHTML1.1 parsing    +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing ≈ +PASS XHTML1.1 parsing ∼ +PASS XHTML1.1 parsing Þ +PASS XHTML1.1 parsing þ +PASS XHTML1.1 parsing ˜ +PASS XHTML1.1 parsing ∼ +PASS XHTML1.1 parsing ≃ +PASS XHTML1.1 parsing ≅ +PASS XHTML1.1 parsing ≈ +PASS XHTML1.1 parsing ⨱ +PASS XHTML1.1 parsing ⊠ +PASS XHTML1.1 parsing × +PASS XHTML1.1 parsing ⨰ +PASS XHTML1.1 parsing ∭ +PASS XHTML1.1 parsing ⤨ +PASS XHTML1.1 parsing ⌶ +PASS XHTML1.1 parsing ⫱ +PASS XHTML1.1 parsing ⊤ +PASS XHTML1.1 parsing 𝕋 +PASS XHTML1.1 parsing 𝕥 +PASS XHTML1.1 parsing ⫚ +PASS XHTML1.1 parsing ⤩ +PASS XHTML1.1 parsing ‴ +PASS XHTML1.1 parsing ™ +PASS XHTML1.1 parsing ™ +PASS XHTML1.1 parsing ▵ +PASS XHTML1.1 parsing ▿ +PASS XHTML1.1 parsing ◃ +PASS XHTML1.1 parsing ⊴ +PASS XHTML1.1 parsing ≜ +PASS XHTML1.1 parsing ▹ +PASS XHTML1.1 parsing ⊵ +PASS XHTML1.1 parsing ◬ +PASS XHTML1.1 parsing ≜ +PASS XHTML1.1 parsing ⨺ +PASS XHTML1.1 parsing ⃛ +PASS XHTML1.1 parsing ⨹ +PASS XHTML1.1 parsing ⧍ +PASS XHTML1.1 parsing ⨻ +PASS XHTML1.1 parsing ⏢ +PASS XHTML1.1 parsing 𝒯 +PASS XHTML1.1 parsing 𝓉 +PASS XHTML1.1 parsing Ц +PASS XHTML1.1 parsing ц +PASS XHTML1.1 parsing Ћ +PASS XHTML1.1 parsing ћ +PASS XHTML1.1 parsing Ŧ +PASS XHTML1.1 parsing ŧ +PASS XHTML1.1 parsing ≬ +PASS XHTML1.1 parsing ↞ +PASS XHTML1.1 parsing ↠ +PASS XHTML1.1 parsing Ú +PASS XHTML1.1 parsing ú +PASS XHTML1.1 parsing ↑ +PASS XHTML1.1 parsing ↟ +PASS XHTML1.1 parsing ⇑ +PASS XHTML1.1 parsing ⥉ +PASS XHTML1.1 parsing Ў +PASS XHTML1.1 parsing ў +PASS XHTML1.1 parsing Ŭ +PASS XHTML1.1 parsing ŭ +PASS XHTML1.1 parsing Û +PASS XHTML1.1 parsing û +PASS XHTML1.1 parsing У +PASS XHTML1.1 parsing у +PASS XHTML1.1 parsing ⇅ +PASS XHTML1.1 parsing Ű +PASS XHTML1.1 parsing ű +PASS XHTML1.1 parsing ⥮ +PASS XHTML1.1 parsing ⥾ +PASS XHTML1.1 parsing 𝔘 +PASS XHTML1.1 parsing 𝔲 +PASS XHTML1.1 parsing Ù +PASS XHTML1.1 parsing ù +PASS XHTML1.1 parsing ⥣ +PASS XHTML1.1 parsing ↿ +PASS XHTML1.1 parsing ↾ +PASS XHTML1.1 parsing ▀ +PASS XHTML1.1 parsing ⌜ +PASS XHTML1.1 parsing ⌜ +PASS XHTML1.1 parsing ⌏ +PASS XHTML1.1 parsing ◸ +PASS XHTML1.1 parsing Ū +PASS XHTML1.1 parsing ū +PASS XHTML1.1 parsing ¨ +PASS XHTML1.1 parsing _ +PASS XHTML1.1 parsing ⏟ +PASS XHTML1.1 parsing ⎵ +PASS XHTML1.1 parsing ⏝ +PASS XHTML1.1 parsing ⋃ +PASS XHTML1.1 parsing ⊎ +PASS XHTML1.1 parsing Ų +PASS XHTML1.1 parsing ų +PASS XHTML1.1 parsing 𝕌 +PASS XHTML1.1 parsing 𝕦 +PASS XHTML1.1 parsing ⤒ +PASS XHTML1.1 parsing ↑ +PASS XHTML1.1 parsing ↑ +PASS XHTML1.1 parsing ⇑ +PASS XHTML1.1 parsing ⇅ +PASS XHTML1.1 parsing ↕ +PASS XHTML1.1 parsing ↕ +PASS XHTML1.1 parsing ⇕ +PASS XHTML1.1 parsing ⥮ +PASS XHTML1.1 parsing ↿ +PASS XHTML1.1 parsing ↾ +PASS XHTML1.1 parsing ⊎ +PASS XHTML1.1 parsing ↖ +PASS XHTML1.1 parsing ↗ +PASS XHTML1.1 parsing υ +PASS XHTML1.1 parsing ϒ +PASS XHTML1.1 parsing ϒ +PASS XHTML1.1 parsing Υ +PASS XHTML1.1 parsing υ +PASS XHTML1.1 parsing ↥ +PASS XHTML1.1 parsing ⊥ +PASS XHTML1.1 parsing ⇈ +PASS XHTML1.1 parsing ⌝ +PASS XHTML1.1 parsing ⌝ +PASS XHTML1.1 parsing ⌎ +PASS XHTML1.1 parsing Ů +PASS XHTML1.1 parsing ů +PASS XHTML1.1 parsing ◹ +PASS XHTML1.1 parsing 𝒰 +PASS XHTML1.1 parsing 𝓊 +PASS XHTML1.1 parsing ⋰ +PASS XHTML1.1 parsing Ũ +PASS XHTML1.1 parsing ũ +PASS XHTML1.1 parsing ▵ +PASS XHTML1.1 parsing ▴ +PASS XHTML1.1 parsing ⇈ +PASS XHTML1.1 parsing Ü +PASS XHTML1.1 parsing ü +PASS XHTML1.1 parsing ⦧ +PASS XHTML1.1 parsing ⦜ +PASS XHTML1.1 parsing ϵ +PASS XHTML1.1 parsing ϰ +PASS XHTML1.1 parsing ∅ +PASS XHTML1.1 parsing ϕ +PASS XHTML1.1 parsing ϖ +PASS XHTML1.1 parsing ∝ +PASS XHTML1.1 parsing ↕ +PASS XHTML1.1 parsing ⇕ +PASS XHTML1.1 parsing ϱ +PASS XHTML1.1 parsing ς +PASS XHTML1.1 parsing ⊊︀ +PASS XHTML1.1 parsing ⫋︀ +PASS XHTML1.1 parsing ⊋︀ +PASS XHTML1.1 parsing ⫌︀ +PASS XHTML1.1 parsing ϑ +PASS XHTML1.1 parsing ⊲ +PASS XHTML1.1 parsing ⊳ +PASS XHTML1.1 parsing ⫨ +PASS XHTML1.1 parsing ⫫ +PASS XHTML1.1 parsing ⫩ +PASS XHTML1.1 parsing В +PASS XHTML1.1 parsing в +PASS XHTML1.1 parsing ⊢ +PASS XHTML1.1 parsing ⊨ +PASS XHTML1.1 parsing ⊩ +PASS XHTML1.1 parsing ⊫ +PASS XHTML1.1 parsing ⫦ +PASS XHTML1.1 parsing ⊻ +PASS XHTML1.1 parsing ∨ +PASS XHTML1.1 parsing ⋁ +PASS XHTML1.1 parsing ≚ +PASS XHTML1.1 parsing ⋮ +PASS XHTML1.1 parsing | +PASS XHTML1.1 parsing ‖ +PASS XHTML1.1 parsing | +PASS XHTML1.1 parsing ‖ +PASS XHTML1.1 parsing ∣ +PASS XHTML1.1 parsing | +PASS XHTML1.1 parsing ❘ +PASS XHTML1.1 parsing ≀ +PASS XHTML1.1 parsing   +PASS XHTML1.1 parsing 𝔙 +PASS XHTML1.1 parsing 𝔳 +PASS XHTML1.1 parsing ⊲ +PASS XHTML1.1 parsing ⊂⃒ +PASS XHTML1.1 parsing ⊃⃒ +PASS XHTML1.1 parsing 𝕍 +PASS XHTML1.1 parsing 𝕧 +PASS XHTML1.1 parsing ∝ +PASS XHTML1.1 parsing ⊳ +PASS XHTML1.1 parsing 𝒱 +PASS XHTML1.1 parsing 𝓋 +PASS XHTML1.1 parsing ⫋︀ +PASS XHTML1.1 parsing ⊊︀ +PASS XHTML1.1 parsing ⫌︀ +PASS XHTML1.1 parsing ⊋︀ +PASS XHTML1.1 parsing ⊪ +PASS XHTML1.1 parsing ⦚ +PASS XHTML1.1 parsing Ŵ +PASS XHTML1.1 parsing ŵ +PASS XHTML1.1 parsing ⩟ +PASS XHTML1.1 parsing ∧ +PASS XHTML1.1 parsing ⋀ +PASS XHTML1.1 parsing ≙ +PASS XHTML1.1 parsing ℘ +PASS XHTML1.1 parsing 𝔚 +PASS XHTML1.1 parsing 𝔴 +PASS XHTML1.1 parsing 𝕎 +PASS XHTML1.1 parsing 𝕨 +PASS XHTML1.1 parsing ℘ +PASS XHTML1.1 parsing ≀ +PASS XHTML1.1 parsing ≀ +PASS XHTML1.1 parsing 𝒲 +PASS XHTML1.1 parsing 𝓌 +PASS XHTML1.1 parsing ⋂ +PASS XHTML1.1 parsing ◯ +PASS XHTML1.1 parsing ⋃ +PASS XHTML1.1 parsing ▽ +PASS XHTML1.1 parsing 𝔛 +PASS XHTML1.1 parsing 𝔵 +PASS XHTML1.1 parsing ⟷ +PASS XHTML1.1 parsing ⟺ +PASS XHTML1.1 parsing Ξ +PASS XHTML1.1 parsing ξ +PASS XHTML1.1 parsing ⟵ +PASS XHTML1.1 parsing ⟸ +PASS XHTML1.1 parsing ⟼ +PASS XHTML1.1 parsing ⋻ +PASS XHTML1.1 parsing ⨀ +PASS XHTML1.1 parsing 𝕏 +PASS XHTML1.1 parsing 𝕩 +PASS XHTML1.1 parsing ⨁ +PASS XHTML1.1 parsing ⨂ +PASS XHTML1.1 parsing ⟶ +PASS XHTML1.1 parsing ⟹ +PASS XHTML1.1 parsing 𝒳 +PASS XHTML1.1 parsing 𝓍 +PASS XHTML1.1 parsing ⨆ +PASS XHTML1.1 parsing ⨄ +PASS XHTML1.1 parsing △ +PASS XHTML1.1 parsing ⋁ +PASS XHTML1.1 parsing ⋀ +PASS XHTML1.1 parsing Ý +PASS XHTML1.1 parsing ý +PASS XHTML1.1 parsing Я +PASS XHTML1.1 parsing я +PASS XHTML1.1 parsing Ŷ +PASS XHTML1.1 parsing ŷ +PASS XHTML1.1 parsing Ы +PASS XHTML1.1 parsing ы +PASS XHTML1.1 parsing ¥ +PASS XHTML1.1 parsing 𝔜 +PASS XHTML1.1 parsing 𝔶 +PASS XHTML1.1 parsing Ї +PASS XHTML1.1 parsing ї +PASS XHTML1.1 parsing 𝕐 +PASS XHTML1.1 parsing 𝕪 +PASS XHTML1.1 parsing 𝒴 +PASS XHTML1.1 parsing 𝓎 +PASS XHTML1.1 parsing Ю +PASS XHTML1.1 parsing ю +PASS XHTML1.1 parsing ÿ +PASS XHTML1.1 parsing Ÿ +PASS XHTML1.1 parsing Ź +PASS XHTML1.1 parsing ź +PASS XHTML1.1 parsing Ž +PASS XHTML1.1 parsing ž +PASS XHTML1.1 parsing З +PASS XHTML1.1 parsing з +PASS XHTML1.1 parsing Ż +PASS XHTML1.1 parsing ż +PASS XHTML1.1 parsing ℨ +PASS XHTML1.1 parsing ​ +PASS XHTML1.1 parsing Ζ +PASS XHTML1.1 parsing ζ +PASS XHTML1.1 parsing 𝔷 +PASS XHTML1.1 parsing ℨ +PASS XHTML1.1 parsing Ж +PASS XHTML1.1 parsing ж +PASS XHTML1.1 parsing ⇝ +PASS XHTML1.1 parsing 𝕫 +PASS XHTML1.1 parsing ℤ +PASS XHTML1.1 parsing 𝒵 +PASS XHTML1.1 parsing 𝓏 +PASS XHTML1.1 parsing ‍ +PASS XHTML1.1 parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm new file mode 100644 index 0000000..9f511768 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML 1.1//EN", "foo", "XHTML1.1"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3-expected.txt new file mode 100644 index 0000000..7367981 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML1.0 Strict parsing Á +PASS XHTML1.0 Strict parsing á +PASS XHTML1.0 Strict parsing Ă +PASS XHTML1.0 Strict parsing ă +PASS XHTML1.0 Strict parsing ∾ +PASS XHTML1.0 Strict parsing ∿ +PASS XHTML1.0 Strict parsing ∾̳ +PASS XHTML1.0 Strict parsing  +PASS XHTML1.0 Strict parsing â +PASS XHTML1.0 Strict parsing ´ +PASS XHTML1.0 Strict parsing А +PASS XHTML1.0 Strict parsing а +PASS XHTML1.0 Strict parsing Æ +PASS XHTML1.0 Strict parsing æ +PASS XHTML1.0 Strict parsing ⁡ +PASS XHTML1.0 Strict parsing 𝔄 +PASS XHTML1.0 Strict parsing 𝔞 +PASS XHTML1.0 Strict parsing À +PASS XHTML1.0 Strict parsing à +PASS XHTML1.0 Strict parsing ℵ +PASS XHTML1.0 Strict parsing ℵ +PASS XHTML1.0 Strict parsing Α +PASS XHTML1.0 Strict parsing α +PASS XHTML1.0 Strict parsing Ā +PASS XHTML1.0 Strict parsing ā +PASS XHTML1.0 Strict parsing ⨿ +PASS XHTML1.0 Strict parsing & +FAIL XHTML1.0 Strict parsing & assert_true: expected true got false +PASS XHTML1.0 Strict parsing ⩕ +PASS XHTML1.0 Strict parsing ⩓ +PASS XHTML1.0 Strict parsing ∧ +PASS XHTML1.0 Strict parsing ⩜ +PASS XHTML1.0 Strict parsing ⩘ +PASS XHTML1.0 Strict parsing ⩚ +PASS XHTML1.0 Strict parsing ∠ +PASS XHTML1.0 Strict parsing ⦤ +PASS XHTML1.0 Strict parsing ∠ +PASS XHTML1.0 Strict parsing ⦨ +PASS XHTML1.0 Strict parsing ⦩ +PASS XHTML1.0 Strict parsing ⦪ +PASS XHTML1.0 Strict parsing ⦫ +PASS XHTML1.0 Strict parsing ⦬ +PASS XHTML1.0 Strict parsing ⦭ +PASS XHTML1.0 Strict parsing ⦮ +PASS XHTML1.0 Strict parsing ⦯ +PASS XHTML1.0 Strict parsing ∡ +PASS XHTML1.0 Strict parsing ∟ +PASS XHTML1.0 Strict parsing ⊾ +PASS XHTML1.0 Strict parsing ⦝ +PASS XHTML1.0 Strict parsing ∢ +PASS XHTML1.0 Strict parsing Å +PASS XHTML1.0 Strict parsing ⍼ +PASS XHTML1.0 Strict parsing Ą +PASS XHTML1.0 Strict parsing ą +PASS XHTML1.0 Strict parsing 𝔸 +PASS XHTML1.0 Strict parsing 𝕒 +PASS XHTML1.0 Strict parsing ⩯ +PASS XHTML1.0 Strict parsing ≈ +PASS XHTML1.0 Strict parsing ⩰ +PASS XHTML1.0 Strict parsing ≊ +PASS XHTML1.0 Strict parsing ≋ +PASS XHTML1.0 Strict parsing ' +PASS XHTML1.0 Strict parsing ⁡ +PASS XHTML1.0 Strict parsing ≈ +PASS XHTML1.0 Strict parsing ≊ +PASS XHTML1.0 Strict parsing Å +PASS XHTML1.0 Strict parsing å +PASS XHTML1.0 Strict parsing 𝒜 +PASS XHTML1.0 Strict parsing 𝒶 +PASS XHTML1.0 Strict parsing ≔ +PASS XHTML1.0 Strict parsing * +PASS XHTML1.0 Strict parsing ≈ +PASS XHTML1.0 Strict parsing ≍ +PASS XHTML1.0 Strict parsing à +PASS XHTML1.0 Strict parsing ã +PASS XHTML1.0 Strict parsing Ä +PASS XHTML1.0 Strict parsing ä +PASS XHTML1.0 Strict parsing ∳ +PASS XHTML1.0 Strict parsing ⨑ +PASS XHTML1.0 Strict parsing ≌ +PASS XHTML1.0 Strict parsing ϶ +PASS XHTML1.0 Strict parsing ‵ +PASS XHTML1.0 Strict parsing ∽ +PASS XHTML1.0 Strict parsing ⋍ +PASS XHTML1.0 Strict parsing ∖ +PASS XHTML1.0 Strict parsing ⫧ +PASS XHTML1.0 Strict parsing ⊽ +PASS XHTML1.0 Strict parsing ⌅ +PASS XHTML1.0 Strict parsing ⌆ +PASS XHTML1.0 Strict parsing ⌅ +PASS XHTML1.0 Strict parsing ⎵ +PASS XHTML1.0 Strict parsing ⎶ +PASS XHTML1.0 Strict parsing ≌ +PASS XHTML1.0 Strict parsing Б +PASS XHTML1.0 Strict parsing б +PASS XHTML1.0 Strict parsing „ +PASS XHTML1.0 Strict parsing ∵ +PASS XHTML1.0 Strict parsing ∵ +PASS XHTML1.0 Strict parsing ∵ +PASS XHTML1.0 Strict parsing ⦰ +PASS XHTML1.0 Strict parsing ϶ +PASS XHTML1.0 Strict parsing ℬ +PASS XHTML1.0 Strict parsing ℬ +PASS XHTML1.0 Strict parsing Β +PASS XHTML1.0 Strict parsing β +PASS XHTML1.0 Strict parsing ℶ +PASS XHTML1.0 Strict parsing ≬ +PASS XHTML1.0 Strict parsing 𝔅 +PASS XHTML1.0 Strict parsing 𝔟 +PASS XHTML1.0 Strict parsing ⋂ +PASS XHTML1.0 Strict parsing ◯ +PASS XHTML1.0 Strict parsing ⋃ +PASS XHTML1.0 Strict parsing ⨀ +PASS XHTML1.0 Strict parsing ⨁ +PASS XHTML1.0 Strict parsing ⨂ +PASS XHTML1.0 Strict parsing ⨆ +PASS XHTML1.0 Strict parsing ★ +PASS XHTML1.0 Strict parsing ▽ +PASS XHTML1.0 Strict parsing △ +PASS XHTML1.0 Strict parsing ⨄ +PASS XHTML1.0 Strict parsing ⋁ +PASS XHTML1.0 Strict parsing ⋀ +PASS XHTML1.0 Strict parsing ⤍ +PASS XHTML1.0 Strict parsing ⧫ +PASS XHTML1.0 Strict parsing ▪ +PASS XHTML1.0 Strict parsing ▴ +PASS XHTML1.0 Strict parsing ▾ +PASS XHTML1.0 Strict parsing ◂ +PASS XHTML1.0 Strict parsing ▸ +PASS XHTML1.0 Strict parsing ␣ +PASS XHTML1.0 Strict parsing ▒ +PASS XHTML1.0 Strict parsing ░ +PASS XHTML1.0 Strict parsing ▓ +PASS XHTML1.0 Strict parsing █ +PASS XHTML1.0 Strict parsing =⃥ +PASS XHTML1.0 Strict parsing ≡⃥ +PASS XHTML1.0 Strict parsing ⫭ +PASS XHTML1.0 Strict parsing ⌐ +PASS XHTML1.0 Strict parsing 𝔹 +PASS XHTML1.0 Strict parsing 𝕓 +PASS XHTML1.0 Strict parsing ⊥ +PASS XHTML1.0 Strict parsing ⊥ +PASS XHTML1.0 Strict parsing ⋈ +PASS XHTML1.0 Strict parsing ⧉ +PASS XHTML1.0 Strict parsing ┐ +PASS XHTML1.0 Strict parsing ╕ +PASS XHTML1.0 Strict parsing ╖ +PASS XHTML1.0 Strict parsing ╗ +PASS XHTML1.0 Strict parsing ┌ +PASS XHTML1.0 Strict parsing ╒ +PASS XHTML1.0 Strict parsing ╓ +PASS XHTML1.0 Strict parsing ╔ +PASS XHTML1.0 Strict parsing ─ +PASS XHTML1.0 Strict parsing ═ +PASS XHTML1.0 Strict parsing ┬ +PASS XHTML1.0 Strict parsing ╤ +PASS XHTML1.0 Strict parsing ╥ +PASS XHTML1.0 Strict parsing ╦ +PASS XHTML1.0 Strict parsing ┴ +PASS XHTML1.0 Strict parsing ╧ +PASS XHTML1.0 Strict parsing ╨ +PASS XHTML1.0 Strict parsing ╩ +PASS XHTML1.0 Strict parsing ⊟ +PASS XHTML1.0 Strict parsing ⊞ +PASS XHTML1.0 Strict parsing ⊠ +PASS XHTML1.0 Strict parsing ┘ +PASS XHTML1.0 Strict parsing ╛ +PASS XHTML1.0 Strict parsing ╜ +PASS XHTML1.0 Strict parsing ╝ +PASS XHTML1.0 Strict parsing └ +PASS XHTML1.0 Strict parsing ╘ +PASS XHTML1.0 Strict parsing ╙ +PASS XHTML1.0 Strict parsing ╚ +PASS XHTML1.0 Strict parsing │ +PASS XHTML1.0 Strict parsing ║ +PASS XHTML1.0 Strict parsing ┼ +PASS XHTML1.0 Strict parsing ╪ +PASS XHTML1.0 Strict parsing ╫ +PASS XHTML1.0 Strict parsing ╬ +PASS XHTML1.0 Strict parsing ┤ +PASS XHTML1.0 Strict parsing ╡ +PASS XHTML1.0 Strict parsing ╢ +PASS XHTML1.0 Strict parsing ╣ +PASS XHTML1.0 Strict parsing ├ +PASS XHTML1.0 Strict parsing ╞ +PASS XHTML1.0 Strict parsing ╟ +PASS XHTML1.0 Strict parsing ╠ +PASS XHTML1.0 Strict parsing ‵ +PASS XHTML1.0 Strict parsing ˘ +PASS XHTML1.0 Strict parsing ˘ +PASS XHTML1.0 Strict parsing ¦ +PASS XHTML1.0 Strict parsing 𝒷 +PASS XHTML1.0 Strict parsing ℬ +PASS XHTML1.0 Strict parsing ⁏ +PASS XHTML1.0 Strict parsing ∽ +PASS XHTML1.0 Strict parsing ⋍ +PASS XHTML1.0 Strict parsing ⧅ +PASS XHTML1.0 Strict parsing \ +PASS XHTML1.0 Strict parsing ⟈ +PASS XHTML1.0 Strict parsing • +PASS XHTML1.0 Strict parsing • +PASS XHTML1.0 Strict parsing ≎ +PASS XHTML1.0 Strict parsing ⪮ +PASS XHTML1.0 Strict parsing ≏ +PASS XHTML1.0 Strict parsing ≎ +PASS XHTML1.0 Strict parsing ≏ +PASS XHTML1.0 Strict parsing Ć +PASS XHTML1.0 Strict parsing ć +PASS XHTML1.0 Strict parsing ⩄ +PASS XHTML1.0 Strict parsing ⩉ +PASS XHTML1.0 Strict parsing ⩋ +PASS XHTML1.0 Strict parsing ∩ +PASS XHTML1.0 Strict parsing ⋒ +PASS XHTML1.0 Strict parsing ⩇ +PASS XHTML1.0 Strict parsing ⩀ +PASS XHTML1.0 Strict parsing ⅅ +PASS XHTML1.0 Strict parsing ∩︀ +PASS XHTML1.0 Strict parsing ⁁ +PASS XHTML1.0 Strict parsing ˇ +PASS XHTML1.0 Strict parsing ℭ +PASS XHTML1.0 Strict parsing ⩍ +PASS XHTML1.0 Strict parsing Č +PASS XHTML1.0 Strict parsing č +PASS XHTML1.0 Strict parsing Ç +PASS XHTML1.0 Strict parsing ç +PASS XHTML1.0 Strict parsing Ĉ +PASS XHTML1.0 Strict parsing ĉ +PASS XHTML1.0 Strict parsing ∰ +PASS XHTML1.0 Strict parsing ⩌ +PASS XHTML1.0 Strict parsing ⩐ +PASS XHTML1.0 Strict parsing Ċ +PASS XHTML1.0 Strict parsing ċ +PASS XHTML1.0 Strict parsing ¸ +PASS XHTML1.0 Strict parsing ¸ +PASS XHTML1.0 Strict parsing ⦲ +PASS XHTML1.0 Strict parsing ¢ +PASS XHTML1.0 Strict parsing · +PASS XHTML1.0 Strict parsing · +PASS XHTML1.0 Strict parsing 𝔠 +PASS XHTML1.0 Strict parsing ℭ +PASS XHTML1.0 Strict parsing Ч +PASS XHTML1.0 Strict parsing ч +PASS XHTML1.0 Strict parsing ✓ +PASS XHTML1.0 Strict parsing ✓ +PASS XHTML1.0 Strict parsing Χ +PASS XHTML1.0 Strict parsing χ +PASS XHTML1.0 Strict parsing ˆ +PASS XHTML1.0 Strict parsing ≗ +PASS XHTML1.0 Strict parsing ↺ +PASS XHTML1.0 Strict parsing ↻ +PASS XHTML1.0 Strict parsing ⊛ +PASS XHTML1.0 Strict parsing ⊚ +PASS XHTML1.0 Strict parsing ⊝ +PASS XHTML1.0 Strict parsing ⊙ +PASS XHTML1.0 Strict parsing ® +PASS XHTML1.0 Strict parsing Ⓢ +PASS XHTML1.0 Strict parsing ⊖ +PASS XHTML1.0 Strict parsing ⊕ +PASS XHTML1.0 Strict parsing ⊗ +PASS XHTML1.0 Strict parsing ○ +PASS XHTML1.0 Strict parsing ⧃ +PASS XHTML1.0 Strict parsing ≗ +PASS XHTML1.0 Strict parsing ⨐ +PASS XHTML1.0 Strict parsing ⫯ +PASS XHTML1.0 Strict parsing ⧂ +PASS XHTML1.0 Strict parsing ∲ +PASS XHTML1.0 Strict parsing ” +PASS XHTML1.0 Strict parsing ’ +PASS XHTML1.0 Strict parsing ♣ +PASS XHTML1.0 Strict parsing ♣ +PASS XHTML1.0 Strict parsing : +PASS XHTML1.0 Strict parsing ∷ +PASS XHTML1.0 Strict parsing ⩴ +PASS XHTML1.0 Strict parsing ≔ +PASS XHTML1.0 Strict parsing ≔ +PASS XHTML1.0 Strict parsing , +PASS XHTML1.0 Strict parsing @ +PASS XHTML1.0 Strict parsing ∁ +PASS XHTML1.0 Strict parsing ∘ +PASS XHTML1.0 Strict parsing ∁ +PASS XHTML1.0 Strict parsing ℂ +PASS XHTML1.0 Strict parsing ≅ +PASS XHTML1.0 Strict parsing ⩭ +PASS XHTML1.0 Strict parsing ≡ +PASS XHTML1.0 Strict parsing ∮ +PASS XHTML1.0 Strict parsing ∯ +PASS XHTML1.0 Strict parsing ∮ +PASS XHTML1.0 Strict parsing 𝕔 +PASS XHTML1.0 Strict parsing ℂ +PASS XHTML1.0 Strict parsing ∐ +PASS XHTML1.0 Strict parsing ∐ +PASS XHTML1.0 Strict parsing © +PASS XHTML1.0 Strict parsing © +PASS XHTML1.0 Strict parsing ℗ +PASS XHTML1.0 Strict parsing ∳ +PASS XHTML1.0 Strict parsing ↵ +PASS XHTML1.0 Strict parsing ✗ +PASS XHTML1.0 Strict parsing ⨯ +PASS XHTML1.0 Strict parsing 𝒞 +PASS XHTML1.0 Strict parsing 𝒸 +PASS XHTML1.0 Strict parsing ⫏ +PASS XHTML1.0 Strict parsing ⫑ +PASS XHTML1.0 Strict parsing ⫐ +PASS XHTML1.0 Strict parsing ⫒ +PASS XHTML1.0 Strict parsing ⋯ +PASS XHTML1.0 Strict parsing ⤸ +PASS XHTML1.0 Strict parsing ⤵ +PASS XHTML1.0 Strict parsing ⋞ +PASS XHTML1.0 Strict parsing ⋟ +PASS XHTML1.0 Strict parsing ↶ +PASS XHTML1.0 Strict parsing ⤽ +PASS XHTML1.0 Strict parsing ⩈ +PASS XHTML1.0 Strict parsing ⩆ +PASS XHTML1.0 Strict parsing ≍ +PASS XHTML1.0 Strict parsing ∪ +PASS XHTML1.0 Strict parsing ⋓ +PASS XHTML1.0 Strict parsing ⩊ +PASS XHTML1.0 Strict parsing ⊍ +PASS XHTML1.0 Strict parsing ⩅ +PASS XHTML1.0 Strict parsing ∪︀ +PASS XHTML1.0 Strict parsing ↷ +PASS XHTML1.0 Strict parsing ⤼ +PASS XHTML1.0 Strict parsing ⋞ +PASS XHTML1.0 Strict parsing ⋟ +PASS XHTML1.0 Strict parsing ⋎ +PASS XHTML1.0 Strict parsing ⋏ +PASS XHTML1.0 Strict parsing ¤ +PASS XHTML1.0 Strict parsing ↶ +PASS XHTML1.0 Strict parsing ↷ +PASS XHTML1.0 Strict parsing ⋎ +PASS XHTML1.0 Strict parsing ⋏ +PASS XHTML1.0 Strict parsing ∲ +PASS XHTML1.0 Strict parsing ∱ +PASS XHTML1.0 Strict parsing ⌭ +PASS XHTML1.0 Strict parsing † +PASS XHTML1.0 Strict parsing ‡ +PASS XHTML1.0 Strict parsing ℸ +PASS XHTML1.0 Strict parsing ↓ +PASS XHTML1.0 Strict parsing ↡ +PASS XHTML1.0 Strict parsing ⇓ +PASS XHTML1.0 Strict parsing ‐ +PASS XHTML1.0 Strict parsing ⫤ +PASS XHTML1.0 Strict parsing ⊣ +PASS XHTML1.0 Strict parsing ⤏ +PASS XHTML1.0 Strict parsing ˝ +PASS XHTML1.0 Strict parsing Ď +PASS XHTML1.0 Strict parsing ď +PASS XHTML1.0 Strict parsing Д +PASS XHTML1.0 Strict parsing д +PASS XHTML1.0 Strict parsing ‡ +PASS XHTML1.0 Strict parsing ⇊ +PASS XHTML1.0 Strict parsing ⅅ +PASS XHTML1.0 Strict parsing ⅆ +PASS XHTML1.0 Strict parsing ⤑ +PASS XHTML1.0 Strict parsing ⩷ +PASS XHTML1.0 Strict parsing ° +PASS XHTML1.0 Strict parsing ∇ +PASS XHTML1.0 Strict parsing Δ +PASS XHTML1.0 Strict parsing δ +PASS XHTML1.0 Strict parsing ⦱ +PASS XHTML1.0 Strict parsing ⥿ +PASS XHTML1.0 Strict parsing 𝔇 +PASS XHTML1.0 Strict parsing 𝔡 +PASS XHTML1.0 Strict parsing ⥥ +PASS XHTML1.0 Strict parsing ⇃ +PASS XHTML1.0 Strict parsing ⇂ +PASS XHTML1.0 Strict parsing ´ +PASS XHTML1.0 Strict parsing ˙ +PASS XHTML1.0 Strict parsing ˝ +PASS XHTML1.0 Strict parsing ` +PASS XHTML1.0 Strict parsing ˜ +PASS XHTML1.0 Strict parsing ⋄ +PASS XHTML1.0 Strict parsing ⋄ +PASS XHTML1.0 Strict parsing ⋄ +PASS XHTML1.0 Strict parsing ♦ +PASS XHTML1.0 Strict parsing ♦ +PASS XHTML1.0 Strict parsing ¨ +PASS XHTML1.0 Strict parsing ⅆ +PASS XHTML1.0 Strict parsing ϝ +PASS XHTML1.0 Strict parsing ⋲ +PASS XHTML1.0 Strict parsing ÷ +PASS XHTML1.0 Strict parsing ÷ +PASS XHTML1.0 Strict parsing ⋇ +PASS XHTML1.0 Strict parsing ⋇ +PASS XHTML1.0 Strict parsing Ђ +PASS XHTML1.0 Strict parsing ђ +PASS XHTML1.0 Strict parsing ⌞ +PASS XHTML1.0 Strict parsing ⌍ +PASS XHTML1.0 Strict parsing $ +PASS XHTML1.0 Strict parsing 𝔻 +PASS XHTML1.0 Strict parsing 𝕕 +PASS XHTML1.0 Strict parsing ¨ +PASS XHTML1.0 Strict parsing ˙ +PASS XHTML1.0 Strict parsing ⃜ +PASS XHTML1.0 Strict parsing ≐ +PASS XHTML1.0 Strict parsing ≑ +PASS XHTML1.0 Strict parsing ≐ +PASS XHTML1.0 Strict parsing ∸ +PASS XHTML1.0 Strict parsing ∔ +PASS XHTML1.0 Strict parsing ⊡ +PASS XHTML1.0 Strict parsing ⌆ +PASS XHTML1.0 Strict parsing ∯ +PASS XHTML1.0 Strict parsing ¨ +PASS XHTML1.0 Strict parsing ⇓ +PASS XHTML1.0 Strict parsing ⇐ +PASS XHTML1.0 Strict parsing ⇔ +PASS XHTML1.0 Strict parsing ⫤ +PASS XHTML1.0 Strict parsing ⟸ +PASS XHTML1.0 Strict parsing ⟺ +PASS XHTML1.0 Strict parsing ⟹ +PASS XHTML1.0 Strict parsing ⇒ +PASS XHTML1.0 Strict parsing ⊨ +PASS XHTML1.0 Strict parsing ⇑ +PASS XHTML1.0 Strict parsing ⇕ +PASS XHTML1.0 Strict parsing ∥ +PASS XHTML1.0 Strict parsing ⤓ +PASS XHTML1.0 Strict parsing ↓ +PASS XHTML1.0 Strict parsing ↓ +PASS XHTML1.0 Strict parsing ⇓ +PASS XHTML1.0 Strict parsing ⇵ +PASS XHTML1.0 Strict parsing ̑ +PASS XHTML1.0 Strict parsing ⇊ +PASS XHTML1.0 Strict parsing ⇃ +PASS XHTML1.0 Strict parsing ⇂ +PASS XHTML1.0 Strict parsing ⥐ +PASS XHTML1.0 Strict parsing ⥞ +PASS XHTML1.0 Strict parsing ⥖ +PASS XHTML1.0 Strict parsing ↽ +PASS XHTML1.0 Strict parsing ⥟ +PASS XHTML1.0 Strict parsing ⥗ +PASS XHTML1.0 Strict parsing ⇁ +PASS XHTML1.0 Strict parsing ↧ +PASS XHTML1.0 Strict parsing ⊤ +PASS XHTML1.0 Strict parsing ⤐ +PASS XHTML1.0 Strict parsing ⌟ +PASS XHTML1.0 Strict parsing ⌌ +PASS XHTML1.0 Strict parsing 𝒟 +PASS XHTML1.0 Strict parsing 𝒹 +PASS XHTML1.0 Strict parsing Ѕ +PASS XHTML1.0 Strict parsing ѕ +PASS XHTML1.0 Strict parsing ⧶ +PASS XHTML1.0 Strict parsing Đ +PASS XHTML1.0 Strict parsing đ +PASS XHTML1.0 Strict parsing ⋱ +PASS XHTML1.0 Strict parsing ▿ +PASS XHTML1.0 Strict parsing ▾ +PASS XHTML1.0 Strict parsing ⇵ +PASS XHTML1.0 Strict parsing ⥯ +PASS XHTML1.0 Strict parsing ⦦ +PASS XHTML1.0 Strict parsing Џ +PASS XHTML1.0 Strict parsing џ +PASS XHTML1.0 Strict parsing ⟿ +PASS XHTML1.0 Strict parsing É +PASS XHTML1.0 Strict parsing é +PASS XHTML1.0 Strict parsing ⩮ +PASS XHTML1.0 Strict parsing Ě +PASS XHTML1.0 Strict parsing ě +PASS XHTML1.0 Strict parsing Ê +PASS XHTML1.0 Strict parsing ê +PASS XHTML1.0 Strict parsing ≖ +PASS XHTML1.0 Strict parsing ≕ +PASS XHTML1.0 Strict parsing Э +PASS XHTML1.0 Strict parsing э +PASS XHTML1.0 Strict parsing ⩷ +PASS XHTML1.0 Strict parsing Ė +PASS XHTML1.0 Strict parsing ė +PASS XHTML1.0 Strict parsing ≑ +PASS XHTML1.0 Strict parsing ⅇ +PASS XHTML1.0 Strict parsing ≒ +PASS XHTML1.0 Strict parsing 𝔈 +PASS XHTML1.0 Strict parsing 𝔢 +PASS XHTML1.0 Strict parsing ⪚ +PASS XHTML1.0 Strict parsing È +PASS XHTML1.0 Strict parsing è +PASS XHTML1.0 Strict parsing ⪖ +PASS XHTML1.0 Strict parsing ⪘ +PASS XHTML1.0 Strict parsing ⪙ +PASS XHTML1.0 Strict parsing ∈ +PASS XHTML1.0 Strict parsing ⏧ +PASS XHTML1.0 Strict parsing ℓ +PASS XHTML1.0 Strict parsing ⪕ +PASS XHTML1.0 Strict parsing ⪗ +PASS XHTML1.0 Strict parsing Ē +PASS XHTML1.0 Strict parsing ē +PASS XHTML1.0 Strict parsing ∅ +PASS XHTML1.0 Strict parsing ∅ +PASS XHTML1.0 Strict parsing ◻ +PASS XHTML1.0 Strict parsing ∅ +PASS XHTML1.0 Strict parsing ▫ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing Ŋ +PASS XHTML1.0 Strict parsing ŋ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing Ę +PASS XHTML1.0 Strict parsing ę +PASS XHTML1.0 Strict parsing 𝔼 +PASS XHTML1.0 Strict parsing 𝕖 +PASS XHTML1.0 Strict parsing ⋕ +PASS XHTML1.0 Strict parsing ⧣ +PASS XHTML1.0 Strict parsing ⩱ +PASS XHTML1.0 Strict parsing ε +PASS XHTML1.0 Strict parsing Ε +PASS XHTML1.0 Strict parsing ε +PASS XHTML1.0 Strict parsing ϵ +PASS XHTML1.0 Strict parsing ≖ +PASS XHTML1.0 Strict parsing ≕ +PASS XHTML1.0 Strict parsing ≂ +PASS XHTML1.0 Strict parsing ⪖ +PASS XHTML1.0 Strict parsing ⪕ +PASS XHTML1.0 Strict parsing ⩵ +PASS XHTML1.0 Strict parsing = +PASS XHTML1.0 Strict parsing ≂ +PASS XHTML1.0 Strict parsing ≟ +PASS XHTML1.0 Strict parsing ⇌ +PASS XHTML1.0 Strict parsing ≡ +PASS XHTML1.0 Strict parsing ⩸ +PASS XHTML1.0 Strict parsing ⧥ +PASS XHTML1.0 Strict parsing ⥱ +PASS XHTML1.0 Strict parsing ≓ +PASS XHTML1.0 Strict parsing ℯ +PASS XHTML1.0 Strict parsing ℰ +PASS XHTML1.0 Strict parsing ≐ +PASS XHTML1.0 Strict parsing ⩳ +PASS XHTML1.0 Strict parsing ≂ +PASS XHTML1.0 Strict parsing Η +PASS XHTML1.0 Strict parsing η +PASS XHTML1.0 Strict parsing Ð +PASS XHTML1.0 Strict parsing ð +PASS XHTML1.0 Strict parsing Ë +PASS XHTML1.0 Strict parsing ë +PASS XHTML1.0 Strict parsing € +PASS XHTML1.0 Strict parsing ! +PASS XHTML1.0 Strict parsing ∃ +PASS XHTML1.0 Strict parsing ∃ +PASS XHTML1.0 Strict parsing ℰ +PASS XHTML1.0 Strict parsing ⅇ +PASS XHTML1.0 Strict parsing ⅇ +PASS XHTML1.0 Strict parsing ≒ +PASS XHTML1.0 Strict parsing Ф +PASS XHTML1.0 Strict parsing ф +PASS XHTML1.0 Strict parsing ♀ +PASS XHTML1.0 Strict parsing ffi +PASS XHTML1.0 Strict parsing ff +PASS XHTML1.0 Strict parsing ffl +PASS XHTML1.0 Strict parsing 𝔉 +PASS XHTML1.0 Strict parsing 𝔣 +PASS XHTML1.0 Strict parsing fi +PASS XHTML1.0 Strict parsing ◼ +PASS XHTML1.0 Strict parsing ▪ +PASS XHTML1.0 Strict parsing fj +PASS XHTML1.0 Strict parsing ♭ +PASS XHTML1.0 Strict parsing fl +PASS XHTML1.0 Strict parsing ▱ +PASS XHTML1.0 Strict parsing ƒ +PASS XHTML1.0 Strict parsing 𝔽 +PASS XHTML1.0 Strict parsing 𝕗 +PASS XHTML1.0 Strict parsing ∀ +PASS XHTML1.0 Strict parsing ∀ +PASS XHTML1.0 Strict parsing ⋔ +PASS XHTML1.0 Strict parsing ⫙ +PASS XHTML1.0 Strict parsing ℱ +PASS XHTML1.0 Strict parsing ⨍ +PASS XHTML1.0 Strict parsing ½ +PASS XHTML1.0 Strict parsing ⅓ +PASS XHTML1.0 Strict parsing ¼ +PASS XHTML1.0 Strict parsing ⅕ +PASS XHTML1.0 Strict parsing ⅙ +PASS XHTML1.0 Strict parsing ⅛ +PASS XHTML1.0 Strict parsing ⅔ +PASS XHTML1.0 Strict parsing ⅖ +PASS XHTML1.0 Strict parsing ¾ +PASS XHTML1.0 Strict parsing ⅗ +PASS XHTML1.0 Strict parsing ⅜ +PASS XHTML1.0 Strict parsing ⅘ +PASS XHTML1.0 Strict parsing ⅚ +PASS XHTML1.0 Strict parsing ⅝ +PASS XHTML1.0 Strict parsing ⅞ +PASS XHTML1.0 Strict parsing ⁄ +PASS XHTML1.0 Strict parsing ⌢ +PASS XHTML1.0 Strict parsing 𝒻 +PASS XHTML1.0 Strict parsing ℱ +PASS XHTML1.0 Strict parsing ǵ +PASS XHTML1.0 Strict parsing Γ +PASS XHTML1.0 Strict parsing γ +PASS XHTML1.0 Strict parsing Ϝ +PASS XHTML1.0 Strict parsing ϝ +PASS XHTML1.0 Strict parsing ⪆ +PASS XHTML1.0 Strict parsing Ğ +PASS XHTML1.0 Strict parsing ğ +PASS XHTML1.0 Strict parsing Ģ +PASS XHTML1.0 Strict parsing Ĝ +PASS XHTML1.0 Strict parsing ĝ +PASS XHTML1.0 Strict parsing Г +PASS XHTML1.0 Strict parsing г +PASS XHTML1.0 Strict parsing Ġ +PASS XHTML1.0 Strict parsing ġ +PASS XHTML1.0 Strict parsing ≥ +PASS XHTML1.0 Strict parsing ≧ +PASS XHTML1.0 Strict parsing ⪌ +PASS XHTML1.0 Strict parsing ⋛ +PASS XHTML1.0 Strict parsing ≥ +PASS XHTML1.0 Strict parsing ≧ +PASS XHTML1.0 Strict parsing ⩾ +PASS XHTML1.0 Strict parsing ⪩ +PASS XHTML1.0 Strict parsing ⩾ +PASS XHTML1.0 Strict parsing ⪀ +PASS XHTML1.0 Strict parsing ⪂ +PASS XHTML1.0 Strict parsing ⪄ +PASS XHTML1.0 Strict parsing ⋛︀ +PASS XHTML1.0 Strict parsing ⪔ +PASS XHTML1.0 Strict parsing 𝔊 +PASS XHTML1.0 Strict parsing 𝔤 +PASS XHTML1.0 Strict parsing ≫ +PASS XHTML1.0 Strict parsing ⋙ +PASS XHTML1.0 Strict parsing ⋙ +PASS XHTML1.0 Strict parsing ℷ +PASS XHTML1.0 Strict parsing Ѓ +PASS XHTML1.0 Strict parsing ѓ +PASS XHTML1.0 Strict parsing ⪥ +PASS XHTML1.0 Strict parsing ≷ +PASS XHTML1.0 Strict parsing ⪒ +PASS XHTML1.0 Strict parsing ⪤ +PASS XHTML1.0 Strict parsing ⪊ +PASS XHTML1.0 Strict parsing ⪊ +PASS XHTML1.0 Strict parsing ⪈ +PASS XHTML1.0 Strict parsing ≩ +PASS XHTML1.0 Strict parsing ⪈ +PASS XHTML1.0 Strict parsing ≩ +PASS XHTML1.0 Strict parsing ⋧ +PASS XHTML1.0 Strict parsing 𝔾 +PASS XHTML1.0 Strict parsing 𝕘 +PASS XHTML1.0 Strict parsing ` +PASS XHTML1.0 Strict parsing ≥ +PASS XHTML1.0 Strict parsing ⋛ +PASS XHTML1.0 Strict parsing ≧ +PASS XHTML1.0 Strict parsing ⪢ +PASS XHTML1.0 Strict parsing ≷ +PASS XHTML1.0 Strict parsing ⩾ +PASS XHTML1.0 Strict parsing ≳ +PASS XHTML1.0 Strict parsing 𝒢 +PASS XHTML1.0 Strict parsing ℊ +PASS XHTML1.0 Strict parsing ≳ +PASS XHTML1.0 Strict parsing ⪎ +PASS XHTML1.0 Strict parsing ⪐ +PASS XHTML1.0 Strict parsing ⪧ +PASS XHTML1.0 Strict parsing ⩺ +PASS XHTML1.0 Strict parsing > +PASS XHTML1.0 Strict parsing > +PASS XHTML1.0 Strict parsing ≫ +PASS XHTML1.0 Strict parsing ⋗ +PASS XHTML1.0 Strict parsing ⦕ +PASS XHTML1.0 Strict parsing ⩼ +PASS XHTML1.0 Strict parsing ⪆ +PASS XHTML1.0 Strict parsing ⥸ +PASS XHTML1.0 Strict parsing ⋗ +PASS XHTML1.0 Strict parsing ⋛ +PASS XHTML1.0 Strict parsing ⪌ +PASS XHTML1.0 Strict parsing ≷ +PASS XHTML1.0 Strict parsing ≳ +PASS XHTML1.0 Strict parsing ≩︀ +PASS XHTML1.0 Strict parsing ≩︀ +PASS XHTML1.0 Strict parsing ˇ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing ½ +PASS XHTML1.0 Strict parsing ℋ +PASS XHTML1.0 Strict parsing Ъ +PASS XHTML1.0 Strict parsing ъ +PASS XHTML1.0 Strict parsing ⥈ +PASS XHTML1.0 Strict parsing ↔ +PASS XHTML1.0 Strict parsing ⇔ +PASS XHTML1.0 Strict parsing ↭ +PASS XHTML1.0 Strict parsing ^ +PASS XHTML1.0 Strict parsing ℏ +PASS XHTML1.0 Strict parsing Ĥ +PASS XHTML1.0 Strict parsing ĥ +PASS XHTML1.0 Strict parsing ♥ +PASS XHTML1.0 Strict parsing ♥ +PASS XHTML1.0 Strict parsing … +PASS XHTML1.0 Strict parsing ⊹ +PASS XHTML1.0 Strict parsing 𝔥 +PASS XHTML1.0 Strict parsing ℌ +PASS XHTML1.0 Strict parsing ℋ +PASS XHTML1.0 Strict parsing ⤥ +PASS XHTML1.0 Strict parsing ⤦ +PASS XHTML1.0 Strict parsing ⇿ +PASS XHTML1.0 Strict parsing ∻ +PASS XHTML1.0 Strict parsing ↩ +PASS XHTML1.0 Strict parsing ↪ +PASS XHTML1.0 Strict parsing 𝕙 +PASS XHTML1.0 Strict parsing ℍ +PASS XHTML1.0 Strict parsing ― +PASS XHTML1.0 Strict parsing ─ +PASS XHTML1.0 Strict parsing 𝒽 +PASS XHTML1.0 Strict parsing ℋ +PASS XHTML1.0 Strict parsing ℏ +PASS XHTML1.0 Strict parsing Ħ +PASS XHTML1.0 Strict parsing ħ +PASS XHTML1.0 Strict parsing ≎ +PASS XHTML1.0 Strict parsing ≏ +PASS XHTML1.0 Strict parsing ⁃ +PASS XHTML1.0 Strict parsing ‐ +PASS XHTML1.0 Strict parsing Í +PASS XHTML1.0 Strict parsing í +PASS XHTML1.0 Strict parsing ⁣ +PASS XHTML1.0 Strict parsing Î +PASS XHTML1.0 Strict parsing î +PASS XHTML1.0 Strict parsing И +PASS XHTML1.0 Strict parsing и +PASS XHTML1.0 Strict parsing İ +PASS XHTML1.0 Strict parsing Е +PASS XHTML1.0 Strict parsing е +PASS XHTML1.0 Strict parsing ¡ +PASS XHTML1.0 Strict parsing ⇔ +PASS XHTML1.0 Strict parsing 𝔦 +PASS XHTML1.0 Strict parsing ℑ +PASS XHTML1.0 Strict parsing Ì +PASS XHTML1.0 Strict parsing ì +PASS XHTML1.0 Strict parsing ⅈ +PASS XHTML1.0 Strict parsing ⨌ +PASS XHTML1.0 Strict parsing ∭ +PASS XHTML1.0 Strict parsing ⧜ +PASS XHTML1.0 Strict parsing ℩ +PASS XHTML1.0 Strict parsing IJ +PASS XHTML1.0 Strict parsing ij +PASS XHTML1.0 Strict parsing Ī +PASS XHTML1.0 Strict parsing ī +PASS XHTML1.0 Strict parsing ℑ +PASS XHTML1.0 Strict parsing ⅈ +PASS XHTML1.0 Strict parsing ℐ +PASS XHTML1.0 Strict parsing ℑ +PASS XHTML1.0 Strict parsing ı +PASS XHTML1.0 Strict parsing ℑ +PASS XHTML1.0 Strict parsing ⊷ +PASS XHTML1.0 Strict parsing Ƶ +PASS XHTML1.0 Strict parsing ⇒ +PASS XHTML1.0 Strict parsing ℅ +PASS XHTML1.0 Strict parsing ∈ +PASS XHTML1.0 Strict parsing ∞ +PASS XHTML1.0 Strict parsing ⧝ +PASS XHTML1.0 Strict parsing ı +PASS XHTML1.0 Strict parsing ⊺ +PASS XHTML1.0 Strict parsing ∫ +PASS XHTML1.0 Strict parsing ∬ +PASS XHTML1.0 Strict parsing ℤ +PASS XHTML1.0 Strict parsing ∫ +PASS XHTML1.0 Strict parsing ⊺ +PASS XHTML1.0 Strict parsing ⋂ +PASS XHTML1.0 Strict parsing ⨗ +PASS XHTML1.0 Strict parsing ⨼ +PASS XHTML1.0 Strict parsing ⁣ +PASS XHTML1.0 Strict parsing ⁢ +PASS XHTML1.0 Strict parsing Ё +PASS XHTML1.0 Strict parsing ё +PASS XHTML1.0 Strict parsing Į +PASS XHTML1.0 Strict parsing į +PASS XHTML1.0 Strict parsing 𝕀 +PASS XHTML1.0 Strict parsing 𝕚 +PASS XHTML1.0 Strict parsing Ι +PASS XHTML1.0 Strict parsing ι +PASS XHTML1.0 Strict parsing ⨼ +PASS XHTML1.0 Strict parsing ¿ +PASS XHTML1.0 Strict parsing 𝒾 +PASS XHTML1.0 Strict parsing ℐ +PASS XHTML1.0 Strict parsing ∈ +PASS XHTML1.0 Strict parsing ⋵ +PASS XHTML1.0 Strict parsing ⋹ +PASS XHTML1.0 Strict parsing ⋴ +PASS XHTML1.0 Strict parsing ⋳ +PASS XHTML1.0 Strict parsing ∈ +PASS XHTML1.0 Strict parsing ⁢ +PASS XHTML1.0 Strict parsing Ĩ +PASS XHTML1.0 Strict parsing ĩ +PASS XHTML1.0 Strict parsing І +PASS XHTML1.0 Strict parsing і +PASS XHTML1.0 Strict parsing Ï +PASS XHTML1.0 Strict parsing ï +PASS XHTML1.0 Strict parsing Ĵ +PASS XHTML1.0 Strict parsing ĵ +PASS XHTML1.0 Strict parsing Й +PASS XHTML1.0 Strict parsing й +PASS XHTML1.0 Strict parsing 𝔍 +PASS XHTML1.0 Strict parsing 𝔧 +PASS XHTML1.0 Strict parsing ȷ +PASS XHTML1.0 Strict parsing 𝕁 +PASS XHTML1.0 Strict parsing 𝕛 +PASS XHTML1.0 Strict parsing 𝒥 +PASS XHTML1.0 Strict parsing 𝒿 +PASS XHTML1.0 Strict parsing Ј +PASS XHTML1.0 Strict parsing ј +PASS XHTML1.0 Strict parsing Є +PASS XHTML1.0 Strict parsing є +PASS XHTML1.0 Strict parsing Κ +PASS XHTML1.0 Strict parsing κ +PASS XHTML1.0 Strict parsing ϰ +PASS XHTML1.0 Strict parsing Ķ +PASS XHTML1.0 Strict parsing ķ +PASS XHTML1.0 Strict parsing К +PASS XHTML1.0 Strict parsing к +PASS XHTML1.0 Strict parsing 𝔎 +PASS XHTML1.0 Strict parsing 𝔨 +PASS XHTML1.0 Strict parsing ĸ +PASS XHTML1.0 Strict parsing Х +PASS XHTML1.0 Strict parsing х +PASS XHTML1.0 Strict parsing Ќ +PASS XHTML1.0 Strict parsing ќ +PASS XHTML1.0 Strict parsing 𝕂 +PASS XHTML1.0 Strict parsing 𝕜 +PASS XHTML1.0 Strict parsing 𝒦 +PASS XHTML1.0 Strict parsing 𝓀 +PASS XHTML1.0 Strict parsing ⇚ +PASS XHTML1.0 Strict parsing Ĺ +PASS XHTML1.0 Strict parsing ĺ +PASS XHTML1.0 Strict parsing ⦴ +PASS XHTML1.0 Strict parsing ℒ +PASS XHTML1.0 Strict parsing Λ +PASS XHTML1.0 Strict parsing λ +PASS XHTML1.0 Strict parsing ⟨ +PASS XHTML1.0 Strict parsing ⟪ +PASS XHTML1.0 Strict parsing ⦑ +PASS XHTML1.0 Strict parsing ⟨ +PASS XHTML1.0 Strict parsing ⪅ +PASS XHTML1.0 Strict parsing ℒ +PASS XHTML1.0 Strict parsing « +PASS XHTML1.0 Strict parsing ⇤ +PASS XHTML1.0 Strict parsing ⤟ +PASS XHTML1.0 Strict parsing ← +PASS XHTML1.0 Strict parsing ↞ +PASS XHTML1.0 Strict parsing ⇐ +PASS XHTML1.0 Strict parsing ⤝ +PASS XHTML1.0 Strict parsing ↩ +PASS XHTML1.0 Strict parsing ↫ +PASS XHTML1.0 Strict parsing ⤹ +PASS XHTML1.0 Strict parsing ⥳ +PASS XHTML1.0 Strict parsing ↢ +PASS XHTML1.0 Strict parsing ⤙ +PASS XHTML1.0 Strict parsing ⤛ +PASS XHTML1.0 Strict parsing ⪫ +PASS XHTML1.0 Strict parsing ⪭ +PASS XHTML1.0 Strict parsing ⪭︀ +PASS XHTML1.0 Strict parsing ⤌ +PASS XHTML1.0 Strict parsing ⤎ +PASS XHTML1.0 Strict parsing ❲ +PASS XHTML1.0 Strict parsing { +PASS XHTML1.0 Strict parsing [ +PASS XHTML1.0 Strict parsing ⦋ +PASS XHTML1.0 Strict parsing ⦏ +PASS XHTML1.0 Strict parsing ⦍ +PASS XHTML1.0 Strict parsing Ľ +PASS XHTML1.0 Strict parsing ľ +PASS XHTML1.0 Strict parsing Ļ +PASS XHTML1.0 Strict parsing ļ +PASS XHTML1.0 Strict parsing ⌈ +PASS XHTML1.0 Strict parsing { +PASS XHTML1.0 Strict parsing Л +PASS XHTML1.0 Strict parsing л +PASS XHTML1.0 Strict parsing ⤶ +PASS XHTML1.0 Strict parsing “ +PASS XHTML1.0 Strict parsing „ +PASS XHTML1.0 Strict parsing ⥧ +PASS XHTML1.0 Strict parsing ⥋ +PASS XHTML1.0 Strict parsing ↲ +PASS XHTML1.0 Strict parsing ≤ +PASS XHTML1.0 Strict parsing ≦ +PASS XHTML1.0 Strict parsing ⟨ +PASS XHTML1.0 Strict parsing ⇤ +PASS XHTML1.0 Strict parsing ← +PASS XHTML1.0 Strict parsing ← +PASS XHTML1.0 Strict parsing ⇐ +PASS XHTML1.0 Strict parsing ⇆ +PASS XHTML1.0 Strict parsing ↢ +PASS XHTML1.0 Strict parsing ⌈ +PASS XHTML1.0 Strict parsing ⟦ +PASS XHTML1.0 Strict parsing ⥡ +PASS XHTML1.0 Strict parsing ⥙ +PASS XHTML1.0 Strict parsing ⇃ +PASS XHTML1.0 Strict parsing ⌊ +PASS XHTML1.0 Strict parsing ↽ +PASS XHTML1.0 Strict parsing ↼ +PASS XHTML1.0 Strict parsing ⇇ +PASS XHTML1.0 Strict parsing ↔ +PASS XHTML1.0 Strict parsing ↔ +PASS XHTML1.0 Strict parsing ⇔ +PASS XHTML1.0 Strict parsing ⇆ +PASS XHTML1.0 Strict parsing ⇋ +PASS XHTML1.0 Strict parsing ↭ +PASS XHTML1.0 Strict parsing ⥎ +PASS XHTML1.0 Strict parsing ↤ +PASS XHTML1.0 Strict parsing ⊣ +PASS XHTML1.0 Strict parsing ⥚ +PASS XHTML1.0 Strict parsing ⋋ +PASS XHTML1.0 Strict parsing ⧏ +PASS XHTML1.0 Strict parsing ⊲ +PASS XHTML1.0 Strict parsing ⊴ +PASS XHTML1.0 Strict parsing ⥑ +PASS XHTML1.0 Strict parsing ⥠ +PASS XHTML1.0 Strict parsing ⥘ +PASS XHTML1.0 Strict parsing ↿ +PASS XHTML1.0 Strict parsing ⥒ +PASS XHTML1.0 Strict parsing ↼ +PASS XHTML1.0 Strict parsing ⪋ +PASS XHTML1.0 Strict parsing ⋚ +PASS XHTML1.0 Strict parsing ≤ +PASS XHTML1.0 Strict parsing ≦ +PASS XHTML1.0 Strict parsing ⩽ +PASS XHTML1.0 Strict parsing ⪨ +PASS XHTML1.0 Strict parsing ⩽ +PASS XHTML1.0 Strict parsing ⩿ +PASS XHTML1.0 Strict parsing ⪁ +PASS XHTML1.0 Strict parsing ⪃ +PASS XHTML1.0 Strict parsing ⋚︀ +PASS XHTML1.0 Strict parsing ⪓ +PASS XHTML1.0 Strict parsing ⪅ +PASS XHTML1.0 Strict parsing ⋖ +PASS XHTML1.0 Strict parsing ⋚ +PASS XHTML1.0 Strict parsing ⪋ +PASS XHTML1.0 Strict parsing ⋚ +PASS XHTML1.0 Strict parsing ≦ +PASS XHTML1.0 Strict parsing ≶ +PASS XHTML1.0 Strict parsing ≶ +PASS XHTML1.0 Strict parsing ⪡ +PASS XHTML1.0 Strict parsing ≲ +PASS XHTML1.0 Strict parsing ⩽ +PASS XHTML1.0 Strict parsing ≲ +PASS XHTML1.0 Strict parsing ⥼ +PASS XHTML1.0 Strict parsing ⌊ +PASS XHTML1.0 Strict parsing 𝔏 +PASS XHTML1.0 Strict parsing 𝔩 +PASS XHTML1.0 Strict parsing ≶ +PASS XHTML1.0 Strict parsing ⪑ +PASS XHTML1.0 Strict parsing ⥢ +PASS XHTML1.0 Strict parsing ↽ +PASS XHTML1.0 Strict parsing ↼ +PASS XHTML1.0 Strict parsing ⥪ +PASS XHTML1.0 Strict parsing ▄ +PASS XHTML1.0 Strict parsing Љ +PASS XHTML1.0 Strict parsing љ +PASS XHTML1.0 Strict parsing ⇇ +PASS XHTML1.0 Strict parsing ≪ +PASS XHTML1.0 Strict parsing ⋘ +PASS XHTML1.0 Strict parsing ⌞ +PASS XHTML1.0 Strict parsing ⇚ +PASS XHTML1.0 Strict parsing ⥫ +PASS XHTML1.0 Strict parsing ◺ +PASS XHTML1.0 Strict parsing Ŀ +PASS XHTML1.0 Strict parsing ŀ +PASS XHTML1.0 Strict parsing ⎰ +PASS XHTML1.0 Strict parsing ⎰ +PASS XHTML1.0 Strict parsing ⪉ +PASS XHTML1.0 Strict parsing ⪉ +PASS XHTML1.0 Strict parsing ⪇ +PASS XHTML1.0 Strict parsing ≨ +PASS XHTML1.0 Strict parsing ⪇ +PASS XHTML1.0 Strict parsing ≨ +PASS XHTML1.0 Strict parsing ⋦ +PASS XHTML1.0 Strict parsing ⟬ +PASS XHTML1.0 Strict parsing ⇽ +PASS XHTML1.0 Strict parsing ⟦ +PASS XHTML1.0 Strict parsing ⟵ +PASS XHTML1.0 Strict parsing ⟵ +PASS XHTML1.0 Strict parsing ⟸ +PASS XHTML1.0 Strict parsing ⟷ +PASS XHTML1.0 Strict parsing ⟷ +PASS XHTML1.0 Strict parsing ⟺ +PASS XHTML1.0 Strict parsing ⟼ +PASS XHTML1.0 Strict parsing ⟶ +PASS XHTML1.0 Strict parsing ⟶ +PASS XHTML1.0 Strict parsing ⟹ +PASS XHTML1.0 Strict parsing ↫ +PASS XHTML1.0 Strict parsing ↬ +PASS XHTML1.0 Strict parsing ⦅ +PASS XHTML1.0 Strict parsing 𝕃 +PASS XHTML1.0 Strict parsing 𝕝 +PASS XHTML1.0 Strict parsing ⨭ +PASS XHTML1.0 Strict parsing ⨴ +PASS XHTML1.0 Strict parsing ∗ +PASS XHTML1.0 Strict parsing _ +PASS XHTML1.0 Strict parsing ↙ +PASS XHTML1.0 Strict parsing ↘ +PASS XHTML1.0 Strict parsing ◊ +PASS XHTML1.0 Strict parsing ◊ +PASS XHTML1.0 Strict parsing ⧫ +PASS XHTML1.0 Strict parsing ( +PASS XHTML1.0 Strict parsing ⦓ +PASS XHTML1.0 Strict parsing ⇆ +PASS XHTML1.0 Strict parsing ⌟ +PASS XHTML1.0 Strict parsing ⇋ +PASS XHTML1.0 Strict parsing ⥭ +PASS XHTML1.0 Strict parsing ‎ +PASS XHTML1.0 Strict parsing ⊿ +PASS XHTML1.0 Strict parsing ‹ +PASS XHTML1.0 Strict parsing 𝓁 +PASS XHTML1.0 Strict parsing ℒ +PASS XHTML1.0 Strict parsing ↰ +PASS XHTML1.0 Strict parsing ↰ +PASS XHTML1.0 Strict parsing ≲ +PASS XHTML1.0 Strict parsing ⪍ +PASS XHTML1.0 Strict parsing ⪏ +PASS XHTML1.0 Strict parsing [ +PASS XHTML1.0 Strict parsing ‘ +PASS XHTML1.0 Strict parsing ‚ +PASS XHTML1.0 Strict parsing Ł +PASS XHTML1.0 Strict parsing ł +PASS XHTML1.0 Strict parsing ⪦ +PASS XHTML1.0 Strict parsing ⩹ +PASS XHTML1.0 Strict parsing < +FAIL XHTML1.0 Strict parsing < assert_true: expected true got false +PASS XHTML1.0 Strict parsing ≪ +PASS XHTML1.0 Strict parsing ⋖ +PASS XHTML1.0 Strict parsing ⋋ +PASS XHTML1.0 Strict parsing ⋉ +PASS XHTML1.0 Strict parsing ⥶ +PASS XHTML1.0 Strict parsing ⩻ +PASS XHTML1.0 Strict parsing ◃ +PASS XHTML1.0 Strict parsing ⊴ +PASS XHTML1.0 Strict parsing ◂ +PASS XHTML1.0 Strict parsing ⦖ +PASS XHTML1.0 Strict parsing ⥊ +PASS XHTML1.0 Strict parsing ⥦ +PASS XHTML1.0 Strict parsing ≨︀ +PASS XHTML1.0 Strict parsing ≨︀ +PASS XHTML1.0 Strict parsing ¯ +PASS XHTML1.0 Strict parsing ♂ +PASS XHTML1.0 Strict parsing ✠ +PASS XHTML1.0 Strict parsing ✠ +PASS XHTML1.0 Strict parsing ⤅ +PASS XHTML1.0 Strict parsing ↦ +PASS XHTML1.0 Strict parsing ↦ +PASS XHTML1.0 Strict parsing ↧ +PASS XHTML1.0 Strict parsing ↤ +PASS XHTML1.0 Strict parsing ↥ +PASS XHTML1.0 Strict parsing ▮ +PASS XHTML1.0 Strict parsing ⨩ +PASS XHTML1.0 Strict parsing М +PASS XHTML1.0 Strict parsing м +PASS XHTML1.0 Strict parsing — +PASS XHTML1.0 Strict parsing ∺ +PASS XHTML1.0 Strict parsing ∡ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing ℳ +PASS XHTML1.0 Strict parsing 𝔐 +PASS XHTML1.0 Strict parsing 𝔪 +PASS XHTML1.0 Strict parsing ℧ +PASS XHTML1.0 Strict parsing µ +PASS XHTML1.0 Strict parsing * +PASS XHTML1.0 Strict parsing ⫰ +PASS XHTML1.0 Strict parsing ∣ +PASS XHTML1.0 Strict parsing · +PASS XHTML1.0 Strict parsing ⊟ +PASS XHTML1.0 Strict parsing − +PASS XHTML1.0 Strict parsing ∸ +PASS XHTML1.0 Strict parsing ⨪ +PASS XHTML1.0 Strict parsing ∓ +PASS XHTML1.0 Strict parsing ⫛ +PASS XHTML1.0 Strict parsing … +PASS XHTML1.0 Strict parsing ∓ +PASS XHTML1.0 Strict parsing ⊧ +PASS XHTML1.0 Strict parsing 𝕄 +PASS XHTML1.0 Strict parsing 𝕞 +PASS XHTML1.0 Strict parsing ∓ +PASS XHTML1.0 Strict parsing 𝓂 +PASS XHTML1.0 Strict parsing ℳ +PASS XHTML1.0 Strict parsing ∾ +PASS XHTML1.0 Strict parsing Μ +PASS XHTML1.0 Strict parsing μ +PASS XHTML1.0 Strict parsing ⊸ +PASS XHTML1.0 Strict parsing ⊸ +PASS XHTML1.0 Strict parsing ∇ +PASS XHTML1.0 Strict parsing Ń +PASS XHTML1.0 Strict parsing ń +PASS XHTML1.0 Strict parsing ∠⃒ +PASS XHTML1.0 Strict parsing ≉ +PASS XHTML1.0 Strict parsing ⩰̸ +PASS XHTML1.0 Strict parsing ≋̸ +PASS XHTML1.0 Strict parsing ʼn +PASS XHTML1.0 Strict parsing ≉ +PASS XHTML1.0 Strict parsing ♮ +PASS XHTML1.0 Strict parsing ℕ +PASS XHTML1.0 Strict parsing ♮ +PASS XHTML1.0 Strict parsing +PASS XHTML1.0 Strict parsing ≎̸ +PASS XHTML1.0 Strict parsing ≏̸ +PASS XHTML1.0 Strict parsing ⩃ +PASS XHTML1.0 Strict parsing Ň +PASS XHTML1.0 Strict parsing ň +PASS XHTML1.0 Strict parsing Ņ +PASS XHTML1.0 Strict parsing ņ +PASS XHTML1.0 Strict parsing ≇ +PASS XHTML1.0 Strict parsing ⩭̸ +PASS XHTML1.0 Strict parsing ⩂ +PASS XHTML1.0 Strict parsing Н +PASS XHTML1.0 Strict parsing н +PASS XHTML1.0 Strict parsing – +PASS XHTML1.0 Strict parsing ⤤ +PASS XHTML1.0 Strict parsing ↗ +PASS XHTML1.0 Strict parsing ⇗ +PASS XHTML1.0 Strict parsing ↗ +PASS XHTML1.0 Strict parsing ≠ +PASS XHTML1.0 Strict parsing ≐̸ +PASS XHTML1.0 Strict parsing ​ +PASS XHTML1.0 Strict parsing ​ +PASS XHTML1.0 Strict parsing ​ +PASS XHTML1.0 Strict parsing ​ +PASS XHTML1.0 Strict parsing ≢ +PASS XHTML1.0 Strict parsing ⤨ +PASS XHTML1.0 Strict parsing ≂̸ +PASS XHTML1.0 Strict parsing ≫ +PASS XHTML1.0 Strict parsing ≪ +PASS XHTML1.0 Strict parsing 
 +PASS XHTML1.0 Strict parsing ∄ +PASS XHTML1.0 Strict parsing ∄ +PASS XHTML1.0 Strict parsing 𝔑 +PASS XHTML1.0 Strict parsing 𝔫 +PASS XHTML1.0 Strict parsing ≧̸ +PASS XHTML1.0 Strict parsing ≱ +PASS XHTML1.0 Strict parsing ≱ +PASS XHTML1.0 Strict parsing ≧̸ +PASS XHTML1.0 Strict parsing ⩾̸ +PASS XHTML1.0 Strict parsing ⩾̸ +PASS XHTML1.0 Strict parsing ⋙̸ +PASS XHTML1.0 Strict parsing ≵ +PASS XHTML1.0 Strict parsing ≫⃒ +PASS XHTML1.0 Strict parsing ≯ +PASS XHTML1.0 Strict parsing ≯ +PASS XHTML1.0 Strict parsing ≫̸ +PASS XHTML1.0 Strict parsing ↮ +PASS XHTML1.0 Strict parsing ⇎ +PASS XHTML1.0 Strict parsing ⫲ +PASS XHTML1.0 Strict parsing ∋ +PASS XHTML1.0 Strict parsing ⋼ +PASS XHTML1.0 Strict parsing ⋺ +PASS XHTML1.0 Strict parsing ∋ +PASS XHTML1.0 Strict parsing Њ +PASS XHTML1.0 Strict parsing њ +PASS XHTML1.0 Strict parsing ↚ +PASS XHTML1.0 Strict parsing ⇍ +PASS XHTML1.0 Strict parsing ‥ +PASS XHTML1.0 Strict parsing ≦̸ +PASS XHTML1.0 Strict parsing ≰ +PASS XHTML1.0 Strict parsing ↚ +PASS XHTML1.0 Strict parsing ⇍ +PASS XHTML1.0 Strict parsing ↮ +PASS XHTML1.0 Strict parsing ⇎ +PASS XHTML1.0 Strict parsing ≰ +PASS XHTML1.0 Strict parsing ≦̸ +PASS XHTML1.0 Strict parsing ⩽̸ +PASS XHTML1.0 Strict parsing ⩽̸ +PASS XHTML1.0 Strict parsing ≮ +PASS XHTML1.0 Strict parsing ⋘̸ +PASS XHTML1.0 Strict parsing ≴ +PASS XHTML1.0 Strict parsing ≪⃒ +PASS XHTML1.0 Strict parsing ≮ +PASS XHTML1.0 Strict parsing ⋪ +PASS XHTML1.0 Strict parsing ⋬ +PASS XHTML1.0 Strict parsing ≪̸ +PASS XHTML1.0 Strict parsing ∤ +PASS XHTML1.0 Strict parsing ⁠ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing 𝕟 +PASS XHTML1.0 Strict parsing ℕ +PASS XHTML1.0 Strict parsing ⫬ +PASS XHTML1.0 Strict parsing ¬ +PASS XHTML1.0 Strict parsing ≢ +PASS XHTML1.0 Strict parsing ≭ +PASS XHTML1.0 Strict parsing ∦ +PASS XHTML1.0 Strict parsing ∉ +PASS XHTML1.0 Strict parsing ≠ +PASS XHTML1.0 Strict parsing ≂̸ +PASS XHTML1.0 Strict parsing ∄ +PASS XHTML1.0 Strict parsing ≯ +PASS XHTML1.0 Strict parsing ≱ +PASS XHTML1.0 Strict parsing ≧̸ +PASS XHTML1.0 Strict parsing ≫̸ +PASS XHTML1.0 Strict parsing ≹ +PASS XHTML1.0 Strict parsing ⩾̸ +PASS XHTML1.0 Strict parsing ≵ +PASS XHTML1.0 Strict parsing ≎̸ +PASS XHTML1.0 Strict parsing ≏̸ +PASS XHTML1.0 Strict parsing ∉ +PASS XHTML1.0 Strict parsing ⋵̸ +PASS XHTML1.0 Strict parsing ⋹̸ +PASS XHTML1.0 Strict parsing ∉ +PASS XHTML1.0 Strict parsing ⋷ +PASS XHTML1.0 Strict parsing ⋶ +PASS XHTML1.0 Strict parsing ⧏̸ +PASS XHTML1.0 Strict parsing ⋪ +PASS XHTML1.0 Strict parsing ⋬ +PASS XHTML1.0 Strict parsing ≮ +PASS XHTML1.0 Strict parsing ≰ +PASS XHTML1.0 Strict parsing ≸ +PASS XHTML1.0 Strict parsing ≪̸ +PASS XHTML1.0 Strict parsing ⩽̸ +PASS XHTML1.0 Strict parsing ≴ +PASS XHTML1.0 Strict parsing ⪢̸ +PASS XHTML1.0 Strict parsing ⪡̸ +PASS XHTML1.0 Strict parsing ∌ +PASS XHTML1.0 Strict parsing ∌ +PASS XHTML1.0 Strict parsing ⋾ +PASS XHTML1.0 Strict parsing ⋽ +PASS XHTML1.0 Strict parsing ⊀ +PASS XHTML1.0 Strict parsing ⪯̸ +PASS XHTML1.0 Strict parsing ⋠ +PASS XHTML1.0 Strict parsing ∌ +PASS XHTML1.0 Strict parsing ⧐̸ +PASS XHTML1.0 Strict parsing ⋫ +PASS XHTML1.0 Strict parsing ⋭ +PASS XHTML1.0 Strict parsing ⊏̸ +PASS XHTML1.0 Strict parsing ⋢ +PASS XHTML1.0 Strict parsing ⊐̸ +PASS XHTML1.0 Strict parsing ⋣ +PASS XHTML1.0 Strict parsing ⊂⃒ +PASS XHTML1.0 Strict parsing ⊈ +PASS XHTML1.0 Strict parsing ⊁ +PASS XHTML1.0 Strict parsing ⪰̸ +PASS XHTML1.0 Strict parsing ⋡ +PASS XHTML1.0 Strict parsing ≿̸ +PASS XHTML1.0 Strict parsing ⊃⃒ +PASS XHTML1.0 Strict parsing ⊉ +PASS XHTML1.0 Strict parsing ≁ +PASS XHTML1.0 Strict parsing ≄ +PASS XHTML1.0 Strict parsing ≇ +PASS XHTML1.0 Strict parsing ≉ +PASS XHTML1.0 Strict parsing ∤ +PASS XHTML1.0 Strict parsing ∦ +PASS XHTML1.0 Strict parsing ∦ +PASS XHTML1.0 Strict parsing ⫽⃥ +PASS XHTML1.0 Strict parsing ∂̸ +PASS XHTML1.0 Strict parsing ⨔ +PASS XHTML1.0 Strict parsing ⊀ +PASS XHTML1.0 Strict parsing ⋠ +PASS XHTML1.0 Strict parsing ⊀ +PASS XHTML1.0 Strict parsing ⪯̸ +PASS XHTML1.0 Strict parsing ⪯̸ +PASS XHTML1.0 Strict parsing ⤳̸ +PASS XHTML1.0 Strict parsing ↛ +PASS XHTML1.0 Strict parsing ⇏ +PASS XHTML1.0 Strict parsing ↝̸ +PASS XHTML1.0 Strict parsing ↛ +PASS XHTML1.0 Strict parsing ⇏ +PASS XHTML1.0 Strict parsing ⋫ +PASS XHTML1.0 Strict parsing ⋭ +PASS XHTML1.0 Strict parsing ⊁ +PASS XHTML1.0 Strict parsing ⋡ +PASS XHTML1.0 Strict parsing ⪰̸ +PASS XHTML1.0 Strict parsing 𝒩 +PASS XHTML1.0 Strict parsing 𝓃 +PASS XHTML1.0 Strict parsing ∤ +PASS XHTML1.0 Strict parsing ∦ +PASS XHTML1.0 Strict parsing ≁ +PASS XHTML1.0 Strict parsing ≄ +PASS XHTML1.0 Strict parsing ≄ +PASS XHTML1.0 Strict parsing ∤ +PASS XHTML1.0 Strict parsing ∦ +PASS XHTML1.0 Strict parsing ⋢ +PASS XHTML1.0 Strict parsing ⋣ +PASS XHTML1.0 Strict parsing ⊄ +PASS XHTML1.0 Strict parsing ⫅̸ +PASS XHTML1.0 Strict parsing ⊈ +PASS XHTML1.0 Strict parsing ⊂⃒ +PASS XHTML1.0 Strict parsing ⊈ +PASS XHTML1.0 Strict parsing ⫅̸ +PASS XHTML1.0 Strict parsing ⊁ +PASS XHTML1.0 Strict parsing ⪰̸ +PASS XHTML1.0 Strict parsing ⊅ +PASS XHTML1.0 Strict parsing ⫆̸ +PASS XHTML1.0 Strict parsing ⊉ +PASS XHTML1.0 Strict parsing ⊃⃒ +PASS XHTML1.0 Strict parsing ⊉ +PASS XHTML1.0 Strict parsing ⫆̸ +PASS XHTML1.0 Strict parsing ≹ +PASS XHTML1.0 Strict parsing Ñ +PASS XHTML1.0 Strict parsing ñ +PASS XHTML1.0 Strict parsing ≸ +PASS XHTML1.0 Strict parsing ⋪ +PASS XHTML1.0 Strict parsing ⋬ +PASS XHTML1.0 Strict parsing ⋫ +PASS XHTML1.0 Strict parsing ⋭ +PASS XHTML1.0 Strict parsing Ν +PASS XHTML1.0 Strict parsing ν +PASS XHTML1.0 Strict parsing # +PASS XHTML1.0 Strict parsing № +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing ≍⃒ +PASS XHTML1.0 Strict parsing ⊬ +PASS XHTML1.0 Strict parsing ⊭ +PASS XHTML1.0 Strict parsing ⊮ +PASS XHTML1.0 Strict parsing ⊯ +PASS XHTML1.0 Strict parsing ≥⃒ +PASS XHTML1.0 Strict parsing >⃒ +PASS XHTML1.0 Strict parsing ⤄ +PASS XHTML1.0 Strict parsing ⧞ +PASS XHTML1.0 Strict parsing ⤂ +PASS XHTML1.0 Strict parsing ≤⃒ +FAIL XHTML1.0 Strict parsing <⃒ assert_equals: XHTML1.0 Strict parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML1.0 Strict parsing ⊴⃒ +PASS XHTML1.0 Strict parsing ⤃ +PASS XHTML1.0 Strict parsing ⊵⃒ +PASS XHTML1.0 Strict parsing ∼⃒ +PASS XHTML1.0 Strict parsing ⤣ +PASS XHTML1.0 Strict parsing ↖ +PASS XHTML1.0 Strict parsing ⇖ +PASS XHTML1.0 Strict parsing ↖ +PASS XHTML1.0 Strict parsing ⤧ +PASS XHTML1.0 Strict parsing Ó +PASS XHTML1.0 Strict parsing ó +PASS XHTML1.0 Strict parsing ⊛ +PASS XHTML1.0 Strict parsing Ô +PASS XHTML1.0 Strict parsing ô +PASS XHTML1.0 Strict parsing ⊚ +PASS XHTML1.0 Strict parsing О +PASS XHTML1.0 Strict parsing о +PASS XHTML1.0 Strict parsing ⊝ +PASS XHTML1.0 Strict parsing Ő +PASS XHTML1.0 Strict parsing ő +PASS XHTML1.0 Strict parsing ⨸ +PASS XHTML1.0 Strict parsing ⊙ +PASS XHTML1.0 Strict parsing ⦼ +PASS XHTML1.0 Strict parsing Œ +PASS XHTML1.0 Strict parsing œ +PASS XHTML1.0 Strict parsing ⦿ +PASS XHTML1.0 Strict parsing 𝔒 +PASS XHTML1.0 Strict parsing 𝔬 +PASS XHTML1.0 Strict parsing ˛ +PASS XHTML1.0 Strict parsing Ò +PASS XHTML1.0 Strict parsing ò +PASS XHTML1.0 Strict parsing ⧁ +PASS XHTML1.0 Strict parsing ⦵ +PASS XHTML1.0 Strict parsing Ω +PASS XHTML1.0 Strict parsing ∮ +PASS XHTML1.0 Strict parsing ↺ +PASS XHTML1.0 Strict parsing ⦾ +PASS XHTML1.0 Strict parsing ⦻ +PASS XHTML1.0 Strict parsing ‾ +PASS XHTML1.0 Strict parsing ⧀ +PASS XHTML1.0 Strict parsing Ō +PASS XHTML1.0 Strict parsing ō +PASS XHTML1.0 Strict parsing Ω +PASS XHTML1.0 Strict parsing ω +PASS XHTML1.0 Strict parsing Ο +PASS XHTML1.0 Strict parsing ο +PASS XHTML1.0 Strict parsing ⦶ +PASS XHTML1.0 Strict parsing ⊖ +PASS XHTML1.0 Strict parsing 𝕆 +PASS XHTML1.0 Strict parsing 𝕠 +PASS XHTML1.0 Strict parsing ⦷ +PASS XHTML1.0 Strict parsing “ +PASS XHTML1.0 Strict parsing ‘ +PASS XHTML1.0 Strict parsing ⦹ +PASS XHTML1.0 Strict parsing ⊕ +PASS XHTML1.0 Strict parsing ↻ +PASS XHTML1.0 Strict parsing ⩔ +PASS XHTML1.0 Strict parsing ∨ +PASS XHTML1.0 Strict parsing ⩝ +PASS XHTML1.0 Strict parsing ℴ +PASS XHTML1.0 Strict parsing ℴ +PASS XHTML1.0 Strict parsing ª +PASS XHTML1.0 Strict parsing º +PASS XHTML1.0 Strict parsing ⊶ +PASS XHTML1.0 Strict parsing ⩖ +PASS XHTML1.0 Strict parsing ⩗ +PASS XHTML1.0 Strict parsing ⩛ +PASS XHTML1.0 Strict parsing Ⓢ +PASS XHTML1.0 Strict parsing 𝒪 +PASS XHTML1.0 Strict parsing ℴ +PASS XHTML1.0 Strict parsing Ø +PASS XHTML1.0 Strict parsing ø +PASS XHTML1.0 Strict parsing ⊘ +PASS XHTML1.0 Strict parsing Õ +PASS XHTML1.0 Strict parsing õ +PASS XHTML1.0 Strict parsing ⨶ +PASS XHTML1.0 Strict parsing ⨷ +PASS XHTML1.0 Strict parsing ⊗ +PASS XHTML1.0 Strict parsing Ö +PASS XHTML1.0 Strict parsing ö +PASS XHTML1.0 Strict parsing ⌽ +PASS XHTML1.0 Strict parsing ‾ +PASS XHTML1.0 Strict parsing ⏞ +PASS XHTML1.0 Strict parsing ⎴ +PASS XHTML1.0 Strict parsing ⏜ +PASS XHTML1.0 Strict parsing ¶ +PASS XHTML1.0 Strict parsing ∥ +PASS XHTML1.0 Strict parsing ∥ +PASS XHTML1.0 Strict parsing ⫳ +PASS XHTML1.0 Strict parsing ⫽ +PASS XHTML1.0 Strict parsing ∂ +PASS XHTML1.0 Strict parsing ∂ +PASS XHTML1.0 Strict parsing П +PASS XHTML1.0 Strict parsing п +PASS XHTML1.0 Strict parsing % +PASS XHTML1.0 Strict parsing . +PASS XHTML1.0 Strict parsing ‰ +PASS XHTML1.0 Strict parsing ⊥ +PASS XHTML1.0 Strict parsing ‱ +PASS XHTML1.0 Strict parsing 𝔓 +PASS XHTML1.0 Strict parsing 𝔭 +PASS XHTML1.0 Strict parsing Φ +PASS XHTML1.0 Strict parsing φ +PASS XHTML1.0 Strict parsing ϕ +PASS XHTML1.0 Strict parsing ℳ +PASS XHTML1.0 Strict parsing ☎ +PASS XHTML1.0 Strict parsing Π +PASS XHTML1.0 Strict parsing π +PASS XHTML1.0 Strict parsing ⋔ +PASS XHTML1.0 Strict parsing ϖ +PASS XHTML1.0 Strict parsing ℏ +PASS XHTML1.0 Strict parsing ℎ +PASS XHTML1.0 Strict parsing ℏ +PASS XHTML1.0 Strict parsing ⨣ +PASS XHTML1.0 Strict parsing ⊞ +PASS XHTML1.0 Strict parsing ⨢ +PASS XHTML1.0 Strict parsing + +PASS XHTML1.0 Strict parsing ∔ +PASS XHTML1.0 Strict parsing ⨥ +PASS XHTML1.0 Strict parsing ⩲ +PASS XHTML1.0 Strict parsing ± +PASS XHTML1.0 Strict parsing ± +PASS XHTML1.0 Strict parsing ⨦ +PASS XHTML1.0 Strict parsing ⨧ +PASS XHTML1.0 Strict parsing ± +PASS XHTML1.0 Strict parsing ℌ +PASS XHTML1.0 Strict parsing ⨕ +PASS XHTML1.0 Strict parsing 𝕡 +PASS XHTML1.0 Strict parsing ℙ +PASS XHTML1.0 Strict parsing £ +PASS XHTML1.0 Strict parsing ⪷ +PASS XHTML1.0 Strict parsing ⪻ +PASS XHTML1.0 Strict parsing ≺ +PASS XHTML1.0 Strict parsing ≼ +PASS XHTML1.0 Strict parsing ⪷ +PASS XHTML1.0 Strict parsing ≺ +PASS XHTML1.0 Strict parsing ≼ +PASS XHTML1.0 Strict parsing ≺ +PASS XHTML1.0 Strict parsing ⪯ +PASS XHTML1.0 Strict parsing ≼ +PASS XHTML1.0 Strict parsing ≾ +PASS XHTML1.0 Strict parsing ⪯ +PASS XHTML1.0 Strict parsing ⪹ +PASS XHTML1.0 Strict parsing ⪵ +PASS XHTML1.0 Strict parsing ⋨ +PASS XHTML1.0 Strict parsing ⪯ +PASS XHTML1.0 Strict parsing ⪳ +PASS XHTML1.0 Strict parsing ≾ +PASS XHTML1.0 Strict parsing ′ +PASS XHTML1.0 Strict parsing ″ +PASS XHTML1.0 Strict parsing ℙ +PASS XHTML1.0 Strict parsing ⪹ +PASS XHTML1.0 Strict parsing ⪵ +PASS XHTML1.0 Strict parsing ⋨ +PASS XHTML1.0 Strict parsing ∏ +PASS XHTML1.0 Strict parsing ∏ +PASS XHTML1.0 Strict parsing ⌮ +PASS XHTML1.0 Strict parsing ⌒ +PASS XHTML1.0 Strict parsing ⌓ +PASS XHTML1.0 Strict parsing ∝ +PASS XHTML1.0 Strict parsing ∝ +PASS XHTML1.0 Strict parsing ∷ +PASS XHTML1.0 Strict parsing ∝ +PASS XHTML1.0 Strict parsing ≾ +PASS XHTML1.0 Strict parsing ⊰ +PASS XHTML1.0 Strict parsing 𝒫 +PASS XHTML1.0 Strict parsing 𝓅 +PASS XHTML1.0 Strict parsing Ψ +PASS XHTML1.0 Strict parsing ψ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing 𝔔 +PASS XHTML1.0 Strict parsing 𝔮 +PASS XHTML1.0 Strict parsing ⨌ +PASS XHTML1.0 Strict parsing 𝕢 +PASS XHTML1.0 Strict parsing ℚ +PASS XHTML1.0 Strict parsing ⁗ +PASS XHTML1.0 Strict parsing 𝒬 +PASS XHTML1.0 Strict parsing 𝓆 +PASS XHTML1.0 Strict parsing ℍ +PASS XHTML1.0 Strict parsing ⨖ +PASS XHTML1.0 Strict parsing ? +PASS XHTML1.0 Strict parsing ≟ +PASS XHTML1.0 Strict parsing " +PASS XHTML1.0 Strict parsing " +PASS XHTML1.0 Strict parsing ⇛ +PASS XHTML1.0 Strict parsing ∽̱ +PASS XHTML1.0 Strict parsing Ŕ +PASS XHTML1.0 Strict parsing ŕ +PASS XHTML1.0 Strict parsing √ +PASS XHTML1.0 Strict parsing ⦳ +PASS XHTML1.0 Strict parsing ⟩ +PASS XHTML1.0 Strict parsing ⟫ +PASS XHTML1.0 Strict parsing ⦒ +PASS XHTML1.0 Strict parsing ⦥ +PASS XHTML1.0 Strict parsing ⟩ +PASS XHTML1.0 Strict parsing » +PASS XHTML1.0 Strict parsing ⥵ +PASS XHTML1.0 Strict parsing ⇥ +PASS XHTML1.0 Strict parsing ⤠ +PASS XHTML1.0 Strict parsing ⤳ +PASS XHTML1.0 Strict parsing → +PASS XHTML1.0 Strict parsing ↠ +PASS XHTML1.0 Strict parsing ⇒ +PASS XHTML1.0 Strict parsing ⤞ +PASS XHTML1.0 Strict parsing ↪ +PASS XHTML1.0 Strict parsing ↬ +PASS XHTML1.0 Strict parsing ⥅ +PASS XHTML1.0 Strict parsing ⥴ +PASS XHTML1.0 Strict parsing ⤖ +PASS XHTML1.0 Strict parsing ↣ +PASS XHTML1.0 Strict parsing ↝ +PASS XHTML1.0 Strict parsing ⤚ +PASS XHTML1.0 Strict parsing ⤜ +PASS XHTML1.0 Strict parsing ∶ +PASS XHTML1.0 Strict parsing ℚ +PASS XHTML1.0 Strict parsing ⤍ +PASS XHTML1.0 Strict parsing ⤏ +PASS XHTML1.0 Strict parsing ⤐ +PASS XHTML1.0 Strict parsing ❳ +PASS XHTML1.0 Strict parsing } +PASS XHTML1.0 Strict parsing ] +PASS XHTML1.0 Strict parsing ⦌ +PASS XHTML1.0 Strict parsing ⦎ +PASS XHTML1.0 Strict parsing ⦐ +PASS XHTML1.0 Strict parsing Ř +PASS XHTML1.0 Strict parsing ř +PASS XHTML1.0 Strict parsing Ŗ +PASS XHTML1.0 Strict parsing ŗ +PASS XHTML1.0 Strict parsing ⌉ +PASS XHTML1.0 Strict parsing } +PASS XHTML1.0 Strict parsing Р +PASS XHTML1.0 Strict parsing р +PASS XHTML1.0 Strict parsing ⤷ +PASS XHTML1.0 Strict parsing ⥩ +PASS XHTML1.0 Strict parsing ” +PASS XHTML1.0 Strict parsing ” +PASS XHTML1.0 Strict parsing ↳ +PASS XHTML1.0 Strict parsing ℜ +PASS XHTML1.0 Strict parsing ℛ +PASS XHTML1.0 Strict parsing ℜ +PASS XHTML1.0 Strict parsing ℝ +PASS XHTML1.0 Strict parsing ℜ +PASS XHTML1.0 Strict parsing ▭ +PASS XHTML1.0 Strict parsing ® +PASS XHTML1.0 Strict parsing ® +PASS XHTML1.0 Strict parsing ∋ +PASS XHTML1.0 Strict parsing ⇋ +PASS XHTML1.0 Strict parsing ⥯ +PASS XHTML1.0 Strict parsing ⥽ +PASS XHTML1.0 Strict parsing ⌋ +PASS XHTML1.0 Strict parsing 𝔯 +PASS XHTML1.0 Strict parsing ℜ +PASS XHTML1.0 Strict parsing ⥤ +PASS XHTML1.0 Strict parsing ⇁ +PASS XHTML1.0 Strict parsing ⇀ +PASS XHTML1.0 Strict parsing ⥬ +PASS XHTML1.0 Strict parsing Ρ +PASS XHTML1.0 Strict parsing ρ +PASS XHTML1.0 Strict parsing ϱ +PASS XHTML1.0 Strict parsing ⟩ +PASS XHTML1.0 Strict parsing ⇥ +PASS XHTML1.0 Strict parsing → +PASS XHTML1.0 Strict parsing → +PASS XHTML1.0 Strict parsing ⇒ +PASS XHTML1.0 Strict parsing ⇄ +PASS XHTML1.0 Strict parsing ↣ +PASS XHTML1.0 Strict parsing ⌉ +PASS XHTML1.0 Strict parsing ⟧ +PASS XHTML1.0 Strict parsing ⥝ +PASS XHTML1.0 Strict parsing ⥕ +PASS XHTML1.0 Strict parsing ⇂ +PASS XHTML1.0 Strict parsing ⌋ +PASS XHTML1.0 Strict parsing ⇁ +PASS XHTML1.0 Strict parsing ⇀ +PASS XHTML1.0 Strict parsing ⇄ +PASS XHTML1.0 Strict parsing ⇌ +PASS XHTML1.0 Strict parsing ⇉ +PASS XHTML1.0 Strict parsing ↝ +PASS XHTML1.0 Strict parsing ↦ +PASS XHTML1.0 Strict parsing ⊢ +PASS XHTML1.0 Strict parsing ⥛ +PASS XHTML1.0 Strict parsing ⋌ +PASS XHTML1.0 Strict parsing ⧐ +PASS XHTML1.0 Strict parsing ⊳ +PASS XHTML1.0 Strict parsing ⊵ +PASS XHTML1.0 Strict parsing ⥏ +PASS XHTML1.0 Strict parsing ⥜ +PASS XHTML1.0 Strict parsing ⥔ +PASS XHTML1.0 Strict parsing ↾ +PASS XHTML1.0 Strict parsing ⥓ +PASS XHTML1.0 Strict parsing ⇀ +PASS XHTML1.0 Strict parsing ˚ +PASS XHTML1.0 Strict parsing ≓ +PASS XHTML1.0 Strict parsing ⇄ +PASS XHTML1.0 Strict parsing ⇌ +PASS XHTML1.0 Strict parsing ‏ +PASS XHTML1.0 Strict parsing ⎱ +PASS XHTML1.0 Strict parsing ⎱ +PASS XHTML1.0 Strict parsing ⫮ +PASS XHTML1.0 Strict parsing ⟭ +PASS XHTML1.0 Strict parsing ⇾ +PASS XHTML1.0 Strict parsing ⟧ +PASS XHTML1.0 Strict parsing ⦆ +PASS XHTML1.0 Strict parsing 𝕣 +PASS XHTML1.0 Strict parsing ℝ +PASS XHTML1.0 Strict parsing ⨮ +PASS XHTML1.0 Strict parsing ⨵ +PASS XHTML1.0 Strict parsing ⥰ +PASS XHTML1.0 Strict parsing ) +PASS XHTML1.0 Strict parsing ⦔ +PASS XHTML1.0 Strict parsing ⨒ +PASS XHTML1.0 Strict parsing ⇉ +PASS XHTML1.0 Strict parsing ⇛ +PASS XHTML1.0 Strict parsing › +PASS XHTML1.0 Strict parsing 𝓇 +PASS XHTML1.0 Strict parsing ℛ +PASS XHTML1.0 Strict parsing ↱ +PASS XHTML1.0 Strict parsing ↱ +PASS XHTML1.0 Strict parsing ] +PASS XHTML1.0 Strict parsing ’ +PASS XHTML1.0 Strict parsing ’ +PASS XHTML1.0 Strict parsing ⋌ +PASS XHTML1.0 Strict parsing ⋊ +PASS XHTML1.0 Strict parsing ▹ +PASS XHTML1.0 Strict parsing ⊵ +PASS XHTML1.0 Strict parsing ▸ +PASS XHTML1.0 Strict parsing ⧎ +PASS XHTML1.0 Strict parsing ⧴ +PASS XHTML1.0 Strict parsing ⥨ +PASS XHTML1.0 Strict parsing ℞ +PASS XHTML1.0 Strict parsing Ś +PASS XHTML1.0 Strict parsing ś +PASS XHTML1.0 Strict parsing ‚ +PASS XHTML1.0 Strict parsing ⪸ +PASS XHTML1.0 Strict parsing Š +PASS XHTML1.0 Strict parsing š +PASS XHTML1.0 Strict parsing ⪼ +PASS XHTML1.0 Strict parsing ≻ +PASS XHTML1.0 Strict parsing ≽ +PASS XHTML1.0 Strict parsing ⪰ +PASS XHTML1.0 Strict parsing ⪴ +PASS XHTML1.0 Strict parsing Ş +PASS XHTML1.0 Strict parsing ş +PASS XHTML1.0 Strict parsing Ŝ +PASS XHTML1.0 Strict parsing ŝ +PASS XHTML1.0 Strict parsing ⪺ +PASS XHTML1.0 Strict parsing ⪶ +PASS XHTML1.0 Strict parsing ⋩ +PASS XHTML1.0 Strict parsing ⨓ +PASS XHTML1.0 Strict parsing ≿ +PASS XHTML1.0 Strict parsing С +PASS XHTML1.0 Strict parsing с +PASS XHTML1.0 Strict parsing ⊡ +PASS XHTML1.0 Strict parsing ⋅ +PASS XHTML1.0 Strict parsing ⩦ +PASS XHTML1.0 Strict parsing ⤥ +PASS XHTML1.0 Strict parsing ↘ +PASS XHTML1.0 Strict parsing ⇘ +PASS XHTML1.0 Strict parsing ↘ +PASS XHTML1.0 Strict parsing § +PASS XHTML1.0 Strict parsing ; +PASS XHTML1.0 Strict parsing ⤩ +PASS XHTML1.0 Strict parsing ∖ +PASS XHTML1.0 Strict parsing ∖ +PASS XHTML1.0 Strict parsing ✶ +PASS XHTML1.0 Strict parsing 𝔖 +PASS XHTML1.0 Strict parsing 𝔰 +PASS XHTML1.0 Strict parsing ⌢ +PASS XHTML1.0 Strict parsing ♯ +PASS XHTML1.0 Strict parsing Щ +PASS XHTML1.0 Strict parsing щ +PASS XHTML1.0 Strict parsing Ш +PASS XHTML1.0 Strict parsing ш +PASS XHTML1.0 Strict parsing ↓ +PASS XHTML1.0 Strict parsing ← +PASS XHTML1.0 Strict parsing ∣ +PASS XHTML1.0 Strict parsing ∥ +PASS XHTML1.0 Strict parsing → +PASS XHTML1.0 Strict parsing ↑ +PASS XHTML1.0 Strict parsing ­ +PASS XHTML1.0 Strict parsing Σ +PASS XHTML1.0 Strict parsing σ +PASS XHTML1.0 Strict parsing ς +PASS XHTML1.0 Strict parsing ς +PASS XHTML1.0 Strict parsing ∼ +PASS XHTML1.0 Strict parsing ⩪ +PASS XHTML1.0 Strict parsing ≃ +PASS XHTML1.0 Strict parsing ≃ +PASS XHTML1.0 Strict parsing ⪞ +PASS XHTML1.0 Strict parsing ⪠ +PASS XHTML1.0 Strict parsing ⪝ +PASS XHTML1.0 Strict parsing ⪟ +PASS XHTML1.0 Strict parsing ≆ +PASS XHTML1.0 Strict parsing ⨤ +PASS XHTML1.0 Strict parsing ⥲ +PASS XHTML1.0 Strict parsing ← +PASS XHTML1.0 Strict parsing ∘ +PASS XHTML1.0 Strict parsing ∖ +PASS XHTML1.0 Strict parsing ⨳ +PASS XHTML1.0 Strict parsing ⧤ +PASS XHTML1.0 Strict parsing ∣ +PASS XHTML1.0 Strict parsing ⌣ +PASS XHTML1.0 Strict parsing ⪪ +PASS XHTML1.0 Strict parsing ⪬ +PASS XHTML1.0 Strict parsing ⪬︀ +PASS XHTML1.0 Strict parsing Ь +PASS XHTML1.0 Strict parsing ь +PASS XHTML1.0 Strict parsing ⌿ +PASS XHTML1.0 Strict parsing ⧄ +PASS XHTML1.0 Strict parsing / +PASS XHTML1.0 Strict parsing 𝕊 +PASS XHTML1.0 Strict parsing 𝕤 +PASS XHTML1.0 Strict parsing ♠ +PASS XHTML1.0 Strict parsing ♠ +PASS XHTML1.0 Strict parsing ∥ +PASS XHTML1.0 Strict parsing ⊓ +PASS XHTML1.0 Strict parsing ⊓︀ +PASS XHTML1.0 Strict parsing ⊔ +PASS XHTML1.0 Strict parsing ⊔︀ +PASS XHTML1.0 Strict parsing √ +PASS XHTML1.0 Strict parsing ⊏ +PASS XHTML1.0 Strict parsing ⊑ +PASS XHTML1.0 Strict parsing ⊏ +PASS XHTML1.0 Strict parsing ⊑ +PASS XHTML1.0 Strict parsing ⊐ +PASS XHTML1.0 Strict parsing ⊒ +PASS XHTML1.0 Strict parsing ⊐ +PASS XHTML1.0 Strict parsing ⊒ +PASS XHTML1.0 Strict parsing □ +PASS XHTML1.0 Strict parsing □ +PASS XHTML1.0 Strict parsing ⊓ +PASS XHTML1.0 Strict parsing ⊏ +PASS XHTML1.0 Strict parsing ⊑ +PASS XHTML1.0 Strict parsing ⊐ +PASS XHTML1.0 Strict parsing ⊒ +PASS XHTML1.0 Strict parsing ⊔ +PASS XHTML1.0 Strict parsing ▪ +PASS XHTML1.0 Strict parsing □ +PASS XHTML1.0 Strict parsing ▪ +PASS XHTML1.0 Strict parsing → +PASS XHTML1.0 Strict parsing 𝒮 +PASS XHTML1.0 Strict parsing 𝓈 +PASS XHTML1.0 Strict parsing ∖ +PASS XHTML1.0 Strict parsing ⌣ +PASS XHTML1.0 Strict parsing ⋆ +PASS XHTML1.0 Strict parsing ⋆ +PASS XHTML1.0 Strict parsing ☆ +PASS XHTML1.0 Strict parsing ★ +PASS XHTML1.0 Strict parsing ϵ +PASS XHTML1.0 Strict parsing ϕ +PASS XHTML1.0 Strict parsing ¯ +PASS XHTML1.0 Strict parsing ⊂ +PASS XHTML1.0 Strict parsing ⋐ +PASS XHTML1.0 Strict parsing ⪽ +PASS XHTML1.0 Strict parsing ⫅ +PASS XHTML1.0 Strict parsing ⊆ +PASS XHTML1.0 Strict parsing ⫃ +PASS XHTML1.0 Strict parsing ⫁ +PASS XHTML1.0 Strict parsing ⫋ +PASS XHTML1.0 Strict parsing ⊊ +PASS XHTML1.0 Strict parsing ⪿ +PASS XHTML1.0 Strict parsing ⥹ +PASS XHTML1.0 Strict parsing ⊂ +PASS XHTML1.0 Strict parsing ⋐ +PASS XHTML1.0 Strict parsing ⊆ +PASS XHTML1.0 Strict parsing ⫅ +PASS XHTML1.0 Strict parsing ⊆ +PASS XHTML1.0 Strict parsing ⊊ +PASS XHTML1.0 Strict parsing ⫋ +PASS XHTML1.0 Strict parsing ⫇ +PASS XHTML1.0 Strict parsing ⫕ +PASS XHTML1.0 Strict parsing ⫓ +PASS XHTML1.0 Strict parsing ⪸ +PASS XHTML1.0 Strict parsing ≻ +PASS XHTML1.0 Strict parsing ≽ +PASS XHTML1.0 Strict parsing ≻ +PASS XHTML1.0 Strict parsing ⪰ +PASS XHTML1.0 Strict parsing ≽ +PASS XHTML1.0 Strict parsing ≿ +PASS XHTML1.0 Strict parsing ⪰ +PASS XHTML1.0 Strict parsing ⪺ +PASS XHTML1.0 Strict parsing ⪶ +PASS XHTML1.0 Strict parsing ⋩ +PASS XHTML1.0 Strict parsing ≿ +PASS XHTML1.0 Strict parsing ∋ +PASS XHTML1.0 Strict parsing ∑ +PASS XHTML1.0 Strict parsing ∑ +PASS XHTML1.0 Strict parsing ♪ +PASS XHTML1.0 Strict parsing ¹ +PASS XHTML1.0 Strict parsing ² +PASS XHTML1.0 Strict parsing ³ +PASS XHTML1.0 Strict parsing ⊃ +PASS XHTML1.0 Strict parsing ⋑ +PASS XHTML1.0 Strict parsing ⪾ +PASS XHTML1.0 Strict parsing ⫘ +PASS XHTML1.0 Strict parsing ⫆ +PASS XHTML1.0 Strict parsing ⊇ +PASS XHTML1.0 Strict parsing ⫄ +PASS XHTML1.0 Strict parsing ⊃ +PASS XHTML1.0 Strict parsing ⊇ +PASS XHTML1.0 Strict parsing ⟉ +PASS XHTML1.0 Strict parsing ⫗ +PASS XHTML1.0 Strict parsing ⥻ +PASS XHTML1.0 Strict parsing ⫂ +PASS XHTML1.0 Strict parsing ⫌ +PASS XHTML1.0 Strict parsing ⊋ +PASS XHTML1.0 Strict parsing ⫀ +PASS XHTML1.0 Strict parsing ⊃ +PASS XHTML1.0 Strict parsing ⋑ +PASS XHTML1.0 Strict parsing ⊇ +PASS XHTML1.0 Strict parsing ⫆ +PASS XHTML1.0 Strict parsing ⊋ +PASS XHTML1.0 Strict parsing ⫌ +PASS XHTML1.0 Strict parsing ⫈ +PASS XHTML1.0 Strict parsing ⫔ +PASS XHTML1.0 Strict parsing ⫖ +PASS XHTML1.0 Strict parsing ⤦ +PASS XHTML1.0 Strict parsing ↙ +PASS XHTML1.0 Strict parsing ⇙ +PASS XHTML1.0 Strict parsing ↙ +PASS XHTML1.0 Strict parsing ⤪ +PASS XHTML1.0 Strict parsing ß +PASS XHTML1.0 Strict parsing 	 +PASS XHTML1.0 Strict parsing ⌖ +PASS XHTML1.0 Strict parsing Τ +PASS XHTML1.0 Strict parsing τ +PASS XHTML1.0 Strict parsing ⎴ +PASS XHTML1.0 Strict parsing Ť +PASS XHTML1.0 Strict parsing ť +PASS XHTML1.0 Strict parsing Ţ +PASS XHTML1.0 Strict parsing ţ +PASS XHTML1.0 Strict parsing Т +PASS XHTML1.0 Strict parsing т +PASS XHTML1.0 Strict parsing ⃛ +PASS XHTML1.0 Strict parsing ⌕ +PASS XHTML1.0 Strict parsing 𝔗 +PASS XHTML1.0 Strict parsing 𝔱 +PASS XHTML1.0 Strict parsing ∴ +PASS XHTML1.0 Strict parsing ∴ +PASS XHTML1.0 Strict parsing ∴ +PASS XHTML1.0 Strict parsing Θ +PASS XHTML1.0 Strict parsing θ +PASS XHTML1.0 Strict parsing ϑ +PASS XHTML1.0 Strict parsing ϑ +PASS XHTML1.0 Strict parsing ≈ +PASS XHTML1.0 Strict parsing ∼ +PASS XHTML1.0 Strict parsing    +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing ≈ +PASS XHTML1.0 Strict parsing ∼ +PASS XHTML1.0 Strict parsing Þ +PASS XHTML1.0 Strict parsing þ +PASS XHTML1.0 Strict parsing ˜ +PASS XHTML1.0 Strict parsing ∼ +PASS XHTML1.0 Strict parsing ≃ +PASS XHTML1.0 Strict parsing ≅ +PASS XHTML1.0 Strict parsing ≈ +PASS XHTML1.0 Strict parsing ⨱ +PASS XHTML1.0 Strict parsing ⊠ +PASS XHTML1.0 Strict parsing × +PASS XHTML1.0 Strict parsing ⨰ +PASS XHTML1.0 Strict parsing ∭ +PASS XHTML1.0 Strict parsing ⤨ +PASS XHTML1.0 Strict parsing ⌶ +PASS XHTML1.0 Strict parsing ⫱ +PASS XHTML1.0 Strict parsing ⊤ +PASS XHTML1.0 Strict parsing 𝕋 +PASS XHTML1.0 Strict parsing 𝕥 +PASS XHTML1.0 Strict parsing ⫚ +PASS XHTML1.0 Strict parsing ⤩ +PASS XHTML1.0 Strict parsing ‴ +PASS XHTML1.0 Strict parsing ™ +PASS XHTML1.0 Strict parsing ™ +PASS XHTML1.0 Strict parsing ▵ +PASS XHTML1.0 Strict parsing ▿ +PASS XHTML1.0 Strict parsing ◃ +PASS XHTML1.0 Strict parsing ⊴ +PASS XHTML1.0 Strict parsing ≜ +PASS XHTML1.0 Strict parsing ▹ +PASS XHTML1.0 Strict parsing ⊵ +PASS XHTML1.0 Strict parsing ◬ +PASS XHTML1.0 Strict parsing ≜ +PASS XHTML1.0 Strict parsing ⨺ +PASS XHTML1.0 Strict parsing ⃛ +PASS XHTML1.0 Strict parsing ⨹ +PASS XHTML1.0 Strict parsing ⧍ +PASS XHTML1.0 Strict parsing ⨻ +PASS XHTML1.0 Strict parsing ⏢ +PASS XHTML1.0 Strict parsing 𝒯 +PASS XHTML1.0 Strict parsing 𝓉 +PASS XHTML1.0 Strict parsing Ц +PASS XHTML1.0 Strict parsing ц +PASS XHTML1.0 Strict parsing Ћ +PASS XHTML1.0 Strict parsing ћ +PASS XHTML1.0 Strict parsing Ŧ +PASS XHTML1.0 Strict parsing ŧ +PASS XHTML1.0 Strict parsing ≬ +PASS XHTML1.0 Strict parsing ↞ +PASS XHTML1.0 Strict parsing ↠ +PASS XHTML1.0 Strict parsing Ú +PASS XHTML1.0 Strict parsing ú +PASS XHTML1.0 Strict parsing ↑ +PASS XHTML1.0 Strict parsing ↟ +PASS XHTML1.0 Strict parsing ⇑ +PASS XHTML1.0 Strict parsing ⥉ +PASS XHTML1.0 Strict parsing Ў +PASS XHTML1.0 Strict parsing ў +PASS XHTML1.0 Strict parsing Ŭ +PASS XHTML1.0 Strict parsing ŭ +PASS XHTML1.0 Strict parsing Û +PASS XHTML1.0 Strict parsing û +PASS XHTML1.0 Strict parsing У +PASS XHTML1.0 Strict parsing у +PASS XHTML1.0 Strict parsing ⇅ +PASS XHTML1.0 Strict parsing Ű +PASS XHTML1.0 Strict parsing ű +PASS XHTML1.0 Strict parsing ⥮ +PASS XHTML1.0 Strict parsing ⥾ +PASS XHTML1.0 Strict parsing 𝔘 +PASS XHTML1.0 Strict parsing 𝔲 +PASS XHTML1.0 Strict parsing Ù +PASS XHTML1.0 Strict parsing ù +PASS XHTML1.0 Strict parsing ⥣ +PASS XHTML1.0 Strict parsing ↿ +PASS XHTML1.0 Strict parsing ↾ +PASS XHTML1.0 Strict parsing ▀ +PASS XHTML1.0 Strict parsing ⌜ +PASS XHTML1.0 Strict parsing ⌜ +PASS XHTML1.0 Strict parsing ⌏ +PASS XHTML1.0 Strict parsing ◸ +PASS XHTML1.0 Strict parsing Ū +PASS XHTML1.0 Strict parsing ū +PASS XHTML1.0 Strict parsing ¨ +PASS XHTML1.0 Strict parsing _ +PASS XHTML1.0 Strict parsing ⏟ +PASS XHTML1.0 Strict parsing ⎵ +PASS XHTML1.0 Strict parsing ⏝ +PASS XHTML1.0 Strict parsing ⋃ +PASS XHTML1.0 Strict parsing ⊎ +PASS XHTML1.0 Strict parsing Ų +PASS XHTML1.0 Strict parsing ų +PASS XHTML1.0 Strict parsing 𝕌 +PASS XHTML1.0 Strict parsing 𝕦 +PASS XHTML1.0 Strict parsing ⤒ +PASS XHTML1.0 Strict parsing ↑ +PASS XHTML1.0 Strict parsing ↑ +PASS XHTML1.0 Strict parsing ⇑ +PASS XHTML1.0 Strict parsing ⇅ +PASS XHTML1.0 Strict parsing ↕ +PASS XHTML1.0 Strict parsing ↕ +PASS XHTML1.0 Strict parsing ⇕ +PASS XHTML1.0 Strict parsing ⥮ +PASS XHTML1.0 Strict parsing ↿ +PASS XHTML1.0 Strict parsing ↾ +PASS XHTML1.0 Strict parsing ⊎ +PASS XHTML1.0 Strict parsing ↖ +PASS XHTML1.0 Strict parsing ↗ +PASS XHTML1.0 Strict parsing υ +PASS XHTML1.0 Strict parsing ϒ +PASS XHTML1.0 Strict parsing ϒ +PASS XHTML1.0 Strict parsing Υ +PASS XHTML1.0 Strict parsing υ +PASS XHTML1.0 Strict parsing ↥ +PASS XHTML1.0 Strict parsing ⊥ +PASS XHTML1.0 Strict parsing ⇈ +PASS XHTML1.0 Strict parsing ⌝ +PASS XHTML1.0 Strict parsing ⌝ +PASS XHTML1.0 Strict parsing ⌎ +PASS XHTML1.0 Strict parsing Ů +PASS XHTML1.0 Strict parsing ů +PASS XHTML1.0 Strict parsing ◹ +PASS XHTML1.0 Strict parsing 𝒰 +PASS XHTML1.0 Strict parsing 𝓊 +PASS XHTML1.0 Strict parsing ⋰ +PASS XHTML1.0 Strict parsing Ũ +PASS XHTML1.0 Strict parsing ũ +PASS XHTML1.0 Strict parsing ▵ +PASS XHTML1.0 Strict parsing ▴ +PASS XHTML1.0 Strict parsing ⇈ +PASS XHTML1.0 Strict parsing Ü +PASS XHTML1.0 Strict parsing ü +PASS XHTML1.0 Strict parsing ⦧ +PASS XHTML1.0 Strict parsing ⦜ +PASS XHTML1.0 Strict parsing ϵ +PASS XHTML1.0 Strict parsing ϰ +PASS XHTML1.0 Strict parsing ∅ +PASS XHTML1.0 Strict parsing ϕ +PASS XHTML1.0 Strict parsing ϖ +PASS XHTML1.0 Strict parsing ∝ +PASS XHTML1.0 Strict parsing ↕ +PASS XHTML1.0 Strict parsing ⇕ +PASS XHTML1.0 Strict parsing ϱ +PASS XHTML1.0 Strict parsing ς +PASS XHTML1.0 Strict parsing ⊊︀ +PASS XHTML1.0 Strict parsing ⫋︀ +PASS XHTML1.0 Strict parsing ⊋︀ +PASS XHTML1.0 Strict parsing ⫌︀ +PASS XHTML1.0 Strict parsing ϑ +PASS XHTML1.0 Strict parsing ⊲ +PASS XHTML1.0 Strict parsing ⊳ +PASS XHTML1.0 Strict parsing ⫨ +PASS XHTML1.0 Strict parsing ⫫ +PASS XHTML1.0 Strict parsing ⫩ +PASS XHTML1.0 Strict parsing В +PASS XHTML1.0 Strict parsing в +PASS XHTML1.0 Strict parsing ⊢ +PASS XHTML1.0 Strict parsing ⊨ +PASS XHTML1.0 Strict parsing ⊩ +PASS XHTML1.0 Strict parsing ⊫ +PASS XHTML1.0 Strict parsing ⫦ +PASS XHTML1.0 Strict parsing ⊻ +PASS XHTML1.0 Strict parsing ∨ +PASS XHTML1.0 Strict parsing ⋁ +PASS XHTML1.0 Strict parsing ≚ +PASS XHTML1.0 Strict parsing ⋮ +PASS XHTML1.0 Strict parsing | +PASS XHTML1.0 Strict parsing ‖ +PASS XHTML1.0 Strict parsing | +PASS XHTML1.0 Strict parsing ‖ +PASS XHTML1.0 Strict parsing ∣ +PASS XHTML1.0 Strict parsing | +PASS XHTML1.0 Strict parsing ❘ +PASS XHTML1.0 Strict parsing ≀ +PASS XHTML1.0 Strict parsing   +PASS XHTML1.0 Strict parsing 𝔙 +PASS XHTML1.0 Strict parsing 𝔳 +PASS XHTML1.0 Strict parsing ⊲ +PASS XHTML1.0 Strict parsing ⊂⃒ +PASS XHTML1.0 Strict parsing ⊃⃒ +PASS XHTML1.0 Strict parsing 𝕍 +PASS XHTML1.0 Strict parsing 𝕧 +PASS XHTML1.0 Strict parsing ∝ +PASS XHTML1.0 Strict parsing ⊳ +PASS XHTML1.0 Strict parsing 𝒱 +PASS XHTML1.0 Strict parsing 𝓋 +PASS XHTML1.0 Strict parsing ⫋︀ +PASS XHTML1.0 Strict parsing ⊊︀ +PASS XHTML1.0 Strict parsing ⫌︀ +PASS XHTML1.0 Strict parsing ⊋︀ +PASS XHTML1.0 Strict parsing ⊪ +PASS XHTML1.0 Strict parsing ⦚ +PASS XHTML1.0 Strict parsing Ŵ +PASS XHTML1.0 Strict parsing ŵ +PASS XHTML1.0 Strict parsing ⩟ +PASS XHTML1.0 Strict parsing ∧ +PASS XHTML1.0 Strict parsing ⋀ +PASS XHTML1.0 Strict parsing ≙ +PASS XHTML1.0 Strict parsing ℘ +PASS XHTML1.0 Strict parsing 𝔚 +PASS XHTML1.0 Strict parsing 𝔴 +PASS XHTML1.0 Strict parsing 𝕎 +PASS XHTML1.0 Strict parsing 𝕨 +PASS XHTML1.0 Strict parsing ℘ +PASS XHTML1.0 Strict parsing ≀ +PASS XHTML1.0 Strict parsing ≀ +PASS XHTML1.0 Strict parsing 𝒲 +PASS XHTML1.0 Strict parsing 𝓌 +PASS XHTML1.0 Strict parsing ⋂ +PASS XHTML1.0 Strict parsing ◯ +PASS XHTML1.0 Strict parsing ⋃ +PASS XHTML1.0 Strict parsing ▽ +PASS XHTML1.0 Strict parsing 𝔛 +PASS XHTML1.0 Strict parsing 𝔵 +PASS XHTML1.0 Strict parsing ⟷ +PASS XHTML1.0 Strict parsing ⟺ +PASS XHTML1.0 Strict parsing Ξ +PASS XHTML1.0 Strict parsing ξ +PASS XHTML1.0 Strict parsing ⟵ +PASS XHTML1.0 Strict parsing ⟸ +PASS XHTML1.0 Strict parsing ⟼ +PASS XHTML1.0 Strict parsing ⋻ +PASS XHTML1.0 Strict parsing ⨀ +PASS XHTML1.0 Strict parsing 𝕏 +PASS XHTML1.0 Strict parsing 𝕩 +PASS XHTML1.0 Strict parsing ⨁ +PASS XHTML1.0 Strict parsing ⨂ +PASS XHTML1.0 Strict parsing ⟶ +PASS XHTML1.0 Strict parsing ⟹ +PASS XHTML1.0 Strict parsing 𝒳 +PASS XHTML1.0 Strict parsing 𝓍 +PASS XHTML1.0 Strict parsing ⨆ +PASS XHTML1.0 Strict parsing ⨄ +PASS XHTML1.0 Strict parsing △ +PASS XHTML1.0 Strict parsing ⋁ +PASS XHTML1.0 Strict parsing ⋀ +PASS XHTML1.0 Strict parsing Ý +PASS XHTML1.0 Strict parsing ý +PASS XHTML1.0 Strict parsing Я +PASS XHTML1.0 Strict parsing я +PASS XHTML1.0 Strict parsing Ŷ +PASS XHTML1.0 Strict parsing ŷ +PASS XHTML1.0 Strict parsing Ы +PASS XHTML1.0 Strict parsing ы +PASS XHTML1.0 Strict parsing ¥ +PASS XHTML1.0 Strict parsing 𝔜 +PASS XHTML1.0 Strict parsing 𝔶 +PASS XHTML1.0 Strict parsing Ї +PASS XHTML1.0 Strict parsing ї +PASS XHTML1.0 Strict parsing 𝕐 +PASS XHTML1.0 Strict parsing 𝕪 +PASS XHTML1.0 Strict parsing 𝒴 +PASS XHTML1.0 Strict parsing 𝓎 +PASS XHTML1.0 Strict parsing Ю +PASS XHTML1.0 Strict parsing ю +PASS XHTML1.0 Strict parsing ÿ +PASS XHTML1.0 Strict parsing Ÿ +PASS XHTML1.0 Strict parsing Ź +PASS XHTML1.0 Strict parsing ź +PASS XHTML1.0 Strict parsing Ž +PASS XHTML1.0 Strict parsing ž +PASS XHTML1.0 Strict parsing З +PASS XHTML1.0 Strict parsing з +PASS XHTML1.0 Strict parsing Ż +PASS XHTML1.0 Strict parsing ż +PASS XHTML1.0 Strict parsing ℨ +PASS XHTML1.0 Strict parsing ​ +PASS XHTML1.0 Strict parsing Ζ +PASS XHTML1.0 Strict parsing ζ +PASS XHTML1.0 Strict parsing 𝔷 +PASS XHTML1.0 Strict parsing ℨ +PASS XHTML1.0 Strict parsing Ж +PASS XHTML1.0 Strict parsing ж +PASS XHTML1.0 Strict parsing ⇝ +PASS XHTML1.0 Strict parsing 𝕫 +PASS XHTML1.0 Strict parsing ℤ +PASS XHTML1.0 Strict parsing 𝒵 +PASS XHTML1.0 Strict parsing 𝓏 +PASS XHTML1.0 Strict parsing ‍ +PASS XHTML1.0 Strict parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm new file mode 100644 index 0000000..a86c7a84 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML 1.0 Strict//EN", "foo", "XHTML1.0 Strict"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4-expected.txt new file mode 100644 index 0000000..138ec8a0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML1.0 Frameset parsing Á +PASS XHTML1.0 Frameset parsing á +PASS XHTML1.0 Frameset parsing Ă +PASS XHTML1.0 Frameset parsing ă +PASS XHTML1.0 Frameset parsing ∾ +PASS XHTML1.0 Frameset parsing ∿ +PASS XHTML1.0 Frameset parsing ∾̳ +PASS XHTML1.0 Frameset parsing  +PASS XHTML1.0 Frameset parsing â +PASS XHTML1.0 Frameset parsing ´ +PASS XHTML1.0 Frameset parsing А +PASS XHTML1.0 Frameset parsing а +PASS XHTML1.0 Frameset parsing Æ +PASS XHTML1.0 Frameset parsing æ +PASS XHTML1.0 Frameset parsing ⁡ +PASS XHTML1.0 Frameset parsing 𝔄 +PASS XHTML1.0 Frameset parsing 𝔞 +PASS XHTML1.0 Frameset parsing À +PASS XHTML1.0 Frameset parsing à +PASS XHTML1.0 Frameset parsing ℵ +PASS XHTML1.0 Frameset parsing ℵ +PASS XHTML1.0 Frameset parsing Α +PASS XHTML1.0 Frameset parsing α +PASS XHTML1.0 Frameset parsing Ā +PASS XHTML1.0 Frameset parsing ā +PASS XHTML1.0 Frameset parsing ⨿ +PASS XHTML1.0 Frameset parsing & +FAIL XHTML1.0 Frameset parsing & assert_true: expected true got false +PASS XHTML1.0 Frameset parsing ⩕ +PASS XHTML1.0 Frameset parsing ⩓ +PASS XHTML1.0 Frameset parsing ∧ +PASS XHTML1.0 Frameset parsing ⩜ +PASS XHTML1.0 Frameset parsing ⩘ +PASS XHTML1.0 Frameset parsing ⩚ +PASS XHTML1.0 Frameset parsing ∠ +PASS XHTML1.0 Frameset parsing ⦤ +PASS XHTML1.0 Frameset parsing ∠ +PASS XHTML1.0 Frameset parsing ⦨ +PASS XHTML1.0 Frameset parsing ⦩ +PASS XHTML1.0 Frameset parsing ⦪ +PASS XHTML1.0 Frameset parsing ⦫ +PASS XHTML1.0 Frameset parsing ⦬ +PASS XHTML1.0 Frameset parsing ⦭ +PASS XHTML1.0 Frameset parsing ⦮ +PASS XHTML1.0 Frameset parsing ⦯ +PASS XHTML1.0 Frameset parsing ∡ +PASS XHTML1.0 Frameset parsing ∟ +PASS XHTML1.0 Frameset parsing ⊾ +PASS XHTML1.0 Frameset parsing ⦝ +PASS XHTML1.0 Frameset parsing ∢ +PASS XHTML1.0 Frameset parsing Å +PASS XHTML1.0 Frameset parsing ⍼ +PASS XHTML1.0 Frameset parsing Ą +PASS XHTML1.0 Frameset parsing ą +PASS XHTML1.0 Frameset parsing 𝔸 +PASS XHTML1.0 Frameset parsing 𝕒 +PASS XHTML1.0 Frameset parsing ⩯ +PASS XHTML1.0 Frameset parsing ≈ +PASS XHTML1.0 Frameset parsing ⩰ +PASS XHTML1.0 Frameset parsing ≊ +PASS XHTML1.0 Frameset parsing ≋ +PASS XHTML1.0 Frameset parsing ' +PASS XHTML1.0 Frameset parsing ⁡ +PASS XHTML1.0 Frameset parsing ≈ +PASS XHTML1.0 Frameset parsing ≊ +PASS XHTML1.0 Frameset parsing Å +PASS XHTML1.0 Frameset parsing å +PASS XHTML1.0 Frameset parsing 𝒜 +PASS XHTML1.0 Frameset parsing 𝒶 +PASS XHTML1.0 Frameset parsing ≔ +PASS XHTML1.0 Frameset parsing * +PASS XHTML1.0 Frameset parsing ≈ +PASS XHTML1.0 Frameset parsing ≍ +PASS XHTML1.0 Frameset parsing à +PASS XHTML1.0 Frameset parsing ã +PASS XHTML1.0 Frameset parsing Ä +PASS XHTML1.0 Frameset parsing ä +PASS XHTML1.0 Frameset parsing ∳ +PASS XHTML1.0 Frameset parsing ⨑ +PASS XHTML1.0 Frameset parsing ≌ +PASS XHTML1.0 Frameset parsing ϶ +PASS XHTML1.0 Frameset parsing ‵ +PASS XHTML1.0 Frameset parsing ∽ +PASS XHTML1.0 Frameset parsing ⋍ +PASS XHTML1.0 Frameset parsing ∖ +PASS XHTML1.0 Frameset parsing ⫧ +PASS XHTML1.0 Frameset parsing ⊽ +PASS XHTML1.0 Frameset parsing ⌅ +PASS XHTML1.0 Frameset parsing ⌆ +PASS XHTML1.0 Frameset parsing ⌅ +PASS XHTML1.0 Frameset parsing ⎵ +PASS XHTML1.0 Frameset parsing ⎶ +PASS XHTML1.0 Frameset parsing ≌ +PASS XHTML1.0 Frameset parsing Б +PASS XHTML1.0 Frameset parsing б +PASS XHTML1.0 Frameset parsing „ +PASS XHTML1.0 Frameset parsing ∵ +PASS XHTML1.0 Frameset parsing ∵ +PASS XHTML1.0 Frameset parsing ∵ +PASS XHTML1.0 Frameset parsing ⦰ +PASS XHTML1.0 Frameset parsing ϶ +PASS XHTML1.0 Frameset parsing ℬ +PASS XHTML1.0 Frameset parsing ℬ +PASS XHTML1.0 Frameset parsing Β +PASS XHTML1.0 Frameset parsing β +PASS XHTML1.0 Frameset parsing ℶ +PASS XHTML1.0 Frameset parsing ≬ +PASS XHTML1.0 Frameset parsing 𝔅 +PASS XHTML1.0 Frameset parsing 𝔟 +PASS XHTML1.0 Frameset parsing ⋂ +PASS XHTML1.0 Frameset parsing ◯ +PASS XHTML1.0 Frameset parsing ⋃ +PASS XHTML1.0 Frameset parsing ⨀ +PASS XHTML1.0 Frameset parsing ⨁ +PASS XHTML1.0 Frameset parsing ⨂ +PASS XHTML1.0 Frameset parsing ⨆ +PASS XHTML1.0 Frameset parsing ★ +PASS XHTML1.0 Frameset parsing ▽ +PASS XHTML1.0 Frameset parsing △ +PASS XHTML1.0 Frameset parsing ⨄ +PASS XHTML1.0 Frameset parsing ⋁ +PASS XHTML1.0 Frameset parsing ⋀ +PASS XHTML1.0 Frameset parsing ⤍ +PASS XHTML1.0 Frameset parsing ⧫ +PASS XHTML1.0 Frameset parsing ▪ +PASS XHTML1.0 Frameset parsing ▴ +PASS XHTML1.0 Frameset parsing ▾ +PASS XHTML1.0 Frameset parsing ◂ +PASS XHTML1.0 Frameset parsing ▸ +PASS XHTML1.0 Frameset parsing ␣ +PASS XHTML1.0 Frameset parsing ▒ +PASS XHTML1.0 Frameset parsing ░ +PASS XHTML1.0 Frameset parsing ▓ +PASS XHTML1.0 Frameset parsing █ +PASS XHTML1.0 Frameset parsing =⃥ +PASS XHTML1.0 Frameset parsing ≡⃥ +PASS XHTML1.0 Frameset parsing ⫭ +PASS XHTML1.0 Frameset parsing ⌐ +PASS XHTML1.0 Frameset parsing 𝔹 +PASS XHTML1.0 Frameset parsing 𝕓 +PASS XHTML1.0 Frameset parsing ⊥ +PASS XHTML1.0 Frameset parsing ⊥ +PASS XHTML1.0 Frameset parsing ⋈ +PASS XHTML1.0 Frameset parsing ⧉ +PASS XHTML1.0 Frameset parsing ┐ +PASS XHTML1.0 Frameset parsing ╕ +PASS XHTML1.0 Frameset parsing ╖ +PASS XHTML1.0 Frameset parsing ╗ +PASS XHTML1.0 Frameset parsing ┌ +PASS XHTML1.0 Frameset parsing ╒ +PASS XHTML1.0 Frameset parsing ╓ +PASS XHTML1.0 Frameset parsing ╔ +PASS XHTML1.0 Frameset parsing ─ +PASS XHTML1.0 Frameset parsing ═ +PASS XHTML1.0 Frameset parsing ┬ +PASS XHTML1.0 Frameset parsing ╤ +PASS XHTML1.0 Frameset parsing ╥ +PASS XHTML1.0 Frameset parsing ╦ +PASS XHTML1.0 Frameset parsing ┴ +PASS XHTML1.0 Frameset parsing ╧ +PASS XHTML1.0 Frameset parsing ╨ +PASS XHTML1.0 Frameset parsing ╩ +PASS XHTML1.0 Frameset parsing ⊟ +PASS XHTML1.0 Frameset parsing ⊞ +PASS XHTML1.0 Frameset parsing ⊠ +PASS XHTML1.0 Frameset parsing ┘ +PASS XHTML1.0 Frameset parsing ╛ +PASS XHTML1.0 Frameset parsing ╜ +PASS XHTML1.0 Frameset parsing ╝ +PASS XHTML1.0 Frameset parsing └ +PASS XHTML1.0 Frameset parsing ╘ +PASS XHTML1.0 Frameset parsing ╙ +PASS XHTML1.0 Frameset parsing ╚ +PASS XHTML1.0 Frameset parsing │ +PASS XHTML1.0 Frameset parsing ║ +PASS XHTML1.0 Frameset parsing ┼ +PASS XHTML1.0 Frameset parsing ╪ +PASS XHTML1.0 Frameset parsing ╫ +PASS XHTML1.0 Frameset parsing ╬ +PASS XHTML1.0 Frameset parsing ┤ +PASS XHTML1.0 Frameset parsing ╡ +PASS XHTML1.0 Frameset parsing ╢ +PASS XHTML1.0 Frameset parsing ╣ +PASS XHTML1.0 Frameset parsing ├ +PASS XHTML1.0 Frameset parsing ╞ +PASS XHTML1.0 Frameset parsing ╟ +PASS XHTML1.0 Frameset parsing ╠ +PASS XHTML1.0 Frameset parsing ‵ +PASS XHTML1.0 Frameset parsing ˘ +PASS XHTML1.0 Frameset parsing ˘ +PASS XHTML1.0 Frameset parsing ¦ +PASS XHTML1.0 Frameset parsing 𝒷 +PASS XHTML1.0 Frameset parsing ℬ +PASS XHTML1.0 Frameset parsing ⁏ +PASS XHTML1.0 Frameset parsing ∽ +PASS XHTML1.0 Frameset parsing ⋍ +PASS XHTML1.0 Frameset parsing ⧅ +PASS XHTML1.0 Frameset parsing \ +PASS XHTML1.0 Frameset parsing ⟈ +PASS XHTML1.0 Frameset parsing • +PASS XHTML1.0 Frameset parsing • +PASS XHTML1.0 Frameset parsing ≎ +PASS XHTML1.0 Frameset parsing ⪮ +PASS XHTML1.0 Frameset parsing ≏ +PASS XHTML1.0 Frameset parsing ≎ +PASS XHTML1.0 Frameset parsing ≏ +PASS XHTML1.0 Frameset parsing Ć +PASS XHTML1.0 Frameset parsing ć +PASS XHTML1.0 Frameset parsing ⩄ +PASS XHTML1.0 Frameset parsing ⩉ +PASS XHTML1.0 Frameset parsing ⩋ +PASS XHTML1.0 Frameset parsing ∩ +PASS XHTML1.0 Frameset parsing ⋒ +PASS XHTML1.0 Frameset parsing ⩇ +PASS XHTML1.0 Frameset parsing ⩀ +PASS XHTML1.0 Frameset parsing ⅅ +PASS XHTML1.0 Frameset parsing ∩︀ +PASS XHTML1.0 Frameset parsing ⁁ +PASS XHTML1.0 Frameset parsing ˇ +PASS XHTML1.0 Frameset parsing ℭ +PASS XHTML1.0 Frameset parsing ⩍ +PASS XHTML1.0 Frameset parsing Č +PASS XHTML1.0 Frameset parsing č +PASS XHTML1.0 Frameset parsing Ç +PASS XHTML1.0 Frameset parsing ç +PASS XHTML1.0 Frameset parsing Ĉ +PASS XHTML1.0 Frameset parsing ĉ +PASS XHTML1.0 Frameset parsing ∰ +PASS XHTML1.0 Frameset parsing ⩌ +PASS XHTML1.0 Frameset parsing ⩐ +PASS XHTML1.0 Frameset parsing Ċ +PASS XHTML1.0 Frameset parsing ċ +PASS XHTML1.0 Frameset parsing ¸ +PASS XHTML1.0 Frameset parsing ¸ +PASS XHTML1.0 Frameset parsing ⦲ +PASS XHTML1.0 Frameset parsing ¢ +PASS XHTML1.0 Frameset parsing · +PASS XHTML1.0 Frameset parsing · +PASS XHTML1.0 Frameset parsing 𝔠 +PASS XHTML1.0 Frameset parsing ℭ +PASS XHTML1.0 Frameset parsing Ч +PASS XHTML1.0 Frameset parsing ч +PASS XHTML1.0 Frameset parsing ✓ +PASS XHTML1.0 Frameset parsing ✓ +PASS XHTML1.0 Frameset parsing Χ +PASS XHTML1.0 Frameset parsing χ +PASS XHTML1.0 Frameset parsing ˆ +PASS XHTML1.0 Frameset parsing ≗ +PASS XHTML1.0 Frameset parsing ↺ +PASS XHTML1.0 Frameset parsing ↻ +PASS XHTML1.0 Frameset parsing ⊛ +PASS XHTML1.0 Frameset parsing ⊚ +PASS XHTML1.0 Frameset parsing ⊝ +PASS XHTML1.0 Frameset parsing ⊙ +PASS XHTML1.0 Frameset parsing ® +PASS XHTML1.0 Frameset parsing Ⓢ +PASS XHTML1.0 Frameset parsing ⊖ +PASS XHTML1.0 Frameset parsing ⊕ +PASS XHTML1.0 Frameset parsing ⊗ +PASS XHTML1.0 Frameset parsing ○ +PASS XHTML1.0 Frameset parsing ⧃ +PASS XHTML1.0 Frameset parsing ≗ +PASS XHTML1.0 Frameset parsing ⨐ +PASS XHTML1.0 Frameset parsing ⫯ +PASS XHTML1.0 Frameset parsing ⧂ +PASS XHTML1.0 Frameset parsing ∲ +PASS XHTML1.0 Frameset parsing ” +PASS XHTML1.0 Frameset parsing ’ +PASS XHTML1.0 Frameset parsing ♣ +PASS XHTML1.0 Frameset parsing ♣ +PASS XHTML1.0 Frameset parsing : +PASS XHTML1.0 Frameset parsing ∷ +PASS XHTML1.0 Frameset parsing ⩴ +PASS XHTML1.0 Frameset parsing ≔ +PASS XHTML1.0 Frameset parsing ≔ +PASS XHTML1.0 Frameset parsing , +PASS XHTML1.0 Frameset parsing @ +PASS XHTML1.0 Frameset parsing ∁ +PASS XHTML1.0 Frameset parsing ∘ +PASS XHTML1.0 Frameset parsing ∁ +PASS XHTML1.0 Frameset parsing ℂ +PASS XHTML1.0 Frameset parsing ≅ +PASS XHTML1.0 Frameset parsing ⩭ +PASS XHTML1.0 Frameset parsing ≡ +PASS XHTML1.0 Frameset parsing ∮ +PASS XHTML1.0 Frameset parsing ∯ +PASS XHTML1.0 Frameset parsing ∮ +PASS XHTML1.0 Frameset parsing 𝕔 +PASS XHTML1.0 Frameset parsing ℂ +PASS XHTML1.0 Frameset parsing ∐ +PASS XHTML1.0 Frameset parsing ∐ +PASS XHTML1.0 Frameset parsing © +PASS XHTML1.0 Frameset parsing © +PASS XHTML1.0 Frameset parsing ℗ +PASS XHTML1.0 Frameset parsing ∳ +PASS XHTML1.0 Frameset parsing ↵ +PASS XHTML1.0 Frameset parsing ✗ +PASS XHTML1.0 Frameset parsing ⨯ +PASS XHTML1.0 Frameset parsing 𝒞 +PASS XHTML1.0 Frameset parsing 𝒸 +PASS XHTML1.0 Frameset parsing ⫏ +PASS XHTML1.0 Frameset parsing ⫑ +PASS XHTML1.0 Frameset parsing ⫐ +PASS XHTML1.0 Frameset parsing ⫒ +PASS XHTML1.0 Frameset parsing ⋯ +PASS XHTML1.0 Frameset parsing ⤸ +PASS XHTML1.0 Frameset parsing ⤵ +PASS XHTML1.0 Frameset parsing ⋞ +PASS XHTML1.0 Frameset parsing ⋟ +PASS XHTML1.0 Frameset parsing ↶ +PASS XHTML1.0 Frameset parsing ⤽ +PASS XHTML1.0 Frameset parsing ⩈ +PASS XHTML1.0 Frameset parsing ⩆ +PASS XHTML1.0 Frameset parsing ≍ +PASS XHTML1.0 Frameset parsing ∪ +PASS XHTML1.0 Frameset parsing ⋓ +PASS XHTML1.0 Frameset parsing ⩊ +PASS XHTML1.0 Frameset parsing ⊍ +PASS XHTML1.0 Frameset parsing ⩅ +PASS XHTML1.0 Frameset parsing ∪︀ +PASS XHTML1.0 Frameset parsing ↷ +PASS XHTML1.0 Frameset parsing ⤼ +PASS XHTML1.0 Frameset parsing ⋞ +PASS XHTML1.0 Frameset parsing ⋟ +PASS XHTML1.0 Frameset parsing ⋎ +PASS XHTML1.0 Frameset parsing ⋏ +PASS XHTML1.0 Frameset parsing ¤ +PASS XHTML1.0 Frameset parsing ↶ +PASS XHTML1.0 Frameset parsing ↷ +PASS XHTML1.0 Frameset parsing ⋎ +PASS XHTML1.0 Frameset parsing ⋏ +PASS XHTML1.0 Frameset parsing ∲ +PASS XHTML1.0 Frameset parsing ∱ +PASS XHTML1.0 Frameset parsing ⌭ +PASS XHTML1.0 Frameset parsing † +PASS XHTML1.0 Frameset parsing ‡ +PASS XHTML1.0 Frameset parsing ℸ +PASS XHTML1.0 Frameset parsing ↓ +PASS XHTML1.0 Frameset parsing ↡ +PASS XHTML1.0 Frameset parsing ⇓ +PASS XHTML1.0 Frameset parsing ‐ +PASS XHTML1.0 Frameset parsing ⫤ +PASS XHTML1.0 Frameset parsing ⊣ +PASS XHTML1.0 Frameset parsing ⤏ +PASS XHTML1.0 Frameset parsing ˝ +PASS XHTML1.0 Frameset parsing Ď +PASS XHTML1.0 Frameset parsing ď +PASS XHTML1.0 Frameset parsing Д +PASS XHTML1.0 Frameset parsing д +PASS XHTML1.0 Frameset parsing ‡ +PASS XHTML1.0 Frameset parsing ⇊ +PASS XHTML1.0 Frameset parsing ⅅ +PASS XHTML1.0 Frameset parsing ⅆ +PASS XHTML1.0 Frameset parsing ⤑ +PASS XHTML1.0 Frameset parsing ⩷ +PASS XHTML1.0 Frameset parsing ° +PASS XHTML1.0 Frameset parsing ∇ +PASS XHTML1.0 Frameset parsing Δ +PASS XHTML1.0 Frameset parsing δ +PASS XHTML1.0 Frameset parsing ⦱ +PASS XHTML1.0 Frameset parsing ⥿ +PASS XHTML1.0 Frameset parsing 𝔇 +PASS XHTML1.0 Frameset parsing 𝔡 +PASS XHTML1.0 Frameset parsing ⥥ +PASS XHTML1.0 Frameset parsing ⇃ +PASS XHTML1.0 Frameset parsing ⇂ +PASS XHTML1.0 Frameset parsing ´ +PASS XHTML1.0 Frameset parsing ˙ +PASS XHTML1.0 Frameset parsing ˝ +PASS XHTML1.0 Frameset parsing ` +PASS XHTML1.0 Frameset parsing ˜ +PASS XHTML1.0 Frameset parsing ⋄ +PASS XHTML1.0 Frameset parsing ⋄ +PASS XHTML1.0 Frameset parsing ⋄ +PASS XHTML1.0 Frameset parsing ♦ +PASS XHTML1.0 Frameset parsing ♦ +PASS XHTML1.0 Frameset parsing ¨ +PASS XHTML1.0 Frameset parsing ⅆ +PASS XHTML1.0 Frameset parsing ϝ +PASS XHTML1.0 Frameset parsing ⋲ +PASS XHTML1.0 Frameset parsing ÷ +PASS XHTML1.0 Frameset parsing ÷ +PASS XHTML1.0 Frameset parsing ⋇ +PASS XHTML1.0 Frameset parsing ⋇ +PASS XHTML1.0 Frameset parsing Ђ +PASS XHTML1.0 Frameset parsing ђ +PASS XHTML1.0 Frameset parsing ⌞ +PASS XHTML1.0 Frameset parsing ⌍ +PASS XHTML1.0 Frameset parsing $ +PASS XHTML1.0 Frameset parsing 𝔻 +PASS XHTML1.0 Frameset parsing 𝕕 +PASS XHTML1.0 Frameset parsing ¨ +PASS XHTML1.0 Frameset parsing ˙ +PASS XHTML1.0 Frameset parsing ⃜ +PASS XHTML1.0 Frameset parsing ≐ +PASS XHTML1.0 Frameset parsing ≑ +PASS XHTML1.0 Frameset parsing ≐ +PASS XHTML1.0 Frameset parsing ∸ +PASS XHTML1.0 Frameset parsing ∔ +PASS XHTML1.0 Frameset parsing ⊡ +PASS XHTML1.0 Frameset parsing ⌆ +PASS XHTML1.0 Frameset parsing ∯ +PASS XHTML1.0 Frameset parsing ¨ +PASS XHTML1.0 Frameset parsing ⇓ +PASS XHTML1.0 Frameset parsing ⇐ +PASS XHTML1.0 Frameset parsing ⇔ +PASS XHTML1.0 Frameset parsing ⫤ +PASS XHTML1.0 Frameset parsing ⟸ +PASS XHTML1.0 Frameset parsing ⟺ +PASS XHTML1.0 Frameset parsing ⟹ +PASS XHTML1.0 Frameset parsing ⇒ +PASS XHTML1.0 Frameset parsing ⊨ +PASS XHTML1.0 Frameset parsing ⇑ +PASS XHTML1.0 Frameset parsing ⇕ +PASS XHTML1.0 Frameset parsing ∥ +PASS XHTML1.0 Frameset parsing ⤓ +PASS XHTML1.0 Frameset parsing ↓ +PASS XHTML1.0 Frameset parsing ↓ +PASS XHTML1.0 Frameset parsing ⇓ +PASS XHTML1.0 Frameset parsing ⇵ +PASS XHTML1.0 Frameset parsing ̑ +PASS XHTML1.0 Frameset parsing ⇊ +PASS XHTML1.0 Frameset parsing ⇃ +PASS XHTML1.0 Frameset parsing ⇂ +PASS XHTML1.0 Frameset parsing ⥐ +PASS XHTML1.0 Frameset parsing ⥞ +PASS XHTML1.0 Frameset parsing ⥖ +PASS XHTML1.0 Frameset parsing ↽ +PASS XHTML1.0 Frameset parsing ⥟ +PASS XHTML1.0 Frameset parsing ⥗ +PASS XHTML1.0 Frameset parsing ⇁ +PASS XHTML1.0 Frameset parsing ↧ +PASS XHTML1.0 Frameset parsing ⊤ +PASS XHTML1.0 Frameset parsing ⤐ +PASS XHTML1.0 Frameset parsing ⌟ +PASS XHTML1.0 Frameset parsing ⌌ +PASS XHTML1.0 Frameset parsing 𝒟 +PASS XHTML1.0 Frameset parsing 𝒹 +PASS XHTML1.0 Frameset parsing Ѕ +PASS XHTML1.0 Frameset parsing ѕ +PASS XHTML1.0 Frameset parsing ⧶ +PASS XHTML1.0 Frameset parsing Đ +PASS XHTML1.0 Frameset parsing đ +PASS XHTML1.0 Frameset parsing ⋱ +PASS XHTML1.0 Frameset parsing ▿ +PASS XHTML1.0 Frameset parsing ▾ +PASS XHTML1.0 Frameset parsing ⇵ +PASS XHTML1.0 Frameset parsing ⥯ +PASS XHTML1.0 Frameset parsing ⦦ +PASS XHTML1.0 Frameset parsing Џ +PASS XHTML1.0 Frameset parsing џ +PASS XHTML1.0 Frameset parsing ⟿ +PASS XHTML1.0 Frameset parsing É +PASS XHTML1.0 Frameset parsing é +PASS XHTML1.0 Frameset parsing ⩮ +PASS XHTML1.0 Frameset parsing Ě +PASS XHTML1.0 Frameset parsing ě +PASS XHTML1.0 Frameset parsing Ê +PASS XHTML1.0 Frameset parsing ê +PASS XHTML1.0 Frameset parsing ≖ +PASS XHTML1.0 Frameset parsing ≕ +PASS XHTML1.0 Frameset parsing Э +PASS XHTML1.0 Frameset parsing э +PASS XHTML1.0 Frameset parsing ⩷ +PASS XHTML1.0 Frameset parsing Ė +PASS XHTML1.0 Frameset parsing ė +PASS XHTML1.0 Frameset parsing ≑ +PASS XHTML1.0 Frameset parsing ⅇ +PASS XHTML1.0 Frameset parsing ≒ +PASS XHTML1.0 Frameset parsing 𝔈 +PASS XHTML1.0 Frameset parsing 𝔢 +PASS XHTML1.0 Frameset parsing ⪚ +PASS XHTML1.0 Frameset parsing È +PASS XHTML1.0 Frameset parsing è +PASS XHTML1.0 Frameset parsing ⪖ +PASS XHTML1.0 Frameset parsing ⪘ +PASS XHTML1.0 Frameset parsing ⪙ +PASS XHTML1.0 Frameset parsing ∈ +PASS XHTML1.0 Frameset parsing ⏧ +PASS XHTML1.0 Frameset parsing ℓ +PASS XHTML1.0 Frameset parsing ⪕ +PASS XHTML1.0 Frameset parsing ⪗ +PASS XHTML1.0 Frameset parsing Ē +PASS XHTML1.0 Frameset parsing ē +PASS XHTML1.0 Frameset parsing ∅ +PASS XHTML1.0 Frameset parsing ∅ +PASS XHTML1.0 Frameset parsing ◻ +PASS XHTML1.0 Frameset parsing ∅ +PASS XHTML1.0 Frameset parsing ▫ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing Ŋ +PASS XHTML1.0 Frameset parsing ŋ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing Ę +PASS XHTML1.0 Frameset parsing ę +PASS XHTML1.0 Frameset parsing 𝔼 +PASS XHTML1.0 Frameset parsing 𝕖 +PASS XHTML1.0 Frameset parsing ⋕ +PASS XHTML1.0 Frameset parsing ⧣ +PASS XHTML1.0 Frameset parsing ⩱ +PASS XHTML1.0 Frameset parsing ε +PASS XHTML1.0 Frameset parsing Ε +PASS XHTML1.0 Frameset parsing ε +PASS XHTML1.0 Frameset parsing ϵ +PASS XHTML1.0 Frameset parsing ≖ +PASS XHTML1.0 Frameset parsing ≕ +PASS XHTML1.0 Frameset parsing ≂ +PASS XHTML1.0 Frameset parsing ⪖ +PASS XHTML1.0 Frameset parsing ⪕ +PASS XHTML1.0 Frameset parsing ⩵ +PASS XHTML1.0 Frameset parsing = +PASS XHTML1.0 Frameset parsing ≂ +PASS XHTML1.0 Frameset parsing ≟ +PASS XHTML1.0 Frameset parsing ⇌ +PASS XHTML1.0 Frameset parsing ≡ +PASS XHTML1.0 Frameset parsing ⩸ +PASS XHTML1.0 Frameset parsing ⧥ +PASS XHTML1.0 Frameset parsing ⥱ +PASS XHTML1.0 Frameset parsing ≓ +PASS XHTML1.0 Frameset parsing ℯ +PASS XHTML1.0 Frameset parsing ℰ +PASS XHTML1.0 Frameset parsing ≐ +PASS XHTML1.0 Frameset parsing ⩳ +PASS XHTML1.0 Frameset parsing ≂ +PASS XHTML1.0 Frameset parsing Η +PASS XHTML1.0 Frameset parsing η +PASS XHTML1.0 Frameset parsing Ð +PASS XHTML1.0 Frameset parsing ð +PASS XHTML1.0 Frameset parsing Ë +PASS XHTML1.0 Frameset parsing ë +PASS XHTML1.0 Frameset parsing € +PASS XHTML1.0 Frameset parsing ! +PASS XHTML1.0 Frameset parsing ∃ +PASS XHTML1.0 Frameset parsing ∃ +PASS XHTML1.0 Frameset parsing ℰ +PASS XHTML1.0 Frameset parsing ⅇ +PASS XHTML1.0 Frameset parsing ⅇ +PASS XHTML1.0 Frameset parsing ≒ +PASS XHTML1.0 Frameset parsing Ф +PASS XHTML1.0 Frameset parsing ф +PASS XHTML1.0 Frameset parsing ♀ +PASS XHTML1.0 Frameset parsing ffi +PASS XHTML1.0 Frameset parsing ff +PASS XHTML1.0 Frameset parsing ffl +PASS XHTML1.0 Frameset parsing 𝔉 +PASS XHTML1.0 Frameset parsing 𝔣 +PASS XHTML1.0 Frameset parsing fi +PASS XHTML1.0 Frameset parsing ◼ +PASS XHTML1.0 Frameset parsing ▪ +PASS XHTML1.0 Frameset parsing fj +PASS XHTML1.0 Frameset parsing ♭ +PASS XHTML1.0 Frameset parsing fl +PASS XHTML1.0 Frameset parsing ▱ +PASS XHTML1.0 Frameset parsing ƒ +PASS XHTML1.0 Frameset parsing 𝔽 +PASS XHTML1.0 Frameset parsing 𝕗 +PASS XHTML1.0 Frameset parsing ∀ +PASS XHTML1.0 Frameset parsing ∀ +PASS XHTML1.0 Frameset parsing ⋔ +PASS XHTML1.0 Frameset parsing ⫙ +PASS XHTML1.0 Frameset parsing ℱ +PASS XHTML1.0 Frameset parsing ⨍ +PASS XHTML1.0 Frameset parsing ½ +PASS XHTML1.0 Frameset parsing ⅓ +PASS XHTML1.0 Frameset parsing ¼ +PASS XHTML1.0 Frameset parsing ⅕ +PASS XHTML1.0 Frameset parsing ⅙ +PASS XHTML1.0 Frameset parsing ⅛ +PASS XHTML1.0 Frameset parsing ⅔ +PASS XHTML1.0 Frameset parsing ⅖ +PASS XHTML1.0 Frameset parsing ¾ +PASS XHTML1.0 Frameset parsing ⅗ +PASS XHTML1.0 Frameset parsing ⅜ +PASS XHTML1.0 Frameset parsing ⅘ +PASS XHTML1.0 Frameset parsing ⅚ +PASS XHTML1.0 Frameset parsing ⅝ +PASS XHTML1.0 Frameset parsing ⅞ +PASS XHTML1.0 Frameset parsing ⁄ +PASS XHTML1.0 Frameset parsing ⌢ +PASS XHTML1.0 Frameset parsing 𝒻 +PASS XHTML1.0 Frameset parsing ℱ +PASS XHTML1.0 Frameset parsing ǵ +PASS XHTML1.0 Frameset parsing Γ +PASS XHTML1.0 Frameset parsing γ +PASS XHTML1.0 Frameset parsing Ϝ +PASS XHTML1.0 Frameset parsing ϝ +PASS XHTML1.0 Frameset parsing ⪆ +PASS XHTML1.0 Frameset parsing Ğ +PASS XHTML1.0 Frameset parsing ğ +PASS XHTML1.0 Frameset parsing Ģ +PASS XHTML1.0 Frameset parsing Ĝ +PASS XHTML1.0 Frameset parsing ĝ +PASS XHTML1.0 Frameset parsing Г +PASS XHTML1.0 Frameset parsing г +PASS XHTML1.0 Frameset parsing Ġ +PASS XHTML1.0 Frameset parsing ġ +PASS XHTML1.0 Frameset parsing ≥ +PASS XHTML1.0 Frameset parsing ≧ +PASS XHTML1.0 Frameset parsing ⪌ +PASS XHTML1.0 Frameset parsing ⋛ +PASS XHTML1.0 Frameset parsing ≥ +PASS XHTML1.0 Frameset parsing ≧ +PASS XHTML1.0 Frameset parsing ⩾ +PASS XHTML1.0 Frameset parsing ⪩ +PASS XHTML1.0 Frameset parsing ⩾ +PASS XHTML1.0 Frameset parsing ⪀ +PASS XHTML1.0 Frameset parsing ⪂ +PASS XHTML1.0 Frameset parsing ⪄ +PASS XHTML1.0 Frameset parsing ⋛︀ +PASS XHTML1.0 Frameset parsing ⪔ +PASS XHTML1.0 Frameset parsing 𝔊 +PASS XHTML1.0 Frameset parsing 𝔤 +PASS XHTML1.0 Frameset parsing ≫ +PASS XHTML1.0 Frameset parsing ⋙ +PASS XHTML1.0 Frameset parsing ⋙ +PASS XHTML1.0 Frameset parsing ℷ +PASS XHTML1.0 Frameset parsing Ѓ +PASS XHTML1.0 Frameset parsing ѓ +PASS XHTML1.0 Frameset parsing ⪥ +PASS XHTML1.0 Frameset parsing ≷ +PASS XHTML1.0 Frameset parsing ⪒ +PASS XHTML1.0 Frameset parsing ⪤ +PASS XHTML1.0 Frameset parsing ⪊ +PASS XHTML1.0 Frameset parsing ⪊ +PASS XHTML1.0 Frameset parsing ⪈ +PASS XHTML1.0 Frameset parsing ≩ +PASS XHTML1.0 Frameset parsing ⪈ +PASS XHTML1.0 Frameset parsing ≩ +PASS XHTML1.0 Frameset parsing ⋧ +PASS XHTML1.0 Frameset parsing 𝔾 +PASS XHTML1.0 Frameset parsing 𝕘 +PASS XHTML1.0 Frameset parsing ` +PASS XHTML1.0 Frameset parsing ≥ +PASS XHTML1.0 Frameset parsing ⋛ +PASS XHTML1.0 Frameset parsing ≧ +PASS XHTML1.0 Frameset parsing ⪢ +PASS XHTML1.0 Frameset parsing ≷ +PASS XHTML1.0 Frameset parsing ⩾ +PASS XHTML1.0 Frameset parsing ≳ +PASS XHTML1.0 Frameset parsing 𝒢 +PASS XHTML1.0 Frameset parsing ℊ +PASS XHTML1.0 Frameset parsing ≳ +PASS XHTML1.0 Frameset parsing ⪎ +PASS XHTML1.0 Frameset parsing ⪐ +PASS XHTML1.0 Frameset parsing ⪧ +PASS XHTML1.0 Frameset parsing ⩺ +PASS XHTML1.0 Frameset parsing > +PASS XHTML1.0 Frameset parsing > +PASS XHTML1.0 Frameset parsing ≫ +PASS XHTML1.0 Frameset parsing ⋗ +PASS XHTML1.0 Frameset parsing ⦕ +PASS XHTML1.0 Frameset parsing ⩼ +PASS XHTML1.0 Frameset parsing ⪆ +PASS XHTML1.0 Frameset parsing ⥸ +PASS XHTML1.0 Frameset parsing ⋗ +PASS XHTML1.0 Frameset parsing ⋛ +PASS XHTML1.0 Frameset parsing ⪌ +PASS XHTML1.0 Frameset parsing ≷ +PASS XHTML1.0 Frameset parsing ≳ +PASS XHTML1.0 Frameset parsing ≩︀ +PASS XHTML1.0 Frameset parsing ≩︀ +PASS XHTML1.0 Frameset parsing ˇ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing ½ +PASS XHTML1.0 Frameset parsing ℋ +PASS XHTML1.0 Frameset parsing Ъ +PASS XHTML1.0 Frameset parsing ъ +PASS XHTML1.0 Frameset parsing ⥈ +PASS XHTML1.0 Frameset parsing ↔ +PASS XHTML1.0 Frameset parsing ⇔ +PASS XHTML1.0 Frameset parsing ↭ +PASS XHTML1.0 Frameset parsing ^ +PASS XHTML1.0 Frameset parsing ℏ +PASS XHTML1.0 Frameset parsing Ĥ +PASS XHTML1.0 Frameset parsing ĥ +PASS XHTML1.0 Frameset parsing ♥ +PASS XHTML1.0 Frameset parsing ♥ +PASS XHTML1.0 Frameset parsing … +PASS XHTML1.0 Frameset parsing ⊹ +PASS XHTML1.0 Frameset parsing 𝔥 +PASS XHTML1.0 Frameset parsing ℌ +PASS XHTML1.0 Frameset parsing ℋ +PASS XHTML1.0 Frameset parsing ⤥ +PASS XHTML1.0 Frameset parsing ⤦ +PASS XHTML1.0 Frameset parsing ⇿ +PASS XHTML1.0 Frameset parsing ∻ +PASS XHTML1.0 Frameset parsing ↩ +PASS XHTML1.0 Frameset parsing ↪ +PASS XHTML1.0 Frameset parsing 𝕙 +PASS XHTML1.0 Frameset parsing ℍ +PASS XHTML1.0 Frameset parsing ― +PASS XHTML1.0 Frameset parsing ─ +PASS XHTML1.0 Frameset parsing 𝒽 +PASS XHTML1.0 Frameset parsing ℋ +PASS XHTML1.0 Frameset parsing ℏ +PASS XHTML1.0 Frameset parsing Ħ +PASS XHTML1.0 Frameset parsing ħ +PASS XHTML1.0 Frameset parsing ≎ +PASS XHTML1.0 Frameset parsing ≏ +PASS XHTML1.0 Frameset parsing ⁃ +PASS XHTML1.0 Frameset parsing ‐ +PASS XHTML1.0 Frameset parsing Í +PASS XHTML1.0 Frameset parsing í +PASS XHTML1.0 Frameset parsing ⁣ +PASS XHTML1.0 Frameset parsing Î +PASS XHTML1.0 Frameset parsing î +PASS XHTML1.0 Frameset parsing И +PASS XHTML1.0 Frameset parsing и +PASS XHTML1.0 Frameset parsing İ +PASS XHTML1.0 Frameset parsing Е +PASS XHTML1.0 Frameset parsing е +PASS XHTML1.0 Frameset parsing ¡ +PASS XHTML1.0 Frameset parsing ⇔ +PASS XHTML1.0 Frameset parsing 𝔦 +PASS XHTML1.0 Frameset parsing ℑ +PASS XHTML1.0 Frameset parsing Ì +PASS XHTML1.0 Frameset parsing ì +PASS XHTML1.0 Frameset parsing ⅈ +PASS XHTML1.0 Frameset parsing ⨌ +PASS XHTML1.0 Frameset parsing ∭ +PASS XHTML1.0 Frameset parsing ⧜ +PASS XHTML1.0 Frameset parsing ℩ +PASS XHTML1.0 Frameset parsing IJ +PASS XHTML1.0 Frameset parsing ij +PASS XHTML1.0 Frameset parsing Ī +PASS XHTML1.0 Frameset parsing ī +PASS XHTML1.0 Frameset parsing ℑ +PASS XHTML1.0 Frameset parsing ⅈ +PASS XHTML1.0 Frameset parsing ℐ +PASS XHTML1.0 Frameset parsing ℑ +PASS XHTML1.0 Frameset parsing ı +PASS XHTML1.0 Frameset parsing ℑ +PASS XHTML1.0 Frameset parsing ⊷ +PASS XHTML1.0 Frameset parsing Ƶ +PASS XHTML1.0 Frameset parsing ⇒ +PASS XHTML1.0 Frameset parsing ℅ +PASS XHTML1.0 Frameset parsing ∈ +PASS XHTML1.0 Frameset parsing ∞ +PASS XHTML1.0 Frameset parsing ⧝ +PASS XHTML1.0 Frameset parsing ı +PASS XHTML1.0 Frameset parsing ⊺ +PASS XHTML1.0 Frameset parsing ∫ +PASS XHTML1.0 Frameset parsing ∬ +PASS XHTML1.0 Frameset parsing ℤ +PASS XHTML1.0 Frameset parsing ∫ +PASS XHTML1.0 Frameset parsing ⊺ +PASS XHTML1.0 Frameset parsing ⋂ +PASS XHTML1.0 Frameset parsing ⨗ +PASS XHTML1.0 Frameset parsing ⨼ +PASS XHTML1.0 Frameset parsing ⁣ +PASS XHTML1.0 Frameset parsing ⁢ +PASS XHTML1.0 Frameset parsing Ё +PASS XHTML1.0 Frameset parsing ё +PASS XHTML1.0 Frameset parsing Į +PASS XHTML1.0 Frameset parsing į +PASS XHTML1.0 Frameset parsing 𝕀 +PASS XHTML1.0 Frameset parsing 𝕚 +PASS XHTML1.0 Frameset parsing Ι +PASS XHTML1.0 Frameset parsing ι +PASS XHTML1.0 Frameset parsing ⨼ +PASS XHTML1.0 Frameset parsing ¿ +PASS XHTML1.0 Frameset parsing 𝒾 +PASS XHTML1.0 Frameset parsing ℐ +PASS XHTML1.0 Frameset parsing ∈ +PASS XHTML1.0 Frameset parsing ⋵ +PASS XHTML1.0 Frameset parsing ⋹ +PASS XHTML1.0 Frameset parsing ⋴ +PASS XHTML1.0 Frameset parsing ⋳ +PASS XHTML1.0 Frameset parsing ∈ +PASS XHTML1.0 Frameset parsing ⁢ +PASS XHTML1.0 Frameset parsing Ĩ +PASS XHTML1.0 Frameset parsing ĩ +PASS XHTML1.0 Frameset parsing І +PASS XHTML1.0 Frameset parsing і +PASS XHTML1.0 Frameset parsing Ï +PASS XHTML1.0 Frameset parsing ï +PASS XHTML1.0 Frameset parsing Ĵ +PASS XHTML1.0 Frameset parsing ĵ +PASS XHTML1.0 Frameset parsing Й +PASS XHTML1.0 Frameset parsing й +PASS XHTML1.0 Frameset parsing 𝔍 +PASS XHTML1.0 Frameset parsing 𝔧 +PASS XHTML1.0 Frameset parsing ȷ +PASS XHTML1.0 Frameset parsing 𝕁 +PASS XHTML1.0 Frameset parsing 𝕛 +PASS XHTML1.0 Frameset parsing 𝒥 +PASS XHTML1.0 Frameset parsing 𝒿 +PASS XHTML1.0 Frameset parsing Ј +PASS XHTML1.0 Frameset parsing ј +PASS XHTML1.0 Frameset parsing Є +PASS XHTML1.0 Frameset parsing є +PASS XHTML1.0 Frameset parsing Κ +PASS XHTML1.0 Frameset parsing κ +PASS XHTML1.0 Frameset parsing ϰ +PASS XHTML1.0 Frameset parsing Ķ +PASS XHTML1.0 Frameset parsing ķ +PASS XHTML1.0 Frameset parsing К +PASS XHTML1.0 Frameset parsing к +PASS XHTML1.0 Frameset parsing 𝔎 +PASS XHTML1.0 Frameset parsing 𝔨 +PASS XHTML1.0 Frameset parsing ĸ +PASS XHTML1.0 Frameset parsing Х +PASS XHTML1.0 Frameset parsing х +PASS XHTML1.0 Frameset parsing Ќ +PASS XHTML1.0 Frameset parsing ќ +PASS XHTML1.0 Frameset parsing 𝕂 +PASS XHTML1.0 Frameset parsing 𝕜 +PASS XHTML1.0 Frameset parsing 𝒦 +PASS XHTML1.0 Frameset parsing 𝓀 +PASS XHTML1.0 Frameset parsing ⇚ +PASS XHTML1.0 Frameset parsing Ĺ +PASS XHTML1.0 Frameset parsing ĺ +PASS XHTML1.0 Frameset parsing ⦴ +PASS XHTML1.0 Frameset parsing ℒ +PASS XHTML1.0 Frameset parsing Λ +PASS XHTML1.0 Frameset parsing λ +PASS XHTML1.0 Frameset parsing ⟨ +PASS XHTML1.0 Frameset parsing ⟪ +PASS XHTML1.0 Frameset parsing ⦑ +PASS XHTML1.0 Frameset parsing ⟨ +PASS XHTML1.0 Frameset parsing ⪅ +PASS XHTML1.0 Frameset parsing ℒ +PASS XHTML1.0 Frameset parsing « +PASS XHTML1.0 Frameset parsing ⇤ +PASS XHTML1.0 Frameset parsing ⤟ +PASS XHTML1.0 Frameset parsing ← +PASS XHTML1.0 Frameset parsing ↞ +PASS XHTML1.0 Frameset parsing ⇐ +PASS XHTML1.0 Frameset parsing ⤝ +PASS XHTML1.0 Frameset parsing ↩ +PASS XHTML1.0 Frameset parsing ↫ +PASS XHTML1.0 Frameset parsing ⤹ +PASS XHTML1.0 Frameset parsing ⥳ +PASS XHTML1.0 Frameset parsing ↢ +PASS XHTML1.0 Frameset parsing ⤙ +PASS XHTML1.0 Frameset parsing ⤛ +PASS XHTML1.0 Frameset parsing ⪫ +PASS XHTML1.0 Frameset parsing ⪭ +PASS XHTML1.0 Frameset parsing ⪭︀ +PASS XHTML1.0 Frameset parsing ⤌ +PASS XHTML1.0 Frameset parsing ⤎ +PASS XHTML1.0 Frameset parsing ❲ +PASS XHTML1.0 Frameset parsing { +PASS XHTML1.0 Frameset parsing [ +PASS XHTML1.0 Frameset parsing ⦋ +PASS XHTML1.0 Frameset parsing ⦏ +PASS XHTML1.0 Frameset parsing ⦍ +PASS XHTML1.0 Frameset parsing Ľ +PASS XHTML1.0 Frameset parsing ľ +PASS XHTML1.0 Frameset parsing Ļ +PASS XHTML1.0 Frameset parsing ļ +PASS XHTML1.0 Frameset parsing ⌈ +PASS XHTML1.0 Frameset parsing { +PASS XHTML1.0 Frameset parsing Л +PASS XHTML1.0 Frameset parsing л +PASS XHTML1.0 Frameset parsing ⤶ +PASS XHTML1.0 Frameset parsing “ +PASS XHTML1.0 Frameset parsing „ +PASS XHTML1.0 Frameset parsing ⥧ +PASS XHTML1.0 Frameset parsing ⥋ +PASS XHTML1.0 Frameset parsing ↲ +PASS XHTML1.0 Frameset parsing ≤ +PASS XHTML1.0 Frameset parsing ≦ +PASS XHTML1.0 Frameset parsing ⟨ +PASS XHTML1.0 Frameset parsing ⇤ +PASS XHTML1.0 Frameset parsing ← +PASS XHTML1.0 Frameset parsing ← +PASS XHTML1.0 Frameset parsing ⇐ +PASS XHTML1.0 Frameset parsing ⇆ +PASS XHTML1.0 Frameset parsing ↢ +PASS XHTML1.0 Frameset parsing ⌈ +PASS XHTML1.0 Frameset parsing ⟦ +PASS XHTML1.0 Frameset parsing ⥡ +PASS XHTML1.0 Frameset parsing ⥙ +PASS XHTML1.0 Frameset parsing ⇃ +PASS XHTML1.0 Frameset parsing ⌊ +PASS XHTML1.0 Frameset parsing ↽ +PASS XHTML1.0 Frameset parsing ↼ +PASS XHTML1.0 Frameset parsing ⇇ +PASS XHTML1.0 Frameset parsing ↔ +PASS XHTML1.0 Frameset parsing ↔ +PASS XHTML1.0 Frameset parsing ⇔ +PASS XHTML1.0 Frameset parsing ⇆ +PASS XHTML1.0 Frameset parsing ⇋ +PASS XHTML1.0 Frameset parsing ↭ +PASS XHTML1.0 Frameset parsing ⥎ +PASS XHTML1.0 Frameset parsing ↤ +PASS XHTML1.0 Frameset parsing ⊣ +PASS XHTML1.0 Frameset parsing ⥚ +PASS XHTML1.0 Frameset parsing ⋋ +PASS XHTML1.0 Frameset parsing ⧏ +PASS XHTML1.0 Frameset parsing ⊲ +PASS XHTML1.0 Frameset parsing ⊴ +PASS XHTML1.0 Frameset parsing ⥑ +PASS XHTML1.0 Frameset parsing ⥠ +PASS XHTML1.0 Frameset parsing ⥘ +PASS XHTML1.0 Frameset parsing ↿ +PASS XHTML1.0 Frameset parsing ⥒ +PASS XHTML1.0 Frameset parsing ↼ +PASS XHTML1.0 Frameset parsing ⪋ +PASS XHTML1.0 Frameset parsing ⋚ +PASS XHTML1.0 Frameset parsing ≤ +PASS XHTML1.0 Frameset parsing ≦ +PASS XHTML1.0 Frameset parsing ⩽ +PASS XHTML1.0 Frameset parsing ⪨ +PASS XHTML1.0 Frameset parsing ⩽ +PASS XHTML1.0 Frameset parsing ⩿ +PASS XHTML1.0 Frameset parsing ⪁ +PASS XHTML1.0 Frameset parsing ⪃ +PASS XHTML1.0 Frameset parsing ⋚︀ +PASS XHTML1.0 Frameset parsing ⪓ +PASS XHTML1.0 Frameset parsing ⪅ +PASS XHTML1.0 Frameset parsing ⋖ +PASS XHTML1.0 Frameset parsing ⋚ +PASS XHTML1.0 Frameset parsing ⪋ +PASS XHTML1.0 Frameset parsing ⋚ +PASS XHTML1.0 Frameset parsing ≦ +PASS XHTML1.0 Frameset parsing ≶ +PASS XHTML1.0 Frameset parsing ≶ +PASS XHTML1.0 Frameset parsing ⪡ +PASS XHTML1.0 Frameset parsing ≲ +PASS XHTML1.0 Frameset parsing ⩽ +PASS XHTML1.0 Frameset parsing ≲ +PASS XHTML1.0 Frameset parsing ⥼ +PASS XHTML1.0 Frameset parsing ⌊ +PASS XHTML1.0 Frameset parsing 𝔏 +PASS XHTML1.0 Frameset parsing 𝔩 +PASS XHTML1.0 Frameset parsing ≶ +PASS XHTML1.0 Frameset parsing ⪑ +PASS XHTML1.0 Frameset parsing ⥢ +PASS XHTML1.0 Frameset parsing ↽ +PASS XHTML1.0 Frameset parsing ↼ +PASS XHTML1.0 Frameset parsing ⥪ +PASS XHTML1.0 Frameset parsing ▄ +PASS XHTML1.0 Frameset parsing Љ +PASS XHTML1.0 Frameset parsing љ +PASS XHTML1.0 Frameset parsing ⇇ +PASS XHTML1.0 Frameset parsing ≪ +PASS XHTML1.0 Frameset parsing ⋘ +PASS XHTML1.0 Frameset parsing ⌞ +PASS XHTML1.0 Frameset parsing ⇚ +PASS XHTML1.0 Frameset parsing ⥫ +PASS XHTML1.0 Frameset parsing ◺ +PASS XHTML1.0 Frameset parsing Ŀ +PASS XHTML1.0 Frameset parsing ŀ +PASS XHTML1.0 Frameset parsing ⎰ +PASS XHTML1.0 Frameset parsing ⎰ +PASS XHTML1.0 Frameset parsing ⪉ +PASS XHTML1.0 Frameset parsing ⪉ +PASS XHTML1.0 Frameset parsing ⪇ +PASS XHTML1.0 Frameset parsing ≨ +PASS XHTML1.0 Frameset parsing ⪇ +PASS XHTML1.0 Frameset parsing ≨ +PASS XHTML1.0 Frameset parsing ⋦ +PASS XHTML1.0 Frameset parsing ⟬ +PASS XHTML1.0 Frameset parsing ⇽ +PASS XHTML1.0 Frameset parsing ⟦ +PASS XHTML1.0 Frameset parsing ⟵ +PASS XHTML1.0 Frameset parsing ⟵ +PASS XHTML1.0 Frameset parsing ⟸ +PASS XHTML1.0 Frameset parsing ⟷ +PASS XHTML1.0 Frameset parsing ⟷ +PASS XHTML1.0 Frameset parsing ⟺ +PASS XHTML1.0 Frameset parsing ⟼ +PASS XHTML1.0 Frameset parsing ⟶ +PASS XHTML1.0 Frameset parsing ⟶ +PASS XHTML1.0 Frameset parsing ⟹ +PASS XHTML1.0 Frameset parsing ↫ +PASS XHTML1.0 Frameset parsing ↬ +PASS XHTML1.0 Frameset parsing ⦅ +PASS XHTML1.0 Frameset parsing 𝕃 +PASS XHTML1.0 Frameset parsing 𝕝 +PASS XHTML1.0 Frameset parsing ⨭ +PASS XHTML1.0 Frameset parsing ⨴ +PASS XHTML1.0 Frameset parsing ∗ +PASS XHTML1.0 Frameset parsing _ +PASS XHTML1.0 Frameset parsing ↙ +PASS XHTML1.0 Frameset parsing ↘ +PASS XHTML1.0 Frameset parsing ◊ +PASS XHTML1.0 Frameset parsing ◊ +PASS XHTML1.0 Frameset parsing ⧫ +PASS XHTML1.0 Frameset parsing ( +PASS XHTML1.0 Frameset parsing ⦓ +PASS XHTML1.0 Frameset parsing ⇆ +PASS XHTML1.0 Frameset parsing ⌟ +PASS XHTML1.0 Frameset parsing ⇋ +PASS XHTML1.0 Frameset parsing ⥭ +PASS XHTML1.0 Frameset parsing ‎ +PASS XHTML1.0 Frameset parsing ⊿ +PASS XHTML1.0 Frameset parsing ‹ +PASS XHTML1.0 Frameset parsing 𝓁 +PASS XHTML1.0 Frameset parsing ℒ +PASS XHTML1.0 Frameset parsing ↰ +PASS XHTML1.0 Frameset parsing ↰ +PASS XHTML1.0 Frameset parsing ≲ +PASS XHTML1.0 Frameset parsing ⪍ +PASS XHTML1.0 Frameset parsing ⪏ +PASS XHTML1.0 Frameset parsing [ +PASS XHTML1.0 Frameset parsing ‘ +PASS XHTML1.0 Frameset parsing ‚ +PASS XHTML1.0 Frameset parsing Ł +PASS XHTML1.0 Frameset parsing ł +PASS XHTML1.0 Frameset parsing ⪦ +PASS XHTML1.0 Frameset parsing ⩹ +PASS XHTML1.0 Frameset parsing < +FAIL XHTML1.0 Frameset parsing < assert_true: expected true got false +PASS XHTML1.0 Frameset parsing ≪ +PASS XHTML1.0 Frameset parsing ⋖ +PASS XHTML1.0 Frameset parsing ⋋ +PASS XHTML1.0 Frameset parsing ⋉ +PASS XHTML1.0 Frameset parsing ⥶ +PASS XHTML1.0 Frameset parsing ⩻ +PASS XHTML1.0 Frameset parsing ◃ +PASS XHTML1.0 Frameset parsing ⊴ +PASS XHTML1.0 Frameset parsing ◂ +PASS XHTML1.0 Frameset parsing ⦖ +PASS XHTML1.0 Frameset parsing ⥊ +PASS XHTML1.0 Frameset parsing ⥦ +PASS XHTML1.0 Frameset parsing ≨︀ +PASS XHTML1.0 Frameset parsing ≨︀ +PASS XHTML1.0 Frameset parsing ¯ +PASS XHTML1.0 Frameset parsing ♂ +PASS XHTML1.0 Frameset parsing ✠ +PASS XHTML1.0 Frameset parsing ✠ +PASS XHTML1.0 Frameset parsing ⤅ +PASS XHTML1.0 Frameset parsing ↦ +PASS XHTML1.0 Frameset parsing ↦ +PASS XHTML1.0 Frameset parsing ↧ +PASS XHTML1.0 Frameset parsing ↤ +PASS XHTML1.0 Frameset parsing ↥ +PASS XHTML1.0 Frameset parsing ▮ +PASS XHTML1.0 Frameset parsing ⨩ +PASS XHTML1.0 Frameset parsing М +PASS XHTML1.0 Frameset parsing м +PASS XHTML1.0 Frameset parsing — +PASS XHTML1.0 Frameset parsing ∺ +PASS XHTML1.0 Frameset parsing ∡ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing ℳ +PASS XHTML1.0 Frameset parsing 𝔐 +PASS XHTML1.0 Frameset parsing 𝔪 +PASS XHTML1.0 Frameset parsing ℧ +PASS XHTML1.0 Frameset parsing µ +PASS XHTML1.0 Frameset parsing * +PASS XHTML1.0 Frameset parsing ⫰ +PASS XHTML1.0 Frameset parsing ∣ +PASS XHTML1.0 Frameset parsing · +PASS XHTML1.0 Frameset parsing ⊟ +PASS XHTML1.0 Frameset parsing − +PASS XHTML1.0 Frameset parsing ∸ +PASS XHTML1.0 Frameset parsing ⨪ +PASS XHTML1.0 Frameset parsing ∓ +PASS XHTML1.0 Frameset parsing ⫛ +PASS XHTML1.0 Frameset parsing … +PASS XHTML1.0 Frameset parsing ∓ +PASS XHTML1.0 Frameset parsing ⊧ +PASS XHTML1.0 Frameset parsing 𝕄 +PASS XHTML1.0 Frameset parsing 𝕞 +PASS XHTML1.0 Frameset parsing ∓ +PASS XHTML1.0 Frameset parsing 𝓂 +PASS XHTML1.0 Frameset parsing ℳ +PASS XHTML1.0 Frameset parsing ∾ +PASS XHTML1.0 Frameset parsing Μ +PASS XHTML1.0 Frameset parsing μ +PASS XHTML1.0 Frameset parsing ⊸ +PASS XHTML1.0 Frameset parsing ⊸ +PASS XHTML1.0 Frameset parsing ∇ +PASS XHTML1.0 Frameset parsing Ń +PASS XHTML1.0 Frameset parsing ń +PASS XHTML1.0 Frameset parsing ∠⃒ +PASS XHTML1.0 Frameset parsing ≉ +PASS XHTML1.0 Frameset parsing ⩰̸ +PASS XHTML1.0 Frameset parsing ≋̸ +PASS XHTML1.0 Frameset parsing ʼn +PASS XHTML1.0 Frameset parsing ≉ +PASS XHTML1.0 Frameset parsing ♮ +PASS XHTML1.0 Frameset parsing ℕ +PASS XHTML1.0 Frameset parsing ♮ +PASS XHTML1.0 Frameset parsing +PASS XHTML1.0 Frameset parsing ≎̸ +PASS XHTML1.0 Frameset parsing ≏̸ +PASS XHTML1.0 Frameset parsing ⩃ +PASS XHTML1.0 Frameset parsing Ň +PASS XHTML1.0 Frameset parsing ň +PASS XHTML1.0 Frameset parsing Ņ +PASS XHTML1.0 Frameset parsing ņ +PASS XHTML1.0 Frameset parsing ≇ +PASS XHTML1.0 Frameset parsing ⩭̸ +PASS XHTML1.0 Frameset parsing ⩂ +PASS XHTML1.0 Frameset parsing Н +PASS XHTML1.0 Frameset parsing н +PASS XHTML1.0 Frameset parsing – +PASS XHTML1.0 Frameset parsing ⤤ +PASS XHTML1.0 Frameset parsing ↗ +PASS XHTML1.0 Frameset parsing ⇗ +PASS XHTML1.0 Frameset parsing ↗ +PASS XHTML1.0 Frameset parsing ≠ +PASS XHTML1.0 Frameset parsing ≐̸ +PASS XHTML1.0 Frameset parsing ​ +PASS XHTML1.0 Frameset parsing ​ +PASS XHTML1.0 Frameset parsing ​ +PASS XHTML1.0 Frameset parsing ​ +PASS XHTML1.0 Frameset parsing ≢ +PASS XHTML1.0 Frameset parsing ⤨ +PASS XHTML1.0 Frameset parsing ≂̸ +PASS XHTML1.0 Frameset parsing ≫ +PASS XHTML1.0 Frameset parsing ≪ +PASS XHTML1.0 Frameset parsing 
 +PASS XHTML1.0 Frameset parsing ∄ +PASS XHTML1.0 Frameset parsing ∄ +PASS XHTML1.0 Frameset parsing 𝔑 +PASS XHTML1.0 Frameset parsing 𝔫 +PASS XHTML1.0 Frameset parsing ≧̸ +PASS XHTML1.0 Frameset parsing ≱ +PASS XHTML1.0 Frameset parsing ≱ +PASS XHTML1.0 Frameset parsing ≧̸ +PASS XHTML1.0 Frameset parsing ⩾̸ +PASS XHTML1.0 Frameset parsing ⩾̸ +PASS XHTML1.0 Frameset parsing ⋙̸ +PASS XHTML1.0 Frameset parsing ≵ +PASS XHTML1.0 Frameset parsing ≫⃒ +PASS XHTML1.0 Frameset parsing ≯ +PASS XHTML1.0 Frameset parsing ≯ +PASS XHTML1.0 Frameset parsing ≫̸ +PASS XHTML1.0 Frameset parsing ↮ +PASS XHTML1.0 Frameset parsing ⇎ +PASS XHTML1.0 Frameset parsing ⫲ +PASS XHTML1.0 Frameset parsing ∋ +PASS XHTML1.0 Frameset parsing ⋼ +PASS XHTML1.0 Frameset parsing ⋺ +PASS XHTML1.0 Frameset parsing ∋ +PASS XHTML1.0 Frameset parsing Њ +PASS XHTML1.0 Frameset parsing њ +PASS XHTML1.0 Frameset parsing ↚ +PASS XHTML1.0 Frameset parsing ⇍ +PASS XHTML1.0 Frameset parsing ‥ +PASS XHTML1.0 Frameset parsing ≦̸ +PASS XHTML1.0 Frameset parsing ≰ +PASS XHTML1.0 Frameset parsing ↚ +PASS XHTML1.0 Frameset parsing ⇍ +PASS XHTML1.0 Frameset parsing ↮ +PASS XHTML1.0 Frameset parsing ⇎ +PASS XHTML1.0 Frameset parsing ≰ +PASS XHTML1.0 Frameset parsing ≦̸ +PASS XHTML1.0 Frameset parsing ⩽̸ +PASS XHTML1.0 Frameset parsing ⩽̸ +PASS XHTML1.0 Frameset parsing ≮ +PASS XHTML1.0 Frameset parsing ⋘̸ +PASS XHTML1.0 Frameset parsing ≴ +PASS XHTML1.0 Frameset parsing ≪⃒ +PASS XHTML1.0 Frameset parsing ≮ +PASS XHTML1.0 Frameset parsing ⋪ +PASS XHTML1.0 Frameset parsing ⋬ +PASS XHTML1.0 Frameset parsing ≪̸ +PASS XHTML1.0 Frameset parsing ∤ +PASS XHTML1.0 Frameset parsing ⁠ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing 𝕟 +PASS XHTML1.0 Frameset parsing ℕ +PASS XHTML1.0 Frameset parsing ⫬ +PASS XHTML1.0 Frameset parsing ¬ +PASS XHTML1.0 Frameset parsing ≢ +PASS XHTML1.0 Frameset parsing ≭ +PASS XHTML1.0 Frameset parsing ∦ +PASS XHTML1.0 Frameset parsing ∉ +PASS XHTML1.0 Frameset parsing ≠ +PASS XHTML1.0 Frameset parsing ≂̸ +PASS XHTML1.0 Frameset parsing ∄ +PASS XHTML1.0 Frameset parsing ≯ +PASS XHTML1.0 Frameset parsing ≱ +PASS XHTML1.0 Frameset parsing ≧̸ +PASS XHTML1.0 Frameset parsing ≫̸ +PASS XHTML1.0 Frameset parsing ≹ +PASS XHTML1.0 Frameset parsing ⩾̸ +PASS XHTML1.0 Frameset parsing ≵ +PASS XHTML1.0 Frameset parsing ≎̸ +PASS XHTML1.0 Frameset parsing ≏̸ +PASS XHTML1.0 Frameset parsing ∉ +PASS XHTML1.0 Frameset parsing ⋵̸ +PASS XHTML1.0 Frameset parsing ⋹̸ +PASS XHTML1.0 Frameset parsing ∉ +PASS XHTML1.0 Frameset parsing ⋷ +PASS XHTML1.0 Frameset parsing ⋶ +PASS XHTML1.0 Frameset parsing ⧏̸ +PASS XHTML1.0 Frameset parsing ⋪ +PASS XHTML1.0 Frameset parsing ⋬ +PASS XHTML1.0 Frameset parsing ≮ +PASS XHTML1.0 Frameset parsing ≰ +PASS XHTML1.0 Frameset parsing ≸ +PASS XHTML1.0 Frameset parsing ≪̸ +PASS XHTML1.0 Frameset parsing ⩽̸ +PASS XHTML1.0 Frameset parsing ≴ +PASS XHTML1.0 Frameset parsing ⪢̸ +PASS XHTML1.0 Frameset parsing ⪡̸ +PASS XHTML1.0 Frameset parsing ∌ +PASS XHTML1.0 Frameset parsing ∌ +PASS XHTML1.0 Frameset parsing ⋾ +PASS XHTML1.0 Frameset parsing ⋽ +PASS XHTML1.0 Frameset parsing ⊀ +PASS XHTML1.0 Frameset parsing ⪯̸ +PASS XHTML1.0 Frameset parsing ⋠ +PASS XHTML1.0 Frameset parsing ∌ +PASS XHTML1.0 Frameset parsing ⧐̸ +PASS XHTML1.0 Frameset parsing ⋫ +PASS XHTML1.0 Frameset parsing ⋭ +PASS XHTML1.0 Frameset parsing ⊏̸ +PASS XHTML1.0 Frameset parsing ⋢ +PASS XHTML1.0 Frameset parsing ⊐̸ +PASS XHTML1.0 Frameset parsing ⋣ +PASS XHTML1.0 Frameset parsing ⊂⃒ +PASS XHTML1.0 Frameset parsing ⊈ +PASS XHTML1.0 Frameset parsing ⊁ +PASS XHTML1.0 Frameset parsing ⪰̸ +PASS XHTML1.0 Frameset parsing ⋡ +PASS XHTML1.0 Frameset parsing ≿̸ +PASS XHTML1.0 Frameset parsing ⊃⃒ +PASS XHTML1.0 Frameset parsing ⊉ +PASS XHTML1.0 Frameset parsing ≁ +PASS XHTML1.0 Frameset parsing ≄ +PASS XHTML1.0 Frameset parsing ≇ +PASS XHTML1.0 Frameset parsing ≉ +PASS XHTML1.0 Frameset parsing ∤ +PASS XHTML1.0 Frameset parsing ∦ +PASS XHTML1.0 Frameset parsing ∦ +PASS XHTML1.0 Frameset parsing ⫽⃥ +PASS XHTML1.0 Frameset parsing ∂̸ +PASS XHTML1.0 Frameset parsing ⨔ +PASS XHTML1.0 Frameset parsing ⊀ +PASS XHTML1.0 Frameset parsing ⋠ +PASS XHTML1.0 Frameset parsing ⊀ +PASS XHTML1.0 Frameset parsing ⪯̸ +PASS XHTML1.0 Frameset parsing ⪯̸ +PASS XHTML1.0 Frameset parsing ⤳̸ +PASS XHTML1.0 Frameset parsing ↛ +PASS XHTML1.0 Frameset parsing ⇏ +PASS XHTML1.0 Frameset parsing ↝̸ +PASS XHTML1.0 Frameset parsing ↛ +PASS XHTML1.0 Frameset parsing ⇏ +PASS XHTML1.0 Frameset parsing ⋫ +PASS XHTML1.0 Frameset parsing ⋭ +PASS XHTML1.0 Frameset parsing ⊁ +PASS XHTML1.0 Frameset parsing ⋡ +PASS XHTML1.0 Frameset parsing ⪰̸ +PASS XHTML1.0 Frameset parsing 𝒩 +PASS XHTML1.0 Frameset parsing 𝓃 +PASS XHTML1.0 Frameset parsing ∤ +PASS XHTML1.0 Frameset parsing ∦ +PASS XHTML1.0 Frameset parsing ≁ +PASS XHTML1.0 Frameset parsing ≄ +PASS XHTML1.0 Frameset parsing ≄ +PASS XHTML1.0 Frameset parsing ∤ +PASS XHTML1.0 Frameset parsing ∦ +PASS XHTML1.0 Frameset parsing ⋢ +PASS XHTML1.0 Frameset parsing ⋣ +PASS XHTML1.0 Frameset parsing ⊄ +PASS XHTML1.0 Frameset parsing ⫅̸ +PASS XHTML1.0 Frameset parsing ⊈ +PASS XHTML1.0 Frameset parsing ⊂⃒ +PASS XHTML1.0 Frameset parsing ⊈ +PASS XHTML1.0 Frameset parsing ⫅̸ +PASS XHTML1.0 Frameset parsing ⊁ +PASS XHTML1.0 Frameset parsing ⪰̸ +PASS XHTML1.0 Frameset parsing ⊅ +PASS XHTML1.0 Frameset parsing ⫆̸ +PASS XHTML1.0 Frameset parsing ⊉ +PASS XHTML1.0 Frameset parsing ⊃⃒ +PASS XHTML1.0 Frameset parsing ⊉ +PASS XHTML1.0 Frameset parsing ⫆̸ +PASS XHTML1.0 Frameset parsing ≹ +PASS XHTML1.0 Frameset parsing Ñ +PASS XHTML1.0 Frameset parsing ñ +PASS XHTML1.0 Frameset parsing ≸ +PASS XHTML1.0 Frameset parsing ⋪ +PASS XHTML1.0 Frameset parsing ⋬ +PASS XHTML1.0 Frameset parsing ⋫ +PASS XHTML1.0 Frameset parsing ⋭ +PASS XHTML1.0 Frameset parsing Ν +PASS XHTML1.0 Frameset parsing ν +PASS XHTML1.0 Frameset parsing # +PASS XHTML1.0 Frameset parsing № +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing ≍⃒ +PASS XHTML1.0 Frameset parsing ⊬ +PASS XHTML1.0 Frameset parsing ⊭ +PASS XHTML1.0 Frameset parsing ⊮ +PASS XHTML1.0 Frameset parsing ⊯ +PASS XHTML1.0 Frameset parsing ≥⃒ +PASS XHTML1.0 Frameset parsing >⃒ +PASS XHTML1.0 Frameset parsing ⤄ +PASS XHTML1.0 Frameset parsing ⧞ +PASS XHTML1.0 Frameset parsing ⤂ +PASS XHTML1.0 Frameset parsing ≤⃒ +FAIL XHTML1.0 Frameset parsing <⃒ assert_equals: XHTML1.0 Frameset parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML1.0 Frameset parsing ⊴⃒ +PASS XHTML1.0 Frameset parsing ⤃ +PASS XHTML1.0 Frameset parsing ⊵⃒ +PASS XHTML1.0 Frameset parsing ∼⃒ +PASS XHTML1.0 Frameset parsing ⤣ +PASS XHTML1.0 Frameset parsing ↖ +PASS XHTML1.0 Frameset parsing ⇖ +PASS XHTML1.0 Frameset parsing ↖ +PASS XHTML1.0 Frameset parsing ⤧ +PASS XHTML1.0 Frameset parsing Ó +PASS XHTML1.0 Frameset parsing ó +PASS XHTML1.0 Frameset parsing ⊛ +PASS XHTML1.0 Frameset parsing Ô +PASS XHTML1.0 Frameset parsing ô +PASS XHTML1.0 Frameset parsing ⊚ +PASS XHTML1.0 Frameset parsing О +PASS XHTML1.0 Frameset parsing о +PASS XHTML1.0 Frameset parsing ⊝ +PASS XHTML1.0 Frameset parsing Ő +PASS XHTML1.0 Frameset parsing ő +PASS XHTML1.0 Frameset parsing ⨸ +PASS XHTML1.0 Frameset parsing ⊙ +PASS XHTML1.0 Frameset parsing ⦼ +PASS XHTML1.0 Frameset parsing Œ +PASS XHTML1.0 Frameset parsing œ +PASS XHTML1.0 Frameset parsing ⦿ +PASS XHTML1.0 Frameset parsing 𝔒 +PASS XHTML1.0 Frameset parsing 𝔬 +PASS XHTML1.0 Frameset parsing ˛ +PASS XHTML1.0 Frameset parsing Ò +PASS XHTML1.0 Frameset parsing ò +PASS XHTML1.0 Frameset parsing ⧁ +PASS XHTML1.0 Frameset parsing ⦵ +PASS XHTML1.0 Frameset parsing Ω +PASS XHTML1.0 Frameset parsing ∮ +PASS XHTML1.0 Frameset parsing ↺ +PASS XHTML1.0 Frameset parsing ⦾ +PASS XHTML1.0 Frameset parsing ⦻ +PASS XHTML1.0 Frameset parsing ‾ +PASS XHTML1.0 Frameset parsing ⧀ +PASS XHTML1.0 Frameset parsing Ō +PASS XHTML1.0 Frameset parsing ō +PASS XHTML1.0 Frameset parsing Ω +PASS XHTML1.0 Frameset parsing ω +PASS XHTML1.0 Frameset parsing Ο +PASS XHTML1.0 Frameset parsing ο +PASS XHTML1.0 Frameset parsing ⦶ +PASS XHTML1.0 Frameset parsing ⊖ +PASS XHTML1.0 Frameset parsing 𝕆 +PASS XHTML1.0 Frameset parsing 𝕠 +PASS XHTML1.0 Frameset parsing ⦷ +PASS XHTML1.0 Frameset parsing “ +PASS XHTML1.0 Frameset parsing ‘ +PASS XHTML1.0 Frameset parsing ⦹ +PASS XHTML1.0 Frameset parsing ⊕ +PASS XHTML1.0 Frameset parsing ↻ +PASS XHTML1.0 Frameset parsing ⩔ +PASS XHTML1.0 Frameset parsing ∨ +PASS XHTML1.0 Frameset parsing ⩝ +PASS XHTML1.0 Frameset parsing ℴ +PASS XHTML1.0 Frameset parsing ℴ +PASS XHTML1.0 Frameset parsing ª +PASS XHTML1.0 Frameset parsing º +PASS XHTML1.0 Frameset parsing ⊶ +PASS XHTML1.0 Frameset parsing ⩖ +PASS XHTML1.0 Frameset parsing ⩗ +PASS XHTML1.0 Frameset parsing ⩛ +PASS XHTML1.0 Frameset parsing Ⓢ +PASS XHTML1.0 Frameset parsing 𝒪 +PASS XHTML1.0 Frameset parsing ℴ +PASS XHTML1.0 Frameset parsing Ø +PASS XHTML1.0 Frameset parsing ø +PASS XHTML1.0 Frameset parsing ⊘ +PASS XHTML1.0 Frameset parsing Õ +PASS XHTML1.0 Frameset parsing õ +PASS XHTML1.0 Frameset parsing ⨶ +PASS XHTML1.0 Frameset parsing ⨷ +PASS XHTML1.0 Frameset parsing ⊗ +PASS XHTML1.0 Frameset parsing Ö +PASS XHTML1.0 Frameset parsing ö +PASS XHTML1.0 Frameset parsing ⌽ +PASS XHTML1.0 Frameset parsing ‾ +PASS XHTML1.0 Frameset parsing ⏞ +PASS XHTML1.0 Frameset parsing ⎴ +PASS XHTML1.0 Frameset parsing ⏜ +PASS XHTML1.0 Frameset parsing ¶ +PASS XHTML1.0 Frameset parsing ∥ +PASS XHTML1.0 Frameset parsing ∥ +PASS XHTML1.0 Frameset parsing ⫳ +PASS XHTML1.0 Frameset parsing ⫽ +PASS XHTML1.0 Frameset parsing ∂ +PASS XHTML1.0 Frameset parsing ∂ +PASS XHTML1.0 Frameset parsing П +PASS XHTML1.0 Frameset parsing п +PASS XHTML1.0 Frameset parsing % +PASS XHTML1.0 Frameset parsing . +PASS XHTML1.0 Frameset parsing ‰ +PASS XHTML1.0 Frameset parsing ⊥ +PASS XHTML1.0 Frameset parsing ‱ +PASS XHTML1.0 Frameset parsing 𝔓 +PASS XHTML1.0 Frameset parsing 𝔭 +PASS XHTML1.0 Frameset parsing Φ +PASS XHTML1.0 Frameset parsing φ +PASS XHTML1.0 Frameset parsing ϕ +PASS XHTML1.0 Frameset parsing ℳ +PASS XHTML1.0 Frameset parsing ☎ +PASS XHTML1.0 Frameset parsing Π +PASS XHTML1.0 Frameset parsing π +PASS XHTML1.0 Frameset parsing ⋔ +PASS XHTML1.0 Frameset parsing ϖ +PASS XHTML1.0 Frameset parsing ℏ +PASS XHTML1.0 Frameset parsing ℎ +PASS XHTML1.0 Frameset parsing ℏ +PASS XHTML1.0 Frameset parsing ⨣ +PASS XHTML1.0 Frameset parsing ⊞ +PASS XHTML1.0 Frameset parsing ⨢ +PASS XHTML1.0 Frameset parsing + +PASS XHTML1.0 Frameset parsing ∔ +PASS XHTML1.0 Frameset parsing ⨥ +PASS XHTML1.0 Frameset parsing ⩲ +PASS XHTML1.0 Frameset parsing ± +PASS XHTML1.0 Frameset parsing ± +PASS XHTML1.0 Frameset parsing ⨦ +PASS XHTML1.0 Frameset parsing ⨧ +PASS XHTML1.0 Frameset parsing ± +PASS XHTML1.0 Frameset parsing ℌ +PASS XHTML1.0 Frameset parsing ⨕ +PASS XHTML1.0 Frameset parsing 𝕡 +PASS XHTML1.0 Frameset parsing ℙ +PASS XHTML1.0 Frameset parsing £ +PASS XHTML1.0 Frameset parsing ⪷ +PASS XHTML1.0 Frameset parsing ⪻ +PASS XHTML1.0 Frameset parsing ≺ +PASS XHTML1.0 Frameset parsing ≼ +PASS XHTML1.0 Frameset parsing ⪷ +PASS XHTML1.0 Frameset parsing ≺ +PASS XHTML1.0 Frameset parsing ≼ +PASS XHTML1.0 Frameset parsing ≺ +PASS XHTML1.0 Frameset parsing ⪯ +PASS XHTML1.0 Frameset parsing ≼ +PASS XHTML1.0 Frameset parsing ≾ +PASS XHTML1.0 Frameset parsing ⪯ +PASS XHTML1.0 Frameset parsing ⪹ +PASS XHTML1.0 Frameset parsing ⪵ +PASS XHTML1.0 Frameset parsing ⋨ +PASS XHTML1.0 Frameset parsing ⪯ +PASS XHTML1.0 Frameset parsing ⪳ +PASS XHTML1.0 Frameset parsing ≾ +PASS XHTML1.0 Frameset parsing ′ +PASS XHTML1.0 Frameset parsing ″ +PASS XHTML1.0 Frameset parsing ℙ +PASS XHTML1.0 Frameset parsing ⪹ +PASS XHTML1.0 Frameset parsing ⪵ +PASS XHTML1.0 Frameset parsing ⋨ +PASS XHTML1.0 Frameset parsing ∏ +PASS XHTML1.0 Frameset parsing ∏ +PASS XHTML1.0 Frameset parsing ⌮ +PASS XHTML1.0 Frameset parsing ⌒ +PASS XHTML1.0 Frameset parsing ⌓ +PASS XHTML1.0 Frameset parsing ∝ +PASS XHTML1.0 Frameset parsing ∝ +PASS XHTML1.0 Frameset parsing ∷ +PASS XHTML1.0 Frameset parsing ∝ +PASS XHTML1.0 Frameset parsing ≾ +PASS XHTML1.0 Frameset parsing ⊰ +PASS XHTML1.0 Frameset parsing 𝒫 +PASS XHTML1.0 Frameset parsing 𝓅 +PASS XHTML1.0 Frameset parsing Ψ +PASS XHTML1.0 Frameset parsing ψ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing 𝔔 +PASS XHTML1.0 Frameset parsing 𝔮 +PASS XHTML1.0 Frameset parsing ⨌ +PASS XHTML1.0 Frameset parsing 𝕢 +PASS XHTML1.0 Frameset parsing ℚ +PASS XHTML1.0 Frameset parsing ⁗ +PASS XHTML1.0 Frameset parsing 𝒬 +PASS XHTML1.0 Frameset parsing 𝓆 +PASS XHTML1.0 Frameset parsing ℍ +PASS XHTML1.0 Frameset parsing ⨖ +PASS XHTML1.0 Frameset parsing ? +PASS XHTML1.0 Frameset parsing ≟ +PASS XHTML1.0 Frameset parsing " +PASS XHTML1.0 Frameset parsing " +PASS XHTML1.0 Frameset parsing ⇛ +PASS XHTML1.0 Frameset parsing ∽̱ +PASS XHTML1.0 Frameset parsing Ŕ +PASS XHTML1.0 Frameset parsing ŕ +PASS XHTML1.0 Frameset parsing √ +PASS XHTML1.0 Frameset parsing ⦳ +PASS XHTML1.0 Frameset parsing ⟩ +PASS XHTML1.0 Frameset parsing ⟫ +PASS XHTML1.0 Frameset parsing ⦒ +PASS XHTML1.0 Frameset parsing ⦥ +PASS XHTML1.0 Frameset parsing ⟩ +PASS XHTML1.0 Frameset parsing » +PASS XHTML1.0 Frameset parsing ⥵ +PASS XHTML1.0 Frameset parsing ⇥ +PASS XHTML1.0 Frameset parsing ⤠ +PASS XHTML1.0 Frameset parsing ⤳ +PASS XHTML1.0 Frameset parsing → +PASS XHTML1.0 Frameset parsing ↠ +PASS XHTML1.0 Frameset parsing ⇒ +PASS XHTML1.0 Frameset parsing ⤞ +PASS XHTML1.0 Frameset parsing ↪ +PASS XHTML1.0 Frameset parsing ↬ +PASS XHTML1.0 Frameset parsing ⥅ +PASS XHTML1.0 Frameset parsing ⥴ +PASS XHTML1.0 Frameset parsing ⤖ +PASS XHTML1.0 Frameset parsing ↣ +PASS XHTML1.0 Frameset parsing ↝ +PASS XHTML1.0 Frameset parsing ⤚ +PASS XHTML1.0 Frameset parsing ⤜ +PASS XHTML1.0 Frameset parsing ∶ +PASS XHTML1.0 Frameset parsing ℚ +PASS XHTML1.0 Frameset parsing ⤍ +PASS XHTML1.0 Frameset parsing ⤏ +PASS XHTML1.0 Frameset parsing ⤐ +PASS XHTML1.0 Frameset parsing ❳ +PASS XHTML1.0 Frameset parsing } +PASS XHTML1.0 Frameset parsing ] +PASS XHTML1.0 Frameset parsing ⦌ +PASS XHTML1.0 Frameset parsing ⦎ +PASS XHTML1.0 Frameset parsing ⦐ +PASS XHTML1.0 Frameset parsing Ř +PASS XHTML1.0 Frameset parsing ř +PASS XHTML1.0 Frameset parsing Ŗ +PASS XHTML1.0 Frameset parsing ŗ +PASS XHTML1.0 Frameset parsing ⌉ +PASS XHTML1.0 Frameset parsing } +PASS XHTML1.0 Frameset parsing Р +PASS XHTML1.0 Frameset parsing р +PASS XHTML1.0 Frameset parsing ⤷ +PASS XHTML1.0 Frameset parsing ⥩ +PASS XHTML1.0 Frameset parsing ” +PASS XHTML1.0 Frameset parsing ” +PASS XHTML1.0 Frameset parsing ↳ +PASS XHTML1.0 Frameset parsing ℜ +PASS XHTML1.0 Frameset parsing ℛ +PASS XHTML1.0 Frameset parsing ℜ +PASS XHTML1.0 Frameset parsing ℝ +PASS XHTML1.0 Frameset parsing ℜ +PASS XHTML1.0 Frameset parsing ▭ +PASS XHTML1.0 Frameset parsing ® +PASS XHTML1.0 Frameset parsing ® +PASS XHTML1.0 Frameset parsing ∋ +PASS XHTML1.0 Frameset parsing ⇋ +PASS XHTML1.0 Frameset parsing ⥯ +PASS XHTML1.0 Frameset parsing ⥽ +PASS XHTML1.0 Frameset parsing ⌋ +PASS XHTML1.0 Frameset parsing 𝔯 +PASS XHTML1.0 Frameset parsing ℜ +PASS XHTML1.0 Frameset parsing ⥤ +PASS XHTML1.0 Frameset parsing ⇁ +PASS XHTML1.0 Frameset parsing ⇀ +PASS XHTML1.0 Frameset parsing ⥬ +PASS XHTML1.0 Frameset parsing Ρ +PASS XHTML1.0 Frameset parsing ρ +PASS XHTML1.0 Frameset parsing ϱ +PASS XHTML1.0 Frameset parsing ⟩ +PASS XHTML1.0 Frameset parsing ⇥ +PASS XHTML1.0 Frameset parsing → +PASS XHTML1.0 Frameset parsing → +PASS XHTML1.0 Frameset parsing ⇒ +PASS XHTML1.0 Frameset parsing ⇄ +PASS XHTML1.0 Frameset parsing ↣ +PASS XHTML1.0 Frameset parsing ⌉ +PASS XHTML1.0 Frameset parsing ⟧ +PASS XHTML1.0 Frameset parsing ⥝ +PASS XHTML1.0 Frameset parsing ⥕ +PASS XHTML1.0 Frameset parsing ⇂ +PASS XHTML1.0 Frameset parsing ⌋ +PASS XHTML1.0 Frameset parsing ⇁ +PASS XHTML1.0 Frameset parsing ⇀ +PASS XHTML1.0 Frameset parsing ⇄ +PASS XHTML1.0 Frameset parsing ⇌ +PASS XHTML1.0 Frameset parsing ⇉ +PASS XHTML1.0 Frameset parsing ↝ +PASS XHTML1.0 Frameset parsing ↦ +PASS XHTML1.0 Frameset parsing ⊢ +PASS XHTML1.0 Frameset parsing ⥛ +PASS XHTML1.0 Frameset parsing ⋌ +PASS XHTML1.0 Frameset parsing ⧐ +PASS XHTML1.0 Frameset parsing ⊳ +PASS XHTML1.0 Frameset parsing ⊵ +PASS XHTML1.0 Frameset parsing ⥏ +PASS XHTML1.0 Frameset parsing ⥜ +PASS XHTML1.0 Frameset parsing ⥔ +PASS XHTML1.0 Frameset parsing ↾ +PASS XHTML1.0 Frameset parsing ⥓ +PASS XHTML1.0 Frameset parsing ⇀ +PASS XHTML1.0 Frameset parsing ˚ +PASS XHTML1.0 Frameset parsing ≓ +PASS XHTML1.0 Frameset parsing ⇄ +PASS XHTML1.0 Frameset parsing ⇌ +PASS XHTML1.0 Frameset parsing ‏ +PASS XHTML1.0 Frameset parsing ⎱ +PASS XHTML1.0 Frameset parsing ⎱ +PASS XHTML1.0 Frameset parsing ⫮ +PASS XHTML1.0 Frameset parsing ⟭ +PASS XHTML1.0 Frameset parsing ⇾ +PASS XHTML1.0 Frameset parsing ⟧ +PASS XHTML1.0 Frameset parsing ⦆ +PASS XHTML1.0 Frameset parsing 𝕣 +PASS XHTML1.0 Frameset parsing ℝ +PASS XHTML1.0 Frameset parsing ⨮ +PASS XHTML1.0 Frameset parsing ⨵ +PASS XHTML1.0 Frameset parsing ⥰ +PASS XHTML1.0 Frameset parsing ) +PASS XHTML1.0 Frameset parsing ⦔ +PASS XHTML1.0 Frameset parsing ⨒ +PASS XHTML1.0 Frameset parsing ⇉ +PASS XHTML1.0 Frameset parsing ⇛ +PASS XHTML1.0 Frameset parsing › +PASS XHTML1.0 Frameset parsing 𝓇 +PASS XHTML1.0 Frameset parsing ℛ +PASS XHTML1.0 Frameset parsing ↱ +PASS XHTML1.0 Frameset parsing ↱ +PASS XHTML1.0 Frameset parsing ] +PASS XHTML1.0 Frameset parsing ’ +PASS XHTML1.0 Frameset parsing ’ +PASS XHTML1.0 Frameset parsing ⋌ +PASS XHTML1.0 Frameset parsing ⋊ +PASS XHTML1.0 Frameset parsing ▹ +PASS XHTML1.0 Frameset parsing ⊵ +PASS XHTML1.0 Frameset parsing ▸ +PASS XHTML1.0 Frameset parsing ⧎ +PASS XHTML1.0 Frameset parsing ⧴ +PASS XHTML1.0 Frameset parsing ⥨ +PASS XHTML1.0 Frameset parsing ℞ +PASS XHTML1.0 Frameset parsing Ś +PASS XHTML1.0 Frameset parsing ś +PASS XHTML1.0 Frameset parsing ‚ +PASS XHTML1.0 Frameset parsing ⪸ +PASS XHTML1.0 Frameset parsing Š +PASS XHTML1.0 Frameset parsing š +PASS XHTML1.0 Frameset parsing ⪼ +PASS XHTML1.0 Frameset parsing ≻ +PASS XHTML1.0 Frameset parsing ≽ +PASS XHTML1.0 Frameset parsing ⪰ +PASS XHTML1.0 Frameset parsing ⪴ +PASS XHTML1.0 Frameset parsing Ş +PASS XHTML1.0 Frameset parsing ş +PASS XHTML1.0 Frameset parsing Ŝ +PASS XHTML1.0 Frameset parsing ŝ +PASS XHTML1.0 Frameset parsing ⪺ +PASS XHTML1.0 Frameset parsing ⪶ +PASS XHTML1.0 Frameset parsing ⋩ +PASS XHTML1.0 Frameset parsing ⨓ +PASS XHTML1.0 Frameset parsing ≿ +PASS XHTML1.0 Frameset parsing С +PASS XHTML1.0 Frameset parsing с +PASS XHTML1.0 Frameset parsing ⊡ +PASS XHTML1.0 Frameset parsing ⋅ +PASS XHTML1.0 Frameset parsing ⩦ +PASS XHTML1.0 Frameset parsing ⤥ +PASS XHTML1.0 Frameset parsing ↘ +PASS XHTML1.0 Frameset parsing ⇘ +PASS XHTML1.0 Frameset parsing ↘ +PASS XHTML1.0 Frameset parsing § +PASS XHTML1.0 Frameset parsing ; +PASS XHTML1.0 Frameset parsing ⤩ +PASS XHTML1.0 Frameset parsing ∖ +PASS XHTML1.0 Frameset parsing ∖ +PASS XHTML1.0 Frameset parsing ✶ +PASS XHTML1.0 Frameset parsing 𝔖 +PASS XHTML1.0 Frameset parsing 𝔰 +PASS XHTML1.0 Frameset parsing ⌢ +PASS XHTML1.0 Frameset parsing ♯ +PASS XHTML1.0 Frameset parsing Щ +PASS XHTML1.0 Frameset parsing щ +PASS XHTML1.0 Frameset parsing Ш +PASS XHTML1.0 Frameset parsing ш +PASS XHTML1.0 Frameset parsing ↓ +PASS XHTML1.0 Frameset parsing ← +PASS XHTML1.0 Frameset parsing ∣ +PASS XHTML1.0 Frameset parsing ∥ +PASS XHTML1.0 Frameset parsing → +PASS XHTML1.0 Frameset parsing ↑ +PASS XHTML1.0 Frameset parsing ­ +PASS XHTML1.0 Frameset parsing Σ +PASS XHTML1.0 Frameset parsing σ +PASS XHTML1.0 Frameset parsing ς +PASS XHTML1.0 Frameset parsing ς +PASS XHTML1.0 Frameset parsing ∼ +PASS XHTML1.0 Frameset parsing ⩪ +PASS XHTML1.0 Frameset parsing ≃ +PASS XHTML1.0 Frameset parsing ≃ +PASS XHTML1.0 Frameset parsing ⪞ +PASS XHTML1.0 Frameset parsing ⪠ +PASS XHTML1.0 Frameset parsing ⪝ +PASS XHTML1.0 Frameset parsing ⪟ +PASS XHTML1.0 Frameset parsing ≆ +PASS XHTML1.0 Frameset parsing ⨤ +PASS XHTML1.0 Frameset parsing ⥲ +PASS XHTML1.0 Frameset parsing ← +PASS XHTML1.0 Frameset parsing ∘ +PASS XHTML1.0 Frameset parsing ∖ +PASS XHTML1.0 Frameset parsing ⨳ +PASS XHTML1.0 Frameset parsing ⧤ +PASS XHTML1.0 Frameset parsing ∣ +PASS XHTML1.0 Frameset parsing ⌣ +PASS XHTML1.0 Frameset parsing ⪪ +PASS XHTML1.0 Frameset parsing ⪬ +PASS XHTML1.0 Frameset parsing ⪬︀ +PASS XHTML1.0 Frameset parsing Ь +PASS XHTML1.0 Frameset parsing ь +PASS XHTML1.0 Frameset parsing ⌿ +PASS XHTML1.0 Frameset parsing ⧄ +PASS XHTML1.0 Frameset parsing / +PASS XHTML1.0 Frameset parsing 𝕊 +PASS XHTML1.0 Frameset parsing 𝕤 +PASS XHTML1.0 Frameset parsing ♠ +PASS XHTML1.0 Frameset parsing ♠ +PASS XHTML1.0 Frameset parsing ∥ +PASS XHTML1.0 Frameset parsing ⊓ +PASS XHTML1.0 Frameset parsing ⊓︀ +PASS XHTML1.0 Frameset parsing ⊔ +PASS XHTML1.0 Frameset parsing ⊔︀ +PASS XHTML1.0 Frameset parsing √ +PASS XHTML1.0 Frameset parsing ⊏ +PASS XHTML1.0 Frameset parsing ⊑ +PASS XHTML1.0 Frameset parsing ⊏ +PASS XHTML1.0 Frameset parsing ⊑ +PASS XHTML1.0 Frameset parsing ⊐ +PASS XHTML1.0 Frameset parsing ⊒ +PASS XHTML1.0 Frameset parsing ⊐ +PASS XHTML1.0 Frameset parsing ⊒ +PASS XHTML1.0 Frameset parsing □ +PASS XHTML1.0 Frameset parsing □ +PASS XHTML1.0 Frameset parsing ⊓ +PASS XHTML1.0 Frameset parsing ⊏ +PASS XHTML1.0 Frameset parsing ⊑ +PASS XHTML1.0 Frameset parsing ⊐ +PASS XHTML1.0 Frameset parsing ⊒ +PASS XHTML1.0 Frameset parsing ⊔ +PASS XHTML1.0 Frameset parsing ▪ +PASS XHTML1.0 Frameset parsing □ +PASS XHTML1.0 Frameset parsing ▪ +PASS XHTML1.0 Frameset parsing → +PASS XHTML1.0 Frameset parsing 𝒮 +PASS XHTML1.0 Frameset parsing 𝓈 +PASS XHTML1.0 Frameset parsing ∖ +PASS XHTML1.0 Frameset parsing ⌣ +PASS XHTML1.0 Frameset parsing ⋆ +PASS XHTML1.0 Frameset parsing ⋆ +PASS XHTML1.0 Frameset parsing ☆ +PASS XHTML1.0 Frameset parsing ★ +PASS XHTML1.0 Frameset parsing ϵ +PASS XHTML1.0 Frameset parsing ϕ +PASS XHTML1.0 Frameset parsing ¯ +PASS XHTML1.0 Frameset parsing ⊂ +PASS XHTML1.0 Frameset parsing ⋐ +PASS XHTML1.0 Frameset parsing ⪽ +PASS XHTML1.0 Frameset parsing ⫅ +PASS XHTML1.0 Frameset parsing ⊆ +PASS XHTML1.0 Frameset parsing ⫃ +PASS XHTML1.0 Frameset parsing ⫁ +PASS XHTML1.0 Frameset parsing ⫋ +PASS XHTML1.0 Frameset parsing ⊊ +PASS XHTML1.0 Frameset parsing ⪿ +PASS XHTML1.0 Frameset parsing ⥹ +PASS XHTML1.0 Frameset parsing ⊂ +PASS XHTML1.0 Frameset parsing ⋐ +PASS XHTML1.0 Frameset parsing ⊆ +PASS XHTML1.0 Frameset parsing ⫅ +PASS XHTML1.0 Frameset parsing ⊆ +PASS XHTML1.0 Frameset parsing ⊊ +PASS XHTML1.0 Frameset parsing ⫋ +PASS XHTML1.0 Frameset parsing ⫇ +PASS XHTML1.0 Frameset parsing ⫕ +PASS XHTML1.0 Frameset parsing ⫓ +PASS XHTML1.0 Frameset parsing ⪸ +PASS XHTML1.0 Frameset parsing ≻ +PASS XHTML1.0 Frameset parsing ≽ +PASS XHTML1.0 Frameset parsing ≻ +PASS XHTML1.0 Frameset parsing ⪰ +PASS XHTML1.0 Frameset parsing ≽ +PASS XHTML1.0 Frameset parsing ≿ +PASS XHTML1.0 Frameset parsing ⪰ +PASS XHTML1.0 Frameset parsing ⪺ +PASS XHTML1.0 Frameset parsing ⪶ +PASS XHTML1.0 Frameset parsing ⋩ +PASS XHTML1.0 Frameset parsing ≿ +PASS XHTML1.0 Frameset parsing ∋ +PASS XHTML1.0 Frameset parsing ∑ +PASS XHTML1.0 Frameset parsing ∑ +PASS XHTML1.0 Frameset parsing ♪ +PASS XHTML1.0 Frameset parsing ¹ +PASS XHTML1.0 Frameset parsing ² +PASS XHTML1.0 Frameset parsing ³ +PASS XHTML1.0 Frameset parsing ⊃ +PASS XHTML1.0 Frameset parsing ⋑ +PASS XHTML1.0 Frameset parsing ⪾ +PASS XHTML1.0 Frameset parsing ⫘ +PASS XHTML1.0 Frameset parsing ⫆ +PASS XHTML1.0 Frameset parsing ⊇ +PASS XHTML1.0 Frameset parsing ⫄ +PASS XHTML1.0 Frameset parsing ⊃ +PASS XHTML1.0 Frameset parsing ⊇ +PASS XHTML1.0 Frameset parsing ⟉ +PASS XHTML1.0 Frameset parsing ⫗ +PASS XHTML1.0 Frameset parsing ⥻ +PASS XHTML1.0 Frameset parsing ⫂ +PASS XHTML1.0 Frameset parsing ⫌ +PASS XHTML1.0 Frameset parsing ⊋ +PASS XHTML1.0 Frameset parsing ⫀ +PASS XHTML1.0 Frameset parsing ⊃ +PASS XHTML1.0 Frameset parsing ⋑ +PASS XHTML1.0 Frameset parsing ⊇ +PASS XHTML1.0 Frameset parsing ⫆ +PASS XHTML1.0 Frameset parsing ⊋ +PASS XHTML1.0 Frameset parsing ⫌ +PASS XHTML1.0 Frameset parsing ⫈ +PASS XHTML1.0 Frameset parsing ⫔ +PASS XHTML1.0 Frameset parsing ⫖ +PASS XHTML1.0 Frameset parsing ⤦ +PASS XHTML1.0 Frameset parsing ↙ +PASS XHTML1.0 Frameset parsing ⇙ +PASS XHTML1.0 Frameset parsing ↙ +PASS XHTML1.0 Frameset parsing ⤪ +PASS XHTML1.0 Frameset parsing ß +PASS XHTML1.0 Frameset parsing 	 +PASS XHTML1.0 Frameset parsing ⌖ +PASS XHTML1.0 Frameset parsing Τ +PASS XHTML1.0 Frameset parsing τ +PASS XHTML1.0 Frameset parsing ⎴ +PASS XHTML1.0 Frameset parsing Ť +PASS XHTML1.0 Frameset parsing ť +PASS XHTML1.0 Frameset parsing Ţ +PASS XHTML1.0 Frameset parsing ţ +PASS XHTML1.0 Frameset parsing Т +PASS XHTML1.0 Frameset parsing т +PASS XHTML1.0 Frameset parsing ⃛ +PASS XHTML1.0 Frameset parsing ⌕ +PASS XHTML1.0 Frameset parsing 𝔗 +PASS XHTML1.0 Frameset parsing 𝔱 +PASS XHTML1.0 Frameset parsing ∴ +PASS XHTML1.0 Frameset parsing ∴ +PASS XHTML1.0 Frameset parsing ∴ +PASS XHTML1.0 Frameset parsing Θ +PASS XHTML1.0 Frameset parsing θ +PASS XHTML1.0 Frameset parsing ϑ +PASS XHTML1.0 Frameset parsing ϑ +PASS XHTML1.0 Frameset parsing ≈ +PASS XHTML1.0 Frameset parsing ∼ +PASS XHTML1.0 Frameset parsing    +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing ≈ +PASS XHTML1.0 Frameset parsing ∼ +PASS XHTML1.0 Frameset parsing Þ +PASS XHTML1.0 Frameset parsing þ +PASS XHTML1.0 Frameset parsing ˜ +PASS XHTML1.0 Frameset parsing ∼ +PASS XHTML1.0 Frameset parsing ≃ +PASS XHTML1.0 Frameset parsing ≅ +PASS XHTML1.0 Frameset parsing ≈ +PASS XHTML1.0 Frameset parsing ⨱ +PASS XHTML1.0 Frameset parsing ⊠ +PASS XHTML1.0 Frameset parsing × +PASS XHTML1.0 Frameset parsing ⨰ +PASS XHTML1.0 Frameset parsing ∭ +PASS XHTML1.0 Frameset parsing ⤨ +PASS XHTML1.0 Frameset parsing ⌶ +PASS XHTML1.0 Frameset parsing ⫱ +PASS XHTML1.0 Frameset parsing ⊤ +PASS XHTML1.0 Frameset parsing 𝕋 +PASS XHTML1.0 Frameset parsing 𝕥 +PASS XHTML1.0 Frameset parsing ⫚ +PASS XHTML1.0 Frameset parsing ⤩ +PASS XHTML1.0 Frameset parsing ‴ +PASS XHTML1.0 Frameset parsing ™ +PASS XHTML1.0 Frameset parsing ™ +PASS XHTML1.0 Frameset parsing ▵ +PASS XHTML1.0 Frameset parsing ▿ +PASS XHTML1.0 Frameset parsing ◃ +PASS XHTML1.0 Frameset parsing ⊴ +PASS XHTML1.0 Frameset parsing ≜ +PASS XHTML1.0 Frameset parsing ▹ +PASS XHTML1.0 Frameset parsing ⊵ +PASS XHTML1.0 Frameset parsing ◬ +PASS XHTML1.0 Frameset parsing ≜ +PASS XHTML1.0 Frameset parsing ⨺ +PASS XHTML1.0 Frameset parsing ⃛ +PASS XHTML1.0 Frameset parsing ⨹ +PASS XHTML1.0 Frameset parsing ⧍ +PASS XHTML1.0 Frameset parsing ⨻ +PASS XHTML1.0 Frameset parsing ⏢ +PASS XHTML1.0 Frameset parsing 𝒯 +PASS XHTML1.0 Frameset parsing 𝓉 +PASS XHTML1.0 Frameset parsing Ц +PASS XHTML1.0 Frameset parsing ц +PASS XHTML1.0 Frameset parsing Ћ +PASS XHTML1.0 Frameset parsing ћ +PASS XHTML1.0 Frameset parsing Ŧ +PASS XHTML1.0 Frameset parsing ŧ +PASS XHTML1.0 Frameset parsing ≬ +PASS XHTML1.0 Frameset parsing ↞ +PASS XHTML1.0 Frameset parsing ↠ +PASS XHTML1.0 Frameset parsing Ú +PASS XHTML1.0 Frameset parsing ú +PASS XHTML1.0 Frameset parsing ↑ +PASS XHTML1.0 Frameset parsing ↟ +PASS XHTML1.0 Frameset parsing ⇑ +PASS XHTML1.0 Frameset parsing ⥉ +PASS XHTML1.0 Frameset parsing Ў +PASS XHTML1.0 Frameset parsing ў +PASS XHTML1.0 Frameset parsing Ŭ +PASS XHTML1.0 Frameset parsing ŭ +PASS XHTML1.0 Frameset parsing Û +PASS XHTML1.0 Frameset parsing û +PASS XHTML1.0 Frameset parsing У +PASS XHTML1.0 Frameset parsing у +PASS XHTML1.0 Frameset parsing ⇅ +PASS XHTML1.0 Frameset parsing Ű +PASS XHTML1.0 Frameset parsing ű +PASS XHTML1.0 Frameset parsing ⥮ +PASS XHTML1.0 Frameset parsing ⥾ +PASS XHTML1.0 Frameset parsing 𝔘 +PASS XHTML1.0 Frameset parsing 𝔲 +PASS XHTML1.0 Frameset parsing Ù +PASS XHTML1.0 Frameset parsing ù +PASS XHTML1.0 Frameset parsing ⥣ +PASS XHTML1.0 Frameset parsing ↿ +PASS XHTML1.0 Frameset parsing ↾ +PASS XHTML1.0 Frameset parsing ▀ +PASS XHTML1.0 Frameset parsing ⌜ +PASS XHTML1.0 Frameset parsing ⌜ +PASS XHTML1.0 Frameset parsing ⌏ +PASS XHTML1.0 Frameset parsing ◸ +PASS XHTML1.0 Frameset parsing Ū +PASS XHTML1.0 Frameset parsing ū +PASS XHTML1.0 Frameset parsing ¨ +PASS XHTML1.0 Frameset parsing _ +PASS XHTML1.0 Frameset parsing ⏟ +PASS XHTML1.0 Frameset parsing ⎵ +PASS XHTML1.0 Frameset parsing ⏝ +PASS XHTML1.0 Frameset parsing ⋃ +PASS XHTML1.0 Frameset parsing ⊎ +PASS XHTML1.0 Frameset parsing Ų +PASS XHTML1.0 Frameset parsing ų +PASS XHTML1.0 Frameset parsing 𝕌 +PASS XHTML1.0 Frameset parsing 𝕦 +PASS XHTML1.0 Frameset parsing ⤒ +PASS XHTML1.0 Frameset parsing ↑ +PASS XHTML1.0 Frameset parsing ↑ +PASS XHTML1.0 Frameset parsing ⇑ +PASS XHTML1.0 Frameset parsing ⇅ +PASS XHTML1.0 Frameset parsing ↕ +PASS XHTML1.0 Frameset parsing ↕ +PASS XHTML1.0 Frameset parsing ⇕ +PASS XHTML1.0 Frameset parsing ⥮ +PASS XHTML1.0 Frameset parsing ↿ +PASS XHTML1.0 Frameset parsing ↾ +PASS XHTML1.0 Frameset parsing ⊎ +PASS XHTML1.0 Frameset parsing ↖ +PASS XHTML1.0 Frameset parsing ↗ +PASS XHTML1.0 Frameset parsing υ +PASS XHTML1.0 Frameset parsing ϒ +PASS XHTML1.0 Frameset parsing ϒ +PASS XHTML1.0 Frameset parsing Υ +PASS XHTML1.0 Frameset parsing υ +PASS XHTML1.0 Frameset parsing ↥ +PASS XHTML1.0 Frameset parsing ⊥ +PASS XHTML1.0 Frameset parsing ⇈ +PASS XHTML1.0 Frameset parsing ⌝ +PASS XHTML1.0 Frameset parsing ⌝ +PASS XHTML1.0 Frameset parsing ⌎ +PASS XHTML1.0 Frameset parsing Ů +PASS XHTML1.0 Frameset parsing ů +PASS XHTML1.0 Frameset parsing ◹ +PASS XHTML1.0 Frameset parsing 𝒰 +PASS XHTML1.0 Frameset parsing 𝓊 +PASS XHTML1.0 Frameset parsing ⋰ +PASS XHTML1.0 Frameset parsing Ũ +PASS XHTML1.0 Frameset parsing ũ +PASS XHTML1.0 Frameset parsing ▵ +PASS XHTML1.0 Frameset parsing ▴ +PASS XHTML1.0 Frameset parsing ⇈ +PASS XHTML1.0 Frameset parsing Ü +PASS XHTML1.0 Frameset parsing ü +PASS XHTML1.0 Frameset parsing ⦧ +PASS XHTML1.0 Frameset parsing ⦜ +PASS XHTML1.0 Frameset parsing ϵ +PASS XHTML1.0 Frameset parsing ϰ +PASS XHTML1.0 Frameset parsing ∅ +PASS XHTML1.0 Frameset parsing ϕ +PASS XHTML1.0 Frameset parsing ϖ +PASS XHTML1.0 Frameset parsing ∝ +PASS XHTML1.0 Frameset parsing ↕ +PASS XHTML1.0 Frameset parsing ⇕ +PASS XHTML1.0 Frameset parsing ϱ +PASS XHTML1.0 Frameset parsing ς +PASS XHTML1.0 Frameset parsing ⊊︀ +PASS XHTML1.0 Frameset parsing ⫋︀ +PASS XHTML1.0 Frameset parsing ⊋︀ +PASS XHTML1.0 Frameset parsing ⫌︀ +PASS XHTML1.0 Frameset parsing ϑ +PASS XHTML1.0 Frameset parsing ⊲ +PASS XHTML1.0 Frameset parsing ⊳ +PASS XHTML1.0 Frameset parsing ⫨ +PASS XHTML1.0 Frameset parsing ⫫ +PASS XHTML1.0 Frameset parsing ⫩ +PASS XHTML1.0 Frameset parsing В +PASS XHTML1.0 Frameset parsing в +PASS XHTML1.0 Frameset parsing ⊢ +PASS XHTML1.0 Frameset parsing ⊨ +PASS XHTML1.0 Frameset parsing ⊩ +PASS XHTML1.0 Frameset parsing ⊫ +PASS XHTML1.0 Frameset parsing ⫦ +PASS XHTML1.0 Frameset parsing ⊻ +PASS XHTML1.0 Frameset parsing ∨ +PASS XHTML1.0 Frameset parsing ⋁ +PASS XHTML1.0 Frameset parsing ≚ +PASS XHTML1.0 Frameset parsing ⋮ +PASS XHTML1.0 Frameset parsing | +PASS XHTML1.0 Frameset parsing ‖ +PASS XHTML1.0 Frameset parsing | +PASS XHTML1.0 Frameset parsing ‖ +PASS XHTML1.0 Frameset parsing ∣ +PASS XHTML1.0 Frameset parsing | +PASS XHTML1.0 Frameset parsing ❘ +PASS XHTML1.0 Frameset parsing ≀ +PASS XHTML1.0 Frameset parsing   +PASS XHTML1.0 Frameset parsing 𝔙 +PASS XHTML1.0 Frameset parsing 𝔳 +PASS XHTML1.0 Frameset parsing ⊲ +PASS XHTML1.0 Frameset parsing ⊂⃒ +PASS XHTML1.0 Frameset parsing ⊃⃒ +PASS XHTML1.0 Frameset parsing 𝕍 +PASS XHTML1.0 Frameset parsing 𝕧 +PASS XHTML1.0 Frameset parsing ∝ +PASS XHTML1.0 Frameset parsing ⊳ +PASS XHTML1.0 Frameset parsing 𝒱 +PASS XHTML1.0 Frameset parsing 𝓋 +PASS XHTML1.0 Frameset parsing ⫋︀ +PASS XHTML1.0 Frameset parsing ⊊︀ +PASS XHTML1.0 Frameset parsing ⫌︀ +PASS XHTML1.0 Frameset parsing ⊋︀ +PASS XHTML1.0 Frameset parsing ⊪ +PASS XHTML1.0 Frameset parsing ⦚ +PASS XHTML1.0 Frameset parsing Ŵ +PASS XHTML1.0 Frameset parsing ŵ +PASS XHTML1.0 Frameset parsing ⩟ +PASS XHTML1.0 Frameset parsing ∧ +PASS XHTML1.0 Frameset parsing ⋀ +PASS XHTML1.0 Frameset parsing ≙ +PASS XHTML1.0 Frameset parsing ℘ +PASS XHTML1.0 Frameset parsing 𝔚 +PASS XHTML1.0 Frameset parsing 𝔴 +PASS XHTML1.0 Frameset parsing 𝕎 +PASS XHTML1.0 Frameset parsing 𝕨 +PASS XHTML1.0 Frameset parsing ℘ +PASS XHTML1.0 Frameset parsing ≀ +PASS XHTML1.0 Frameset parsing ≀ +PASS XHTML1.0 Frameset parsing 𝒲 +PASS XHTML1.0 Frameset parsing 𝓌 +PASS XHTML1.0 Frameset parsing ⋂ +PASS XHTML1.0 Frameset parsing ◯ +PASS XHTML1.0 Frameset parsing ⋃ +PASS XHTML1.0 Frameset parsing ▽ +PASS XHTML1.0 Frameset parsing 𝔛 +PASS XHTML1.0 Frameset parsing 𝔵 +PASS XHTML1.0 Frameset parsing ⟷ +PASS XHTML1.0 Frameset parsing ⟺ +PASS XHTML1.0 Frameset parsing Ξ +PASS XHTML1.0 Frameset parsing ξ +PASS XHTML1.0 Frameset parsing ⟵ +PASS XHTML1.0 Frameset parsing ⟸ +PASS XHTML1.0 Frameset parsing ⟼ +PASS XHTML1.0 Frameset parsing ⋻ +PASS XHTML1.0 Frameset parsing ⨀ +PASS XHTML1.0 Frameset parsing 𝕏 +PASS XHTML1.0 Frameset parsing 𝕩 +PASS XHTML1.0 Frameset parsing ⨁ +PASS XHTML1.0 Frameset parsing ⨂ +PASS XHTML1.0 Frameset parsing ⟶ +PASS XHTML1.0 Frameset parsing ⟹ +PASS XHTML1.0 Frameset parsing 𝒳 +PASS XHTML1.0 Frameset parsing 𝓍 +PASS XHTML1.0 Frameset parsing ⨆ +PASS XHTML1.0 Frameset parsing ⨄ +PASS XHTML1.0 Frameset parsing △ +PASS XHTML1.0 Frameset parsing ⋁ +PASS XHTML1.0 Frameset parsing ⋀ +PASS XHTML1.0 Frameset parsing Ý +PASS XHTML1.0 Frameset parsing ý +PASS XHTML1.0 Frameset parsing Я +PASS XHTML1.0 Frameset parsing я +PASS XHTML1.0 Frameset parsing Ŷ +PASS XHTML1.0 Frameset parsing ŷ +PASS XHTML1.0 Frameset parsing Ы +PASS XHTML1.0 Frameset parsing ы +PASS XHTML1.0 Frameset parsing ¥ +PASS XHTML1.0 Frameset parsing 𝔜 +PASS XHTML1.0 Frameset parsing 𝔶 +PASS XHTML1.0 Frameset parsing Ї +PASS XHTML1.0 Frameset parsing ї +PASS XHTML1.0 Frameset parsing 𝕐 +PASS XHTML1.0 Frameset parsing 𝕪 +PASS XHTML1.0 Frameset parsing 𝒴 +PASS XHTML1.0 Frameset parsing 𝓎 +PASS XHTML1.0 Frameset parsing Ю +PASS XHTML1.0 Frameset parsing ю +PASS XHTML1.0 Frameset parsing ÿ +PASS XHTML1.0 Frameset parsing Ÿ +PASS XHTML1.0 Frameset parsing Ź +PASS XHTML1.0 Frameset parsing ź +PASS XHTML1.0 Frameset parsing Ž +PASS XHTML1.0 Frameset parsing ž +PASS XHTML1.0 Frameset parsing З +PASS XHTML1.0 Frameset parsing з +PASS XHTML1.0 Frameset parsing Ż +PASS XHTML1.0 Frameset parsing ż +PASS XHTML1.0 Frameset parsing ℨ +PASS XHTML1.0 Frameset parsing ​ +PASS XHTML1.0 Frameset parsing Ζ +PASS XHTML1.0 Frameset parsing ζ +PASS XHTML1.0 Frameset parsing 𝔷 +PASS XHTML1.0 Frameset parsing ℨ +PASS XHTML1.0 Frameset parsing Ж +PASS XHTML1.0 Frameset parsing ж +PASS XHTML1.0 Frameset parsing ⇝ +PASS XHTML1.0 Frameset parsing 𝕫 +PASS XHTML1.0 Frameset parsing ℤ +PASS XHTML1.0 Frameset parsing 𝒵 +PASS XHTML1.0 Frameset parsing 𝓏 +PASS XHTML1.0 Frameset parsing ‍ +PASS XHTML1.0 Frameset parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm new file mode 100644 index 0000000..53a68b4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML 1.0 Frameset//EN", "foo", "XHTML1.0 Frameset"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5-expected.txt new file mode 100644 index 0000000..3a94ff0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML Basic parsing Á +PASS XHTML Basic parsing á +PASS XHTML Basic parsing Ă +PASS XHTML Basic parsing ă +PASS XHTML Basic parsing ∾ +PASS XHTML Basic parsing ∿ +PASS XHTML Basic parsing ∾̳ +PASS XHTML Basic parsing  +PASS XHTML Basic parsing â +PASS XHTML Basic parsing ´ +PASS XHTML Basic parsing А +PASS XHTML Basic parsing а +PASS XHTML Basic parsing Æ +PASS XHTML Basic parsing æ +PASS XHTML Basic parsing ⁡ +PASS XHTML Basic parsing 𝔄 +PASS XHTML Basic parsing 𝔞 +PASS XHTML Basic parsing À +PASS XHTML Basic parsing à +PASS XHTML Basic parsing ℵ +PASS XHTML Basic parsing ℵ +PASS XHTML Basic parsing Α +PASS XHTML Basic parsing α +PASS XHTML Basic parsing Ā +PASS XHTML Basic parsing ā +PASS XHTML Basic parsing ⨿ +PASS XHTML Basic parsing & +FAIL XHTML Basic parsing & assert_true: expected true got false +PASS XHTML Basic parsing ⩕ +PASS XHTML Basic parsing ⩓ +PASS XHTML Basic parsing ∧ +PASS XHTML Basic parsing ⩜ +PASS XHTML Basic parsing ⩘ +PASS XHTML Basic parsing ⩚ +PASS XHTML Basic parsing ∠ +PASS XHTML Basic parsing ⦤ +PASS XHTML Basic parsing ∠ +PASS XHTML Basic parsing ⦨ +PASS XHTML Basic parsing ⦩ +PASS XHTML Basic parsing ⦪ +PASS XHTML Basic parsing ⦫ +PASS XHTML Basic parsing ⦬ +PASS XHTML Basic parsing ⦭ +PASS XHTML Basic parsing ⦮ +PASS XHTML Basic parsing ⦯ +PASS XHTML Basic parsing ∡ +PASS XHTML Basic parsing ∟ +PASS XHTML Basic parsing ⊾ +PASS XHTML Basic parsing ⦝ +PASS XHTML Basic parsing ∢ +PASS XHTML Basic parsing Å +PASS XHTML Basic parsing ⍼ +PASS XHTML Basic parsing Ą +PASS XHTML Basic parsing ą +PASS XHTML Basic parsing 𝔸 +PASS XHTML Basic parsing 𝕒 +PASS XHTML Basic parsing ⩯ +PASS XHTML Basic parsing ≈ +PASS XHTML Basic parsing ⩰ +PASS XHTML Basic parsing ≊ +PASS XHTML Basic parsing ≋ +PASS XHTML Basic parsing ' +PASS XHTML Basic parsing ⁡ +PASS XHTML Basic parsing ≈ +PASS XHTML Basic parsing ≊ +PASS XHTML Basic parsing Å +PASS XHTML Basic parsing å +PASS XHTML Basic parsing 𝒜 +PASS XHTML Basic parsing 𝒶 +PASS XHTML Basic parsing ≔ +PASS XHTML Basic parsing * +PASS XHTML Basic parsing ≈ +PASS XHTML Basic parsing ≍ +PASS XHTML Basic parsing à +PASS XHTML Basic parsing ã +PASS XHTML Basic parsing Ä +PASS XHTML Basic parsing ä +PASS XHTML Basic parsing ∳ +PASS XHTML Basic parsing ⨑ +PASS XHTML Basic parsing ≌ +PASS XHTML Basic parsing ϶ +PASS XHTML Basic parsing ‵ +PASS XHTML Basic parsing ∽ +PASS XHTML Basic parsing ⋍ +PASS XHTML Basic parsing ∖ +PASS XHTML Basic parsing ⫧ +PASS XHTML Basic parsing ⊽ +PASS XHTML Basic parsing ⌅ +PASS XHTML Basic parsing ⌆ +PASS XHTML Basic parsing ⌅ +PASS XHTML Basic parsing ⎵ +PASS XHTML Basic parsing ⎶ +PASS XHTML Basic parsing ≌ +PASS XHTML Basic parsing Б +PASS XHTML Basic parsing б +PASS XHTML Basic parsing „ +PASS XHTML Basic parsing ∵ +PASS XHTML Basic parsing ∵ +PASS XHTML Basic parsing ∵ +PASS XHTML Basic parsing ⦰ +PASS XHTML Basic parsing ϶ +PASS XHTML Basic parsing ℬ +PASS XHTML Basic parsing ℬ +PASS XHTML Basic parsing Β +PASS XHTML Basic parsing β +PASS XHTML Basic parsing ℶ +PASS XHTML Basic parsing ≬ +PASS XHTML Basic parsing 𝔅 +PASS XHTML Basic parsing 𝔟 +PASS XHTML Basic parsing ⋂ +PASS XHTML Basic parsing ◯ +PASS XHTML Basic parsing ⋃ +PASS XHTML Basic parsing ⨀ +PASS XHTML Basic parsing ⨁ +PASS XHTML Basic parsing ⨂ +PASS XHTML Basic parsing ⨆ +PASS XHTML Basic parsing ★ +PASS XHTML Basic parsing ▽ +PASS XHTML Basic parsing △ +PASS XHTML Basic parsing ⨄ +PASS XHTML Basic parsing ⋁ +PASS XHTML Basic parsing ⋀ +PASS XHTML Basic parsing ⤍ +PASS XHTML Basic parsing ⧫ +PASS XHTML Basic parsing ▪ +PASS XHTML Basic parsing ▴ +PASS XHTML Basic parsing ▾ +PASS XHTML Basic parsing ◂ +PASS XHTML Basic parsing ▸ +PASS XHTML Basic parsing ␣ +PASS XHTML Basic parsing ▒ +PASS XHTML Basic parsing ░ +PASS XHTML Basic parsing ▓ +PASS XHTML Basic parsing █ +PASS XHTML Basic parsing =⃥ +PASS XHTML Basic parsing ≡⃥ +PASS XHTML Basic parsing ⫭ +PASS XHTML Basic parsing ⌐ +PASS XHTML Basic parsing 𝔹 +PASS XHTML Basic parsing 𝕓 +PASS XHTML Basic parsing ⊥ +PASS XHTML Basic parsing ⊥ +PASS XHTML Basic parsing ⋈ +PASS XHTML Basic parsing ⧉ +PASS XHTML Basic parsing ┐ +PASS XHTML Basic parsing ╕ +PASS XHTML Basic parsing ╖ +PASS XHTML Basic parsing ╗ +PASS XHTML Basic parsing ┌ +PASS XHTML Basic parsing ╒ +PASS XHTML Basic parsing ╓ +PASS XHTML Basic parsing ╔ +PASS XHTML Basic parsing ─ +PASS XHTML Basic parsing ═ +PASS XHTML Basic parsing ┬ +PASS XHTML Basic parsing ╤ +PASS XHTML Basic parsing ╥ +PASS XHTML Basic parsing ╦ +PASS XHTML Basic parsing ┴ +PASS XHTML Basic parsing ╧ +PASS XHTML Basic parsing ╨ +PASS XHTML Basic parsing ╩ +PASS XHTML Basic parsing ⊟ +PASS XHTML Basic parsing ⊞ +PASS XHTML Basic parsing ⊠ +PASS XHTML Basic parsing ┘ +PASS XHTML Basic parsing ╛ +PASS XHTML Basic parsing ╜ +PASS XHTML Basic parsing ╝ +PASS XHTML Basic parsing └ +PASS XHTML Basic parsing ╘ +PASS XHTML Basic parsing ╙ +PASS XHTML Basic parsing ╚ +PASS XHTML Basic parsing │ +PASS XHTML Basic parsing ║ +PASS XHTML Basic parsing ┼ +PASS XHTML Basic parsing ╪ +PASS XHTML Basic parsing ╫ +PASS XHTML Basic parsing ╬ +PASS XHTML Basic parsing ┤ +PASS XHTML Basic parsing ╡ +PASS XHTML Basic parsing ╢ +PASS XHTML Basic parsing ╣ +PASS XHTML Basic parsing ├ +PASS XHTML Basic parsing ╞ +PASS XHTML Basic parsing ╟ +PASS XHTML Basic parsing ╠ +PASS XHTML Basic parsing ‵ +PASS XHTML Basic parsing ˘ +PASS XHTML Basic parsing ˘ +PASS XHTML Basic parsing ¦ +PASS XHTML Basic parsing 𝒷 +PASS XHTML Basic parsing ℬ +PASS XHTML Basic parsing ⁏ +PASS XHTML Basic parsing ∽ +PASS XHTML Basic parsing ⋍ +PASS XHTML Basic parsing ⧅ +PASS XHTML Basic parsing \ +PASS XHTML Basic parsing ⟈ +PASS XHTML Basic parsing • +PASS XHTML Basic parsing • +PASS XHTML Basic parsing ≎ +PASS XHTML Basic parsing ⪮ +PASS XHTML Basic parsing ≏ +PASS XHTML Basic parsing ≎ +PASS XHTML Basic parsing ≏ +PASS XHTML Basic parsing Ć +PASS XHTML Basic parsing ć +PASS XHTML Basic parsing ⩄ +PASS XHTML Basic parsing ⩉ +PASS XHTML Basic parsing ⩋ +PASS XHTML Basic parsing ∩ +PASS XHTML Basic parsing ⋒ +PASS XHTML Basic parsing ⩇ +PASS XHTML Basic parsing ⩀ +PASS XHTML Basic parsing ⅅ +PASS XHTML Basic parsing ∩︀ +PASS XHTML Basic parsing ⁁ +PASS XHTML Basic parsing ˇ +PASS XHTML Basic parsing ℭ +PASS XHTML Basic parsing ⩍ +PASS XHTML Basic parsing Č +PASS XHTML Basic parsing č +PASS XHTML Basic parsing Ç +PASS XHTML Basic parsing ç +PASS XHTML Basic parsing Ĉ +PASS XHTML Basic parsing ĉ +PASS XHTML Basic parsing ∰ +PASS XHTML Basic parsing ⩌ +PASS XHTML Basic parsing ⩐ +PASS XHTML Basic parsing Ċ +PASS XHTML Basic parsing ċ +PASS XHTML Basic parsing ¸ +PASS XHTML Basic parsing ¸ +PASS XHTML Basic parsing ⦲ +PASS XHTML Basic parsing ¢ +PASS XHTML Basic parsing · +PASS XHTML Basic parsing · +PASS XHTML Basic parsing 𝔠 +PASS XHTML Basic parsing ℭ +PASS XHTML Basic parsing Ч +PASS XHTML Basic parsing ч +PASS XHTML Basic parsing ✓ +PASS XHTML Basic parsing ✓ +PASS XHTML Basic parsing Χ +PASS XHTML Basic parsing χ +PASS XHTML Basic parsing ˆ +PASS XHTML Basic parsing ≗ +PASS XHTML Basic parsing ↺ +PASS XHTML Basic parsing ↻ +PASS XHTML Basic parsing ⊛ +PASS XHTML Basic parsing ⊚ +PASS XHTML Basic parsing ⊝ +PASS XHTML Basic parsing ⊙ +PASS XHTML Basic parsing ® +PASS XHTML Basic parsing Ⓢ +PASS XHTML Basic parsing ⊖ +PASS XHTML Basic parsing ⊕ +PASS XHTML Basic parsing ⊗ +PASS XHTML Basic parsing ○ +PASS XHTML Basic parsing ⧃ +PASS XHTML Basic parsing ≗ +PASS XHTML Basic parsing ⨐ +PASS XHTML Basic parsing ⫯ +PASS XHTML Basic parsing ⧂ +PASS XHTML Basic parsing ∲ +PASS XHTML Basic parsing ” +PASS XHTML Basic parsing ’ +PASS XHTML Basic parsing ♣ +PASS XHTML Basic parsing ♣ +PASS XHTML Basic parsing : +PASS XHTML Basic parsing ∷ +PASS XHTML Basic parsing ⩴ +PASS XHTML Basic parsing ≔ +PASS XHTML Basic parsing ≔ +PASS XHTML Basic parsing , +PASS XHTML Basic parsing @ +PASS XHTML Basic parsing ∁ +PASS XHTML Basic parsing ∘ +PASS XHTML Basic parsing ∁ +PASS XHTML Basic parsing ℂ +PASS XHTML Basic parsing ≅ +PASS XHTML Basic parsing ⩭ +PASS XHTML Basic parsing ≡ +PASS XHTML Basic parsing ∮ +PASS XHTML Basic parsing ∯ +PASS XHTML Basic parsing ∮ +PASS XHTML Basic parsing 𝕔 +PASS XHTML Basic parsing ℂ +PASS XHTML Basic parsing ∐ +PASS XHTML Basic parsing ∐ +PASS XHTML Basic parsing © +PASS XHTML Basic parsing © +PASS XHTML Basic parsing ℗ +PASS XHTML Basic parsing ∳ +PASS XHTML Basic parsing ↵ +PASS XHTML Basic parsing ✗ +PASS XHTML Basic parsing ⨯ +PASS XHTML Basic parsing 𝒞 +PASS XHTML Basic parsing 𝒸 +PASS XHTML Basic parsing ⫏ +PASS XHTML Basic parsing ⫑ +PASS XHTML Basic parsing ⫐ +PASS XHTML Basic parsing ⫒ +PASS XHTML Basic parsing ⋯ +PASS XHTML Basic parsing ⤸ +PASS XHTML Basic parsing ⤵ +PASS XHTML Basic parsing ⋞ +PASS XHTML Basic parsing ⋟ +PASS XHTML Basic parsing ↶ +PASS XHTML Basic parsing ⤽ +PASS XHTML Basic parsing ⩈ +PASS XHTML Basic parsing ⩆ +PASS XHTML Basic parsing ≍ +PASS XHTML Basic parsing ∪ +PASS XHTML Basic parsing ⋓ +PASS XHTML Basic parsing ⩊ +PASS XHTML Basic parsing ⊍ +PASS XHTML Basic parsing ⩅ +PASS XHTML Basic parsing ∪︀ +PASS XHTML Basic parsing ↷ +PASS XHTML Basic parsing ⤼ +PASS XHTML Basic parsing ⋞ +PASS XHTML Basic parsing ⋟ +PASS XHTML Basic parsing ⋎ +PASS XHTML Basic parsing ⋏ +PASS XHTML Basic parsing ¤ +PASS XHTML Basic parsing ↶ +PASS XHTML Basic parsing ↷ +PASS XHTML Basic parsing ⋎ +PASS XHTML Basic parsing ⋏ +PASS XHTML Basic parsing ∲ +PASS XHTML Basic parsing ∱ +PASS XHTML Basic parsing ⌭ +PASS XHTML Basic parsing † +PASS XHTML Basic parsing ‡ +PASS XHTML Basic parsing ℸ +PASS XHTML Basic parsing ↓ +PASS XHTML Basic parsing ↡ +PASS XHTML Basic parsing ⇓ +PASS XHTML Basic parsing ‐ +PASS XHTML Basic parsing ⫤ +PASS XHTML Basic parsing ⊣ +PASS XHTML Basic parsing ⤏ +PASS XHTML Basic parsing ˝ +PASS XHTML Basic parsing Ď +PASS XHTML Basic parsing ď +PASS XHTML Basic parsing Д +PASS XHTML Basic parsing д +PASS XHTML Basic parsing ‡ +PASS XHTML Basic parsing ⇊ +PASS XHTML Basic parsing ⅅ +PASS XHTML Basic parsing ⅆ +PASS XHTML Basic parsing ⤑ +PASS XHTML Basic parsing ⩷ +PASS XHTML Basic parsing ° +PASS XHTML Basic parsing ∇ +PASS XHTML Basic parsing Δ +PASS XHTML Basic parsing δ +PASS XHTML Basic parsing ⦱ +PASS XHTML Basic parsing ⥿ +PASS XHTML Basic parsing 𝔇 +PASS XHTML Basic parsing 𝔡 +PASS XHTML Basic parsing ⥥ +PASS XHTML Basic parsing ⇃ +PASS XHTML Basic parsing ⇂ +PASS XHTML Basic parsing ´ +PASS XHTML Basic parsing ˙ +PASS XHTML Basic parsing ˝ +PASS XHTML Basic parsing ` +PASS XHTML Basic parsing ˜ +PASS XHTML Basic parsing ⋄ +PASS XHTML Basic parsing ⋄ +PASS XHTML Basic parsing ⋄ +PASS XHTML Basic parsing ♦ +PASS XHTML Basic parsing ♦ +PASS XHTML Basic parsing ¨ +PASS XHTML Basic parsing ⅆ +PASS XHTML Basic parsing ϝ +PASS XHTML Basic parsing ⋲ +PASS XHTML Basic parsing ÷ +PASS XHTML Basic parsing ÷ +PASS XHTML Basic parsing ⋇ +PASS XHTML Basic parsing ⋇ +PASS XHTML Basic parsing Ђ +PASS XHTML Basic parsing ђ +PASS XHTML Basic parsing ⌞ +PASS XHTML Basic parsing ⌍ +PASS XHTML Basic parsing $ +PASS XHTML Basic parsing 𝔻 +PASS XHTML Basic parsing 𝕕 +PASS XHTML Basic parsing ¨ +PASS XHTML Basic parsing ˙ +PASS XHTML Basic parsing ⃜ +PASS XHTML Basic parsing ≐ +PASS XHTML Basic parsing ≑ +PASS XHTML Basic parsing ≐ +PASS XHTML Basic parsing ∸ +PASS XHTML Basic parsing ∔ +PASS XHTML Basic parsing ⊡ +PASS XHTML Basic parsing ⌆ +PASS XHTML Basic parsing ∯ +PASS XHTML Basic parsing ¨ +PASS XHTML Basic parsing ⇓ +PASS XHTML Basic parsing ⇐ +PASS XHTML Basic parsing ⇔ +PASS XHTML Basic parsing ⫤ +PASS XHTML Basic parsing ⟸ +PASS XHTML Basic parsing ⟺ +PASS XHTML Basic parsing ⟹ +PASS XHTML Basic parsing ⇒ +PASS XHTML Basic parsing ⊨ +PASS XHTML Basic parsing ⇑ +PASS XHTML Basic parsing ⇕ +PASS XHTML Basic parsing ∥ +PASS XHTML Basic parsing ⤓ +PASS XHTML Basic parsing ↓ +PASS XHTML Basic parsing ↓ +PASS XHTML Basic parsing ⇓ +PASS XHTML Basic parsing ⇵ +PASS XHTML Basic parsing ̑ +PASS XHTML Basic parsing ⇊ +PASS XHTML Basic parsing ⇃ +PASS XHTML Basic parsing ⇂ +PASS XHTML Basic parsing ⥐ +PASS XHTML Basic parsing ⥞ +PASS XHTML Basic parsing ⥖ +PASS XHTML Basic parsing ↽ +PASS XHTML Basic parsing ⥟ +PASS XHTML Basic parsing ⥗ +PASS XHTML Basic parsing ⇁ +PASS XHTML Basic parsing ↧ +PASS XHTML Basic parsing ⊤ +PASS XHTML Basic parsing ⤐ +PASS XHTML Basic parsing ⌟ +PASS XHTML Basic parsing ⌌ +PASS XHTML Basic parsing 𝒟 +PASS XHTML Basic parsing 𝒹 +PASS XHTML Basic parsing Ѕ +PASS XHTML Basic parsing ѕ +PASS XHTML Basic parsing ⧶ +PASS XHTML Basic parsing Đ +PASS XHTML Basic parsing đ +PASS XHTML Basic parsing ⋱ +PASS XHTML Basic parsing ▿ +PASS XHTML Basic parsing ▾ +PASS XHTML Basic parsing ⇵ +PASS XHTML Basic parsing ⥯ +PASS XHTML Basic parsing ⦦ +PASS XHTML Basic parsing Џ +PASS XHTML Basic parsing џ +PASS XHTML Basic parsing ⟿ +PASS XHTML Basic parsing É +PASS XHTML Basic parsing é +PASS XHTML Basic parsing ⩮ +PASS XHTML Basic parsing Ě +PASS XHTML Basic parsing ě +PASS XHTML Basic parsing Ê +PASS XHTML Basic parsing ê +PASS XHTML Basic parsing ≖ +PASS XHTML Basic parsing ≕ +PASS XHTML Basic parsing Э +PASS XHTML Basic parsing э +PASS XHTML Basic parsing ⩷ +PASS XHTML Basic parsing Ė +PASS XHTML Basic parsing ė +PASS XHTML Basic parsing ≑ +PASS XHTML Basic parsing ⅇ +PASS XHTML Basic parsing ≒ +PASS XHTML Basic parsing 𝔈 +PASS XHTML Basic parsing 𝔢 +PASS XHTML Basic parsing ⪚ +PASS XHTML Basic parsing È +PASS XHTML Basic parsing è +PASS XHTML Basic parsing ⪖ +PASS XHTML Basic parsing ⪘ +PASS XHTML Basic parsing ⪙ +PASS XHTML Basic parsing ∈ +PASS XHTML Basic parsing ⏧ +PASS XHTML Basic parsing ℓ +PASS XHTML Basic parsing ⪕ +PASS XHTML Basic parsing ⪗ +PASS XHTML Basic parsing Ē +PASS XHTML Basic parsing ē +PASS XHTML Basic parsing ∅ +PASS XHTML Basic parsing ∅ +PASS XHTML Basic parsing ◻ +PASS XHTML Basic parsing ∅ +PASS XHTML Basic parsing ▫ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing   +PASS XHTML Basic parsing   +PASS XHTML Basic parsing Ŋ +PASS XHTML Basic parsing ŋ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing Ę +PASS XHTML Basic parsing ę +PASS XHTML Basic parsing 𝔼 +PASS XHTML Basic parsing 𝕖 +PASS XHTML Basic parsing ⋕ +PASS XHTML Basic parsing ⧣ +PASS XHTML Basic parsing ⩱ +PASS XHTML Basic parsing ε +PASS XHTML Basic parsing Ε +PASS XHTML Basic parsing ε +PASS XHTML Basic parsing ϵ +PASS XHTML Basic parsing ≖ +PASS XHTML Basic parsing ≕ +PASS XHTML Basic parsing ≂ +PASS XHTML Basic parsing ⪖ +PASS XHTML Basic parsing ⪕ +PASS XHTML Basic parsing ⩵ +PASS XHTML Basic parsing = +PASS XHTML Basic parsing ≂ +PASS XHTML Basic parsing ≟ +PASS XHTML Basic parsing ⇌ +PASS XHTML Basic parsing ≡ +PASS XHTML Basic parsing ⩸ +PASS XHTML Basic parsing ⧥ +PASS XHTML Basic parsing ⥱ +PASS XHTML Basic parsing ≓ +PASS XHTML Basic parsing ℯ +PASS XHTML Basic parsing ℰ +PASS XHTML Basic parsing ≐ +PASS XHTML Basic parsing ⩳ +PASS XHTML Basic parsing ≂ +PASS XHTML Basic parsing Η +PASS XHTML Basic parsing η +PASS XHTML Basic parsing Ð +PASS XHTML Basic parsing ð +PASS XHTML Basic parsing Ë +PASS XHTML Basic parsing ë +PASS XHTML Basic parsing € +PASS XHTML Basic parsing ! +PASS XHTML Basic parsing ∃ +PASS XHTML Basic parsing ∃ +PASS XHTML Basic parsing ℰ +PASS XHTML Basic parsing ⅇ +PASS XHTML Basic parsing ⅇ +PASS XHTML Basic parsing ≒ +PASS XHTML Basic parsing Ф +PASS XHTML Basic parsing ф +PASS XHTML Basic parsing ♀ +PASS XHTML Basic parsing ffi +PASS XHTML Basic parsing ff +PASS XHTML Basic parsing ffl +PASS XHTML Basic parsing 𝔉 +PASS XHTML Basic parsing 𝔣 +PASS XHTML Basic parsing fi +PASS XHTML Basic parsing ◼ +PASS XHTML Basic parsing ▪ +PASS XHTML Basic parsing fj +PASS XHTML Basic parsing ♭ +PASS XHTML Basic parsing fl +PASS XHTML Basic parsing ▱ +PASS XHTML Basic parsing ƒ +PASS XHTML Basic parsing 𝔽 +PASS XHTML Basic parsing 𝕗 +PASS XHTML Basic parsing ∀ +PASS XHTML Basic parsing ∀ +PASS XHTML Basic parsing ⋔ +PASS XHTML Basic parsing ⫙ +PASS XHTML Basic parsing ℱ +PASS XHTML Basic parsing ⨍ +PASS XHTML Basic parsing ½ +PASS XHTML Basic parsing ⅓ +PASS XHTML Basic parsing ¼ +PASS XHTML Basic parsing ⅕ +PASS XHTML Basic parsing ⅙ +PASS XHTML Basic parsing ⅛ +PASS XHTML Basic parsing ⅔ +PASS XHTML Basic parsing ⅖ +PASS XHTML Basic parsing ¾ +PASS XHTML Basic parsing ⅗ +PASS XHTML Basic parsing ⅜ +PASS XHTML Basic parsing ⅘ +PASS XHTML Basic parsing ⅚ +PASS XHTML Basic parsing ⅝ +PASS XHTML Basic parsing ⅞ +PASS XHTML Basic parsing ⁄ +PASS XHTML Basic parsing ⌢ +PASS XHTML Basic parsing 𝒻 +PASS XHTML Basic parsing ℱ +PASS XHTML Basic parsing ǵ +PASS XHTML Basic parsing Γ +PASS XHTML Basic parsing γ +PASS XHTML Basic parsing Ϝ +PASS XHTML Basic parsing ϝ +PASS XHTML Basic parsing ⪆ +PASS XHTML Basic parsing Ğ +PASS XHTML Basic parsing ğ +PASS XHTML Basic parsing Ģ +PASS XHTML Basic parsing Ĝ +PASS XHTML Basic parsing ĝ +PASS XHTML Basic parsing Г +PASS XHTML Basic parsing г +PASS XHTML Basic parsing Ġ +PASS XHTML Basic parsing ġ +PASS XHTML Basic parsing ≥ +PASS XHTML Basic parsing ≧ +PASS XHTML Basic parsing ⪌ +PASS XHTML Basic parsing ⋛ +PASS XHTML Basic parsing ≥ +PASS XHTML Basic parsing ≧ +PASS XHTML Basic parsing ⩾ +PASS XHTML Basic parsing ⪩ +PASS XHTML Basic parsing ⩾ +PASS XHTML Basic parsing ⪀ +PASS XHTML Basic parsing ⪂ +PASS XHTML Basic parsing ⪄ +PASS XHTML Basic parsing ⋛︀ +PASS XHTML Basic parsing ⪔ +PASS XHTML Basic parsing 𝔊 +PASS XHTML Basic parsing 𝔤 +PASS XHTML Basic parsing ≫ +PASS XHTML Basic parsing ⋙ +PASS XHTML Basic parsing ⋙ +PASS XHTML Basic parsing ℷ +PASS XHTML Basic parsing Ѓ +PASS XHTML Basic parsing ѓ +PASS XHTML Basic parsing ⪥ +PASS XHTML Basic parsing ≷ +PASS XHTML Basic parsing ⪒ +PASS XHTML Basic parsing ⪤ +PASS XHTML Basic parsing ⪊ +PASS XHTML Basic parsing ⪊ +PASS XHTML Basic parsing ⪈ +PASS XHTML Basic parsing ≩ +PASS XHTML Basic parsing ⪈ +PASS XHTML Basic parsing ≩ +PASS XHTML Basic parsing ⋧ +PASS XHTML Basic parsing 𝔾 +PASS XHTML Basic parsing 𝕘 +PASS XHTML Basic parsing ` +PASS XHTML Basic parsing ≥ +PASS XHTML Basic parsing ⋛ +PASS XHTML Basic parsing ≧ +PASS XHTML Basic parsing ⪢ +PASS XHTML Basic parsing ≷ +PASS XHTML Basic parsing ⩾ +PASS XHTML Basic parsing ≳ +PASS XHTML Basic parsing 𝒢 +PASS XHTML Basic parsing ℊ +PASS XHTML Basic parsing ≳ +PASS XHTML Basic parsing ⪎ +PASS XHTML Basic parsing ⪐ +PASS XHTML Basic parsing ⪧ +PASS XHTML Basic parsing ⩺ +PASS XHTML Basic parsing > +PASS XHTML Basic parsing > +PASS XHTML Basic parsing ≫ +PASS XHTML Basic parsing ⋗ +PASS XHTML Basic parsing ⦕ +PASS XHTML Basic parsing ⩼ +PASS XHTML Basic parsing ⪆ +PASS XHTML Basic parsing ⥸ +PASS XHTML Basic parsing ⋗ +PASS XHTML Basic parsing ⋛ +PASS XHTML Basic parsing ⪌ +PASS XHTML Basic parsing ≷ +PASS XHTML Basic parsing ≳ +PASS XHTML Basic parsing ≩︀ +PASS XHTML Basic parsing ≩︀ +PASS XHTML Basic parsing ˇ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing ½ +PASS XHTML Basic parsing ℋ +PASS XHTML Basic parsing Ъ +PASS XHTML Basic parsing ъ +PASS XHTML Basic parsing ⥈ +PASS XHTML Basic parsing ↔ +PASS XHTML Basic parsing ⇔ +PASS XHTML Basic parsing ↭ +PASS XHTML Basic parsing ^ +PASS XHTML Basic parsing ℏ +PASS XHTML Basic parsing Ĥ +PASS XHTML Basic parsing ĥ +PASS XHTML Basic parsing ♥ +PASS XHTML Basic parsing ♥ +PASS XHTML Basic parsing … +PASS XHTML Basic parsing ⊹ +PASS XHTML Basic parsing 𝔥 +PASS XHTML Basic parsing ℌ +PASS XHTML Basic parsing ℋ +PASS XHTML Basic parsing ⤥ +PASS XHTML Basic parsing ⤦ +PASS XHTML Basic parsing ⇿ +PASS XHTML Basic parsing ∻ +PASS XHTML Basic parsing ↩ +PASS XHTML Basic parsing ↪ +PASS XHTML Basic parsing 𝕙 +PASS XHTML Basic parsing ℍ +PASS XHTML Basic parsing ― +PASS XHTML Basic parsing ─ +PASS XHTML Basic parsing 𝒽 +PASS XHTML Basic parsing ℋ +PASS XHTML Basic parsing ℏ +PASS XHTML Basic parsing Ħ +PASS XHTML Basic parsing ħ +PASS XHTML Basic parsing ≎ +PASS XHTML Basic parsing ≏ +PASS XHTML Basic parsing ⁃ +PASS XHTML Basic parsing ‐ +PASS XHTML Basic parsing Í +PASS XHTML Basic parsing í +PASS XHTML Basic parsing ⁣ +PASS XHTML Basic parsing Î +PASS XHTML Basic parsing î +PASS XHTML Basic parsing И +PASS XHTML Basic parsing и +PASS XHTML Basic parsing İ +PASS XHTML Basic parsing Е +PASS XHTML Basic parsing е +PASS XHTML Basic parsing ¡ +PASS XHTML Basic parsing ⇔ +PASS XHTML Basic parsing 𝔦 +PASS XHTML Basic parsing ℑ +PASS XHTML Basic parsing Ì +PASS XHTML Basic parsing ì +PASS XHTML Basic parsing ⅈ +PASS XHTML Basic parsing ⨌ +PASS XHTML Basic parsing ∭ +PASS XHTML Basic parsing ⧜ +PASS XHTML Basic parsing ℩ +PASS XHTML Basic parsing IJ +PASS XHTML Basic parsing ij +PASS XHTML Basic parsing Ī +PASS XHTML Basic parsing ī +PASS XHTML Basic parsing ℑ +PASS XHTML Basic parsing ⅈ +PASS XHTML Basic parsing ℐ +PASS XHTML Basic parsing ℑ +PASS XHTML Basic parsing ı +PASS XHTML Basic parsing ℑ +PASS XHTML Basic parsing ⊷ +PASS XHTML Basic parsing Ƶ +PASS XHTML Basic parsing ⇒ +PASS XHTML Basic parsing ℅ +PASS XHTML Basic parsing ∈ +PASS XHTML Basic parsing ∞ +PASS XHTML Basic parsing ⧝ +PASS XHTML Basic parsing ı +PASS XHTML Basic parsing ⊺ +PASS XHTML Basic parsing ∫ +PASS XHTML Basic parsing ∬ +PASS XHTML Basic parsing ℤ +PASS XHTML Basic parsing ∫ +PASS XHTML Basic parsing ⊺ +PASS XHTML Basic parsing ⋂ +PASS XHTML Basic parsing ⨗ +PASS XHTML Basic parsing ⨼ +PASS XHTML Basic parsing ⁣ +PASS XHTML Basic parsing ⁢ +PASS XHTML Basic parsing Ё +PASS XHTML Basic parsing ё +PASS XHTML Basic parsing Į +PASS XHTML Basic parsing į +PASS XHTML Basic parsing 𝕀 +PASS XHTML Basic parsing 𝕚 +PASS XHTML Basic parsing Ι +PASS XHTML Basic parsing ι +PASS XHTML Basic parsing ⨼ +PASS XHTML Basic parsing ¿ +PASS XHTML Basic parsing 𝒾 +PASS XHTML Basic parsing ℐ +PASS XHTML Basic parsing ∈ +PASS XHTML Basic parsing ⋵ +PASS XHTML Basic parsing ⋹ +PASS XHTML Basic parsing ⋴ +PASS XHTML Basic parsing ⋳ +PASS XHTML Basic parsing ∈ +PASS XHTML Basic parsing ⁢ +PASS XHTML Basic parsing Ĩ +PASS XHTML Basic parsing ĩ +PASS XHTML Basic parsing І +PASS XHTML Basic parsing і +PASS XHTML Basic parsing Ï +PASS XHTML Basic parsing ï +PASS XHTML Basic parsing Ĵ +PASS XHTML Basic parsing ĵ +PASS XHTML Basic parsing Й +PASS XHTML Basic parsing й +PASS XHTML Basic parsing 𝔍 +PASS XHTML Basic parsing 𝔧 +PASS XHTML Basic parsing ȷ +PASS XHTML Basic parsing 𝕁 +PASS XHTML Basic parsing 𝕛 +PASS XHTML Basic parsing 𝒥 +PASS XHTML Basic parsing 𝒿 +PASS XHTML Basic parsing Ј +PASS XHTML Basic parsing ј +PASS XHTML Basic parsing Є +PASS XHTML Basic parsing є +PASS XHTML Basic parsing Κ +PASS XHTML Basic parsing κ +PASS XHTML Basic parsing ϰ +PASS XHTML Basic parsing Ķ +PASS XHTML Basic parsing ķ +PASS XHTML Basic parsing К +PASS XHTML Basic parsing к +PASS XHTML Basic parsing 𝔎 +PASS XHTML Basic parsing 𝔨 +PASS XHTML Basic parsing ĸ +PASS XHTML Basic parsing Х +PASS XHTML Basic parsing х +PASS XHTML Basic parsing Ќ +PASS XHTML Basic parsing ќ +PASS XHTML Basic parsing 𝕂 +PASS XHTML Basic parsing 𝕜 +PASS XHTML Basic parsing 𝒦 +PASS XHTML Basic parsing 𝓀 +PASS XHTML Basic parsing ⇚ +PASS XHTML Basic parsing Ĺ +PASS XHTML Basic parsing ĺ +PASS XHTML Basic parsing ⦴ +PASS XHTML Basic parsing ℒ +PASS XHTML Basic parsing Λ +PASS XHTML Basic parsing λ +PASS XHTML Basic parsing ⟨ +PASS XHTML Basic parsing ⟪ +PASS XHTML Basic parsing ⦑ +PASS XHTML Basic parsing ⟨ +PASS XHTML Basic parsing ⪅ +PASS XHTML Basic parsing ℒ +PASS XHTML Basic parsing « +PASS XHTML Basic parsing ⇤ +PASS XHTML Basic parsing ⤟ +PASS XHTML Basic parsing ← +PASS XHTML Basic parsing ↞ +PASS XHTML Basic parsing ⇐ +PASS XHTML Basic parsing ⤝ +PASS XHTML Basic parsing ↩ +PASS XHTML Basic parsing ↫ +PASS XHTML Basic parsing ⤹ +PASS XHTML Basic parsing ⥳ +PASS XHTML Basic parsing ↢ +PASS XHTML Basic parsing ⤙ +PASS XHTML Basic parsing ⤛ +PASS XHTML Basic parsing ⪫ +PASS XHTML Basic parsing ⪭ +PASS XHTML Basic parsing ⪭︀ +PASS XHTML Basic parsing ⤌ +PASS XHTML Basic parsing ⤎ +PASS XHTML Basic parsing ❲ +PASS XHTML Basic parsing { +PASS XHTML Basic parsing [ +PASS XHTML Basic parsing ⦋ +PASS XHTML Basic parsing ⦏ +PASS XHTML Basic parsing ⦍ +PASS XHTML Basic parsing Ľ +PASS XHTML Basic parsing ľ +PASS XHTML Basic parsing Ļ +PASS XHTML Basic parsing ļ +PASS XHTML Basic parsing ⌈ +PASS XHTML Basic parsing { +PASS XHTML Basic parsing Л +PASS XHTML Basic parsing л +PASS XHTML Basic parsing ⤶ +PASS XHTML Basic parsing “ +PASS XHTML Basic parsing „ +PASS XHTML Basic parsing ⥧ +PASS XHTML Basic parsing ⥋ +PASS XHTML Basic parsing ↲ +PASS XHTML Basic parsing ≤ +PASS XHTML Basic parsing ≦ +PASS XHTML Basic parsing ⟨ +PASS XHTML Basic parsing ⇤ +PASS XHTML Basic parsing ← +PASS XHTML Basic parsing ← +PASS XHTML Basic parsing ⇐ +PASS XHTML Basic parsing ⇆ +PASS XHTML Basic parsing ↢ +PASS XHTML Basic parsing ⌈ +PASS XHTML Basic parsing ⟦ +PASS XHTML Basic parsing ⥡ +PASS XHTML Basic parsing ⥙ +PASS XHTML Basic parsing ⇃ +PASS XHTML Basic parsing ⌊ +PASS XHTML Basic parsing ↽ +PASS XHTML Basic parsing ↼ +PASS XHTML Basic parsing ⇇ +PASS XHTML Basic parsing ↔ +PASS XHTML Basic parsing ↔ +PASS XHTML Basic parsing ⇔ +PASS XHTML Basic parsing ⇆ +PASS XHTML Basic parsing ⇋ +PASS XHTML Basic parsing ↭ +PASS XHTML Basic parsing ⥎ +PASS XHTML Basic parsing ↤ +PASS XHTML Basic parsing ⊣ +PASS XHTML Basic parsing ⥚ +PASS XHTML Basic parsing ⋋ +PASS XHTML Basic parsing ⧏ +PASS XHTML Basic parsing ⊲ +PASS XHTML Basic parsing ⊴ +PASS XHTML Basic parsing ⥑ +PASS XHTML Basic parsing ⥠ +PASS XHTML Basic parsing ⥘ +PASS XHTML Basic parsing ↿ +PASS XHTML Basic parsing ⥒ +PASS XHTML Basic parsing ↼ +PASS XHTML Basic parsing ⪋ +PASS XHTML Basic parsing ⋚ +PASS XHTML Basic parsing ≤ +PASS XHTML Basic parsing ≦ +PASS XHTML Basic parsing ⩽ +PASS XHTML Basic parsing ⪨ +PASS XHTML Basic parsing ⩽ +PASS XHTML Basic parsing ⩿ +PASS XHTML Basic parsing ⪁ +PASS XHTML Basic parsing ⪃ +PASS XHTML Basic parsing ⋚︀ +PASS XHTML Basic parsing ⪓ +PASS XHTML Basic parsing ⪅ +PASS XHTML Basic parsing ⋖ +PASS XHTML Basic parsing ⋚ +PASS XHTML Basic parsing ⪋ +PASS XHTML Basic parsing ⋚ +PASS XHTML Basic parsing ≦ +PASS XHTML Basic parsing ≶ +PASS XHTML Basic parsing ≶ +PASS XHTML Basic parsing ⪡ +PASS XHTML Basic parsing ≲ +PASS XHTML Basic parsing ⩽ +PASS XHTML Basic parsing ≲ +PASS XHTML Basic parsing ⥼ +PASS XHTML Basic parsing ⌊ +PASS XHTML Basic parsing 𝔏 +PASS XHTML Basic parsing 𝔩 +PASS XHTML Basic parsing ≶ +PASS XHTML Basic parsing ⪑ +PASS XHTML Basic parsing ⥢ +PASS XHTML Basic parsing ↽ +PASS XHTML Basic parsing ↼ +PASS XHTML Basic parsing ⥪ +PASS XHTML Basic parsing ▄ +PASS XHTML Basic parsing Љ +PASS XHTML Basic parsing љ +PASS XHTML Basic parsing ⇇ +PASS XHTML Basic parsing ≪ +PASS XHTML Basic parsing ⋘ +PASS XHTML Basic parsing ⌞ +PASS XHTML Basic parsing ⇚ +PASS XHTML Basic parsing ⥫ +PASS XHTML Basic parsing ◺ +PASS XHTML Basic parsing Ŀ +PASS XHTML Basic parsing ŀ +PASS XHTML Basic parsing ⎰ +PASS XHTML Basic parsing ⎰ +PASS XHTML Basic parsing ⪉ +PASS XHTML Basic parsing ⪉ +PASS XHTML Basic parsing ⪇ +PASS XHTML Basic parsing ≨ +PASS XHTML Basic parsing ⪇ +PASS XHTML Basic parsing ≨ +PASS XHTML Basic parsing ⋦ +PASS XHTML Basic parsing ⟬ +PASS XHTML Basic parsing ⇽ +PASS XHTML Basic parsing ⟦ +PASS XHTML Basic parsing ⟵ +PASS XHTML Basic parsing ⟵ +PASS XHTML Basic parsing ⟸ +PASS XHTML Basic parsing ⟷ +PASS XHTML Basic parsing ⟷ +PASS XHTML Basic parsing ⟺ +PASS XHTML Basic parsing ⟼ +PASS XHTML Basic parsing ⟶ +PASS XHTML Basic parsing ⟶ +PASS XHTML Basic parsing ⟹ +PASS XHTML Basic parsing ↫ +PASS XHTML Basic parsing ↬ +PASS XHTML Basic parsing ⦅ +PASS XHTML Basic parsing 𝕃 +PASS XHTML Basic parsing 𝕝 +PASS XHTML Basic parsing ⨭ +PASS XHTML Basic parsing ⨴ +PASS XHTML Basic parsing ∗ +PASS XHTML Basic parsing _ +PASS XHTML Basic parsing ↙ +PASS XHTML Basic parsing ↘ +PASS XHTML Basic parsing ◊ +PASS XHTML Basic parsing ◊ +PASS XHTML Basic parsing ⧫ +PASS XHTML Basic parsing ( +PASS XHTML Basic parsing ⦓ +PASS XHTML Basic parsing ⇆ +PASS XHTML Basic parsing ⌟ +PASS XHTML Basic parsing ⇋ +PASS XHTML Basic parsing ⥭ +PASS XHTML Basic parsing ‎ +PASS XHTML Basic parsing ⊿ +PASS XHTML Basic parsing ‹ +PASS XHTML Basic parsing 𝓁 +PASS XHTML Basic parsing ℒ +PASS XHTML Basic parsing ↰ +PASS XHTML Basic parsing ↰ +PASS XHTML Basic parsing ≲ +PASS XHTML Basic parsing ⪍ +PASS XHTML Basic parsing ⪏ +PASS XHTML Basic parsing [ +PASS XHTML Basic parsing ‘ +PASS XHTML Basic parsing ‚ +PASS XHTML Basic parsing Ł +PASS XHTML Basic parsing ł +PASS XHTML Basic parsing ⪦ +PASS XHTML Basic parsing ⩹ +PASS XHTML Basic parsing < +FAIL XHTML Basic parsing < assert_true: expected true got false +PASS XHTML Basic parsing ≪ +PASS XHTML Basic parsing ⋖ +PASS XHTML Basic parsing ⋋ +PASS XHTML Basic parsing ⋉ +PASS XHTML Basic parsing ⥶ +PASS XHTML Basic parsing ⩻ +PASS XHTML Basic parsing ◃ +PASS XHTML Basic parsing ⊴ +PASS XHTML Basic parsing ◂ +PASS XHTML Basic parsing ⦖ +PASS XHTML Basic parsing ⥊ +PASS XHTML Basic parsing ⥦ +PASS XHTML Basic parsing ≨︀ +PASS XHTML Basic parsing ≨︀ +PASS XHTML Basic parsing ¯ +PASS XHTML Basic parsing ♂ +PASS XHTML Basic parsing ✠ +PASS XHTML Basic parsing ✠ +PASS XHTML Basic parsing ⤅ +PASS XHTML Basic parsing ↦ +PASS XHTML Basic parsing ↦ +PASS XHTML Basic parsing ↧ +PASS XHTML Basic parsing ↤ +PASS XHTML Basic parsing ↥ +PASS XHTML Basic parsing ▮ +PASS XHTML Basic parsing ⨩ +PASS XHTML Basic parsing М +PASS XHTML Basic parsing м +PASS XHTML Basic parsing — +PASS XHTML Basic parsing ∺ +PASS XHTML Basic parsing ∡ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing ℳ +PASS XHTML Basic parsing 𝔐 +PASS XHTML Basic parsing 𝔪 +PASS XHTML Basic parsing ℧ +PASS XHTML Basic parsing µ +PASS XHTML Basic parsing * +PASS XHTML Basic parsing ⫰ +PASS XHTML Basic parsing ∣ +PASS XHTML Basic parsing · +PASS XHTML Basic parsing ⊟ +PASS XHTML Basic parsing − +PASS XHTML Basic parsing ∸ +PASS XHTML Basic parsing ⨪ +PASS XHTML Basic parsing ∓ +PASS XHTML Basic parsing ⫛ +PASS XHTML Basic parsing … +PASS XHTML Basic parsing ∓ +PASS XHTML Basic parsing ⊧ +PASS XHTML Basic parsing 𝕄 +PASS XHTML Basic parsing 𝕞 +PASS XHTML Basic parsing ∓ +PASS XHTML Basic parsing 𝓂 +PASS XHTML Basic parsing ℳ +PASS XHTML Basic parsing ∾ +PASS XHTML Basic parsing Μ +PASS XHTML Basic parsing μ +PASS XHTML Basic parsing ⊸ +PASS XHTML Basic parsing ⊸ +PASS XHTML Basic parsing ∇ +PASS XHTML Basic parsing Ń +PASS XHTML Basic parsing ń +PASS XHTML Basic parsing ∠⃒ +PASS XHTML Basic parsing ≉ +PASS XHTML Basic parsing ⩰̸ +PASS XHTML Basic parsing ≋̸ +PASS XHTML Basic parsing ʼn +PASS XHTML Basic parsing ≉ +PASS XHTML Basic parsing ♮ +PASS XHTML Basic parsing ℕ +PASS XHTML Basic parsing ♮ +PASS XHTML Basic parsing +PASS XHTML Basic parsing ≎̸ +PASS XHTML Basic parsing ≏̸ +PASS XHTML Basic parsing ⩃ +PASS XHTML Basic parsing Ň +PASS XHTML Basic parsing ň +PASS XHTML Basic parsing Ņ +PASS XHTML Basic parsing ņ +PASS XHTML Basic parsing ≇ +PASS XHTML Basic parsing ⩭̸ +PASS XHTML Basic parsing ⩂ +PASS XHTML Basic parsing Н +PASS XHTML Basic parsing н +PASS XHTML Basic parsing – +PASS XHTML Basic parsing ⤤ +PASS XHTML Basic parsing ↗ +PASS XHTML Basic parsing ⇗ +PASS XHTML Basic parsing ↗ +PASS XHTML Basic parsing ≠ +PASS XHTML Basic parsing ≐̸ +PASS XHTML Basic parsing ​ +PASS XHTML Basic parsing ​ +PASS XHTML Basic parsing ​ +PASS XHTML Basic parsing ​ +PASS XHTML Basic parsing ≢ +PASS XHTML Basic parsing ⤨ +PASS XHTML Basic parsing ≂̸ +PASS XHTML Basic parsing ≫ +PASS XHTML Basic parsing ≪ +PASS XHTML Basic parsing 
 +PASS XHTML Basic parsing ∄ +PASS XHTML Basic parsing ∄ +PASS XHTML Basic parsing 𝔑 +PASS XHTML Basic parsing 𝔫 +PASS XHTML Basic parsing ≧̸ +PASS XHTML Basic parsing ≱ +PASS XHTML Basic parsing ≱ +PASS XHTML Basic parsing ≧̸ +PASS XHTML Basic parsing ⩾̸ +PASS XHTML Basic parsing ⩾̸ +PASS XHTML Basic parsing ⋙̸ +PASS XHTML Basic parsing ≵ +PASS XHTML Basic parsing ≫⃒ +PASS XHTML Basic parsing ≯ +PASS XHTML Basic parsing ≯ +PASS XHTML Basic parsing ≫̸ +PASS XHTML Basic parsing ↮ +PASS XHTML Basic parsing ⇎ +PASS XHTML Basic parsing ⫲ +PASS XHTML Basic parsing ∋ +PASS XHTML Basic parsing ⋼ +PASS XHTML Basic parsing ⋺ +PASS XHTML Basic parsing ∋ +PASS XHTML Basic parsing Њ +PASS XHTML Basic parsing њ +PASS XHTML Basic parsing ↚ +PASS XHTML Basic parsing ⇍ +PASS XHTML Basic parsing ‥ +PASS XHTML Basic parsing ≦̸ +PASS XHTML Basic parsing ≰ +PASS XHTML Basic parsing ↚ +PASS XHTML Basic parsing ⇍ +PASS XHTML Basic parsing ↮ +PASS XHTML Basic parsing ⇎ +PASS XHTML Basic parsing ≰ +PASS XHTML Basic parsing ≦̸ +PASS XHTML Basic parsing ⩽̸ +PASS XHTML Basic parsing ⩽̸ +PASS XHTML Basic parsing ≮ +PASS XHTML Basic parsing ⋘̸ +PASS XHTML Basic parsing ≴ +PASS XHTML Basic parsing ≪⃒ +PASS XHTML Basic parsing ≮ +PASS XHTML Basic parsing ⋪ +PASS XHTML Basic parsing ⋬ +PASS XHTML Basic parsing ≪̸ +PASS XHTML Basic parsing ∤ +PASS XHTML Basic parsing ⁠ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing 𝕟 +PASS XHTML Basic parsing ℕ +PASS XHTML Basic parsing ⫬ +PASS XHTML Basic parsing ¬ +PASS XHTML Basic parsing ≢ +PASS XHTML Basic parsing ≭ +PASS XHTML Basic parsing ∦ +PASS XHTML Basic parsing ∉ +PASS XHTML Basic parsing ≠ +PASS XHTML Basic parsing ≂̸ +PASS XHTML Basic parsing ∄ +PASS XHTML Basic parsing ≯ +PASS XHTML Basic parsing ≱ +PASS XHTML Basic parsing ≧̸ +PASS XHTML Basic parsing ≫̸ +PASS XHTML Basic parsing ≹ +PASS XHTML Basic parsing ⩾̸ +PASS XHTML Basic parsing ≵ +PASS XHTML Basic parsing ≎̸ +PASS XHTML Basic parsing ≏̸ +PASS XHTML Basic parsing ∉ +PASS XHTML Basic parsing ⋵̸ +PASS XHTML Basic parsing ⋹̸ +PASS XHTML Basic parsing ∉ +PASS XHTML Basic parsing ⋷ +PASS XHTML Basic parsing ⋶ +PASS XHTML Basic parsing ⧏̸ +PASS XHTML Basic parsing ⋪ +PASS XHTML Basic parsing ⋬ +PASS XHTML Basic parsing ≮ +PASS XHTML Basic parsing ≰ +PASS XHTML Basic parsing ≸ +PASS XHTML Basic parsing ≪̸ +PASS XHTML Basic parsing ⩽̸ +PASS XHTML Basic parsing ≴ +PASS XHTML Basic parsing ⪢̸ +PASS XHTML Basic parsing ⪡̸ +PASS XHTML Basic parsing ∌ +PASS XHTML Basic parsing ∌ +PASS XHTML Basic parsing ⋾ +PASS XHTML Basic parsing ⋽ +PASS XHTML Basic parsing ⊀ +PASS XHTML Basic parsing ⪯̸ +PASS XHTML Basic parsing ⋠ +PASS XHTML Basic parsing ∌ +PASS XHTML Basic parsing ⧐̸ +PASS XHTML Basic parsing ⋫ +PASS XHTML Basic parsing ⋭ +PASS XHTML Basic parsing ⊏̸ +PASS XHTML Basic parsing ⋢ +PASS XHTML Basic parsing ⊐̸ +PASS XHTML Basic parsing ⋣ +PASS XHTML Basic parsing ⊂⃒ +PASS XHTML Basic parsing ⊈ +PASS XHTML Basic parsing ⊁ +PASS XHTML Basic parsing ⪰̸ +PASS XHTML Basic parsing ⋡ +PASS XHTML Basic parsing ≿̸ +PASS XHTML Basic parsing ⊃⃒ +PASS XHTML Basic parsing ⊉ +PASS XHTML Basic parsing ≁ +PASS XHTML Basic parsing ≄ +PASS XHTML Basic parsing ≇ +PASS XHTML Basic parsing ≉ +PASS XHTML Basic parsing ∤ +PASS XHTML Basic parsing ∦ +PASS XHTML Basic parsing ∦ +PASS XHTML Basic parsing ⫽⃥ +PASS XHTML Basic parsing ∂̸ +PASS XHTML Basic parsing ⨔ +PASS XHTML Basic parsing ⊀ +PASS XHTML Basic parsing ⋠ +PASS XHTML Basic parsing ⊀ +PASS XHTML Basic parsing ⪯̸ +PASS XHTML Basic parsing ⪯̸ +PASS XHTML Basic parsing ⤳̸ +PASS XHTML Basic parsing ↛ +PASS XHTML Basic parsing ⇏ +PASS XHTML Basic parsing ↝̸ +PASS XHTML Basic parsing ↛ +PASS XHTML Basic parsing ⇏ +PASS XHTML Basic parsing ⋫ +PASS XHTML Basic parsing ⋭ +PASS XHTML Basic parsing ⊁ +PASS XHTML Basic parsing ⋡ +PASS XHTML Basic parsing ⪰̸ +PASS XHTML Basic parsing 𝒩 +PASS XHTML Basic parsing 𝓃 +PASS XHTML Basic parsing ∤ +PASS XHTML Basic parsing ∦ +PASS XHTML Basic parsing ≁ +PASS XHTML Basic parsing ≄ +PASS XHTML Basic parsing ≄ +PASS XHTML Basic parsing ∤ +PASS XHTML Basic parsing ∦ +PASS XHTML Basic parsing ⋢ +PASS XHTML Basic parsing ⋣ +PASS XHTML Basic parsing ⊄ +PASS XHTML Basic parsing ⫅̸ +PASS XHTML Basic parsing ⊈ +PASS XHTML Basic parsing ⊂⃒ +PASS XHTML Basic parsing ⊈ +PASS XHTML Basic parsing ⫅̸ +PASS XHTML Basic parsing ⊁ +PASS XHTML Basic parsing ⪰̸ +PASS XHTML Basic parsing ⊅ +PASS XHTML Basic parsing ⫆̸ +PASS XHTML Basic parsing ⊉ +PASS XHTML Basic parsing ⊃⃒ +PASS XHTML Basic parsing ⊉ +PASS XHTML Basic parsing ⫆̸ +PASS XHTML Basic parsing ≹ +PASS XHTML Basic parsing Ñ +PASS XHTML Basic parsing ñ +PASS XHTML Basic parsing ≸ +PASS XHTML Basic parsing ⋪ +PASS XHTML Basic parsing ⋬ +PASS XHTML Basic parsing ⋫ +PASS XHTML Basic parsing ⋭ +PASS XHTML Basic parsing Ν +PASS XHTML Basic parsing ν +PASS XHTML Basic parsing # +PASS XHTML Basic parsing № +PASS XHTML Basic parsing   +PASS XHTML Basic parsing ≍⃒ +PASS XHTML Basic parsing ⊬ +PASS XHTML Basic parsing ⊭ +PASS XHTML Basic parsing ⊮ +PASS XHTML Basic parsing ⊯ +PASS XHTML Basic parsing ≥⃒ +PASS XHTML Basic parsing >⃒ +PASS XHTML Basic parsing ⤄ +PASS XHTML Basic parsing ⧞ +PASS XHTML Basic parsing ⤂ +PASS XHTML Basic parsing ≤⃒ +FAIL XHTML Basic parsing <⃒ assert_equals: XHTML Basic parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML Basic parsing ⊴⃒ +PASS XHTML Basic parsing ⤃ +PASS XHTML Basic parsing ⊵⃒ +PASS XHTML Basic parsing ∼⃒ +PASS XHTML Basic parsing ⤣ +PASS XHTML Basic parsing ↖ +PASS XHTML Basic parsing ⇖ +PASS XHTML Basic parsing ↖ +PASS XHTML Basic parsing ⤧ +PASS XHTML Basic parsing Ó +PASS XHTML Basic parsing ó +PASS XHTML Basic parsing ⊛ +PASS XHTML Basic parsing Ô +PASS XHTML Basic parsing ô +PASS XHTML Basic parsing ⊚ +PASS XHTML Basic parsing О +PASS XHTML Basic parsing о +PASS XHTML Basic parsing ⊝ +PASS XHTML Basic parsing Ő +PASS XHTML Basic parsing ő +PASS XHTML Basic parsing ⨸ +PASS XHTML Basic parsing ⊙ +PASS XHTML Basic parsing ⦼ +PASS XHTML Basic parsing Œ +PASS XHTML Basic parsing œ +PASS XHTML Basic parsing ⦿ +PASS XHTML Basic parsing 𝔒 +PASS XHTML Basic parsing 𝔬 +PASS XHTML Basic parsing ˛ +PASS XHTML Basic parsing Ò +PASS XHTML Basic parsing ò +PASS XHTML Basic parsing ⧁ +PASS XHTML Basic parsing ⦵ +PASS XHTML Basic parsing Ω +PASS XHTML Basic parsing ∮ +PASS XHTML Basic parsing ↺ +PASS XHTML Basic parsing ⦾ +PASS XHTML Basic parsing ⦻ +PASS XHTML Basic parsing ‾ +PASS XHTML Basic parsing ⧀ +PASS XHTML Basic parsing Ō +PASS XHTML Basic parsing ō +PASS XHTML Basic parsing Ω +PASS XHTML Basic parsing ω +PASS XHTML Basic parsing Ο +PASS XHTML Basic parsing ο +PASS XHTML Basic parsing ⦶ +PASS XHTML Basic parsing ⊖ +PASS XHTML Basic parsing 𝕆 +PASS XHTML Basic parsing 𝕠 +PASS XHTML Basic parsing ⦷ +PASS XHTML Basic parsing “ +PASS XHTML Basic parsing ‘ +PASS XHTML Basic parsing ⦹ +PASS XHTML Basic parsing ⊕ +PASS XHTML Basic parsing ↻ +PASS XHTML Basic parsing ⩔ +PASS XHTML Basic parsing ∨ +PASS XHTML Basic parsing ⩝ +PASS XHTML Basic parsing ℴ +PASS XHTML Basic parsing ℴ +PASS XHTML Basic parsing ª +PASS XHTML Basic parsing º +PASS XHTML Basic parsing ⊶ +PASS XHTML Basic parsing ⩖ +PASS XHTML Basic parsing ⩗ +PASS XHTML Basic parsing ⩛ +PASS XHTML Basic parsing Ⓢ +PASS XHTML Basic parsing 𝒪 +PASS XHTML Basic parsing ℴ +PASS XHTML Basic parsing Ø +PASS XHTML Basic parsing ø +PASS XHTML Basic parsing ⊘ +PASS XHTML Basic parsing Õ +PASS XHTML Basic parsing õ +PASS XHTML Basic parsing ⨶ +PASS XHTML Basic parsing ⨷ +PASS XHTML Basic parsing ⊗ +PASS XHTML Basic parsing Ö +PASS XHTML Basic parsing ö +PASS XHTML Basic parsing ⌽ +PASS XHTML Basic parsing ‾ +PASS XHTML Basic parsing ⏞ +PASS XHTML Basic parsing ⎴ +PASS XHTML Basic parsing ⏜ +PASS XHTML Basic parsing ¶ +PASS XHTML Basic parsing ∥ +PASS XHTML Basic parsing ∥ +PASS XHTML Basic parsing ⫳ +PASS XHTML Basic parsing ⫽ +PASS XHTML Basic parsing ∂ +PASS XHTML Basic parsing ∂ +PASS XHTML Basic parsing П +PASS XHTML Basic parsing п +PASS XHTML Basic parsing % +PASS XHTML Basic parsing . +PASS XHTML Basic parsing ‰ +PASS XHTML Basic parsing ⊥ +PASS XHTML Basic parsing ‱ +PASS XHTML Basic parsing 𝔓 +PASS XHTML Basic parsing 𝔭 +PASS XHTML Basic parsing Φ +PASS XHTML Basic parsing φ +PASS XHTML Basic parsing ϕ +PASS XHTML Basic parsing ℳ +PASS XHTML Basic parsing ☎ +PASS XHTML Basic parsing Π +PASS XHTML Basic parsing π +PASS XHTML Basic parsing ⋔ +PASS XHTML Basic parsing ϖ +PASS XHTML Basic parsing ℏ +PASS XHTML Basic parsing ℎ +PASS XHTML Basic parsing ℏ +PASS XHTML Basic parsing ⨣ +PASS XHTML Basic parsing ⊞ +PASS XHTML Basic parsing ⨢ +PASS XHTML Basic parsing + +PASS XHTML Basic parsing ∔ +PASS XHTML Basic parsing ⨥ +PASS XHTML Basic parsing ⩲ +PASS XHTML Basic parsing ± +PASS XHTML Basic parsing ± +PASS XHTML Basic parsing ⨦ +PASS XHTML Basic parsing ⨧ +PASS XHTML Basic parsing ± +PASS XHTML Basic parsing ℌ +PASS XHTML Basic parsing ⨕ +PASS XHTML Basic parsing 𝕡 +PASS XHTML Basic parsing ℙ +PASS XHTML Basic parsing £ +PASS XHTML Basic parsing ⪷ +PASS XHTML Basic parsing ⪻ +PASS XHTML Basic parsing ≺ +PASS XHTML Basic parsing ≼ +PASS XHTML Basic parsing ⪷ +PASS XHTML Basic parsing ≺ +PASS XHTML Basic parsing ≼ +PASS XHTML Basic parsing ≺ +PASS XHTML Basic parsing ⪯ +PASS XHTML Basic parsing ≼ +PASS XHTML Basic parsing ≾ +PASS XHTML Basic parsing ⪯ +PASS XHTML Basic parsing ⪹ +PASS XHTML Basic parsing ⪵ +PASS XHTML Basic parsing ⋨ +PASS XHTML Basic parsing ⪯ +PASS XHTML Basic parsing ⪳ +PASS XHTML Basic parsing ≾ +PASS XHTML Basic parsing ′ +PASS XHTML Basic parsing ″ +PASS XHTML Basic parsing ℙ +PASS XHTML Basic parsing ⪹ +PASS XHTML Basic parsing ⪵ +PASS XHTML Basic parsing ⋨ +PASS XHTML Basic parsing ∏ +PASS XHTML Basic parsing ∏ +PASS XHTML Basic parsing ⌮ +PASS XHTML Basic parsing ⌒ +PASS XHTML Basic parsing ⌓ +PASS XHTML Basic parsing ∝ +PASS XHTML Basic parsing ∝ +PASS XHTML Basic parsing ∷ +PASS XHTML Basic parsing ∝ +PASS XHTML Basic parsing ≾ +PASS XHTML Basic parsing ⊰ +PASS XHTML Basic parsing 𝒫 +PASS XHTML Basic parsing 𝓅 +PASS XHTML Basic parsing Ψ +PASS XHTML Basic parsing ψ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing 𝔔 +PASS XHTML Basic parsing 𝔮 +PASS XHTML Basic parsing ⨌ +PASS XHTML Basic parsing 𝕢 +PASS XHTML Basic parsing ℚ +PASS XHTML Basic parsing ⁗ +PASS XHTML Basic parsing 𝒬 +PASS XHTML Basic parsing 𝓆 +PASS XHTML Basic parsing ℍ +PASS XHTML Basic parsing ⨖ +PASS XHTML Basic parsing ? +PASS XHTML Basic parsing ≟ +PASS XHTML Basic parsing " +PASS XHTML Basic parsing " +PASS XHTML Basic parsing ⇛ +PASS XHTML Basic parsing ∽̱ +PASS XHTML Basic parsing Ŕ +PASS XHTML Basic parsing ŕ +PASS XHTML Basic parsing √ +PASS XHTML Basic parsing ⦳ +PASS XHTML Basic parsing ⟩ +PASS XHTML Basic parsing ⟫ +PASS XHTML Basic parsing ⦒ +PASS XHTML Basic parsing ⦥ +PASS XHTML Basic parsing ⟩ +PASS XHTML Basic parsing » +PASS XHTML Basic parsing ⥵ +PASS XHTML Basic parsing ⇥ +PASS XHTML Basic parsing ⤠ +PASS XHTML Basic parsing ⤳ +PASS XHTML Basic parsing → +PASS XHTML Basic parsing ↠ +PASS XHTML Basic parsing ⇒ +PASS XHTML Basic parsing ⤞ +PASS XHTML Basic parsing ↪ +PASS XHTML Basic parsing ↬ +PASS XHTML Basic parsing ⥅ +PASS XHTML Basic parsing ⥴ +PASS XHTML Basic parsing ⤖ +PASS XHTML Basic parsing ↣ +PASS XHTML Basic parsing ↝ +PASS XHTML Basic parsing ⤚ +PASS XHTML Basic parsing ⤜ +PASS XHTML Basic parsing ∶ +PASS XHTML Basic parsing ℚ +PASS XHTML Basic parsing ⤍ +PASS XHTML Basic parsing ⤏ +PASS XHTML Basic parsing ⤐ +PASS XHTML Basic parsing ❳ +PASS XHTML Basic parsing } +PASS XHTML Basic parsing ] +PASS XHTML Basic parsing ⦌ +PASS XHTML Basic parsing ⦎ +PASS XHTML Basic parsing ⦐ +PASS XHTML Basic parsing Ř +PASS XHTML Basic parsing ř +PASS XHTML Basic parsing Ŗ +PASS XHTML Basic parsing ŗ +PASS XHTML Basic parsing ⌉ +PASS XHTML Basic parsing } +PASS XHTML Basic parsing Р +PASS XHTML Basic parsing р +PASS XHTML Basic parsing ⤷ +PASS XHTML Basic parsing ⥩ +PASS XHTML Basic parsing ” +PASS XHTML Basic parsing ” +PASS XHTML Basic parsing ↳ +PASS XHTML Basic parsing ℜ +PASS XHTML Basic parsing ℛ +PASS XHTML Basic parsing ℜ +PASS XHTML Basic parsing ℝ +PASS XHTML Basic parsing ℜ +PASS XHTML Basic parsing ▭ +PASS XHTML Basic parsing ® +PASS XHTML Basic parsing ® +PASS XHTML Basic parsing ∋ +PASS XHTML Basic parsing ⇋ +PASS XHTML Basic parsing ⥯ +PASS XHTML Basic parsing ⥽ +PASS XHTML Basic parsing ⌋ +PASS XHTML Basic parsing 𝔯 +PASS XHTML Basic parsing ℜ +PASS XHTML Basic parsing ⥤ +PASS XHTML Basic parsing ⇁ +PASS XHTML Basic parsing ⇀ +PASS XHTML Basic parsing ⥬ +PASS XHTML Basic parsing Ρ +PASS XHTML Basic parsing ρ +PASS XHTML Basic parsing ϱ +PASS XHTML Basic parsing ⟩ +PASS XHTML Basic parsing ⇥ +PASS XHTML Basic parsing → +PASS XHTML Basic parsing → +PASS XHTML Basic parsing ⇒ +PASS XHTML Basic parsing ⇄ +PASS XHTML Basic parsing ↣ +PASS XHTML Basic parsing ⌉ +PASS XHTML Basic parsing ⟧ +PASS XHTML Basic parsing ⥝ +PASS XHTML Basic parsing ⥕ +PASS XHTML Basic parsing ⇂ +PASS XHTML Basic parsing ⌋ +PASS XHTML Basic parsing ⇁ +PASS XHTML Basic parsing ⇀ +PASS XHTML Basic parsing ⇄ +PASS XHTML Basic parsing ⇌ +PASS XHTML Basic parsing ⇉ +PASS XHTML Basic parsing ↝ +PASS XHTML Basic parsing ↦ +PASS XHTML Basic parsing ⊢ +PASS XHTML Basic parsing ⥛ +PASS XHTML Basic parsing ⋌ +PASS XHTML Basic parsing ⧐ +PASS XHTML Basic parsing ⊳ +PASS XHTML Basic parsing ⊵ +PASS XHTML Basic parsing ⥏ +PASS XHTML Basic parsing ⥜ +PASS XHTML Basic parsing ⥔ +PASS XHTML Basic parsing ↾ +PASS XHTML Basic parsing ⥓ +PASS XHTML Basic parsing ⇀ +PASS XHTML Basic parsing ˚ +PASS XHTML Basic parsing ≓ +PASS XHTML Basic parsing ⇄ +PASS XHTML Basic parsing ⇌ +PASS XHTML Basic parsing ‏ +PASS XHTML Basic parsing ⎱ +PASS XHTML Basic parsing ⎱ +PASS XHTML Basic parsing ⫮ +PASS XHTML Basic parsing ⟭ +PASS XHTML Basic parsing ⇾ +PASS XHTML Basic parsing ⟧ +PASS XHTML Basic parsing ⦆ +PASS XHTML Basic parsing 𝕣 +PASS XHTML Basic parsing ℝ +PASS XHTML Basic parsing ⨮ +PASS XHTML Basic parsing ⨵ +PASS XHTML Basic parsing ⥰ +PASS XHTML Basic parsing ) +PASS XHTML Basic parsing ⦔ +PASS XHTML Basic parsing ⨒ +PASS XHTML Basic parsing ⇉ +PASS XHTML Basic parsing ⇛ +PASS XHTML Basic parsing › +PASS XHTML Basic parsing 𝓇 +PASS XHTML Basic parsing ℛ +PASS XHTML Basic parsing ↱ +PASS XHTML Basic parsing ↱ +PASS XHTML Basic parsing ] +PASS XHTML Basic parsing ’ +PASS XHTML Basic parsing ’ +PASS XHTML Basic parsing ⋌ +PASS XHTML Basic parsing ⋊ +PASS XHTML Basic parsing ▹ +PASS XHTML Basic parsing ⊵ +PASS XHTML Basic parsing ▸ +PASS XHTML Basic parsing ⧎ +PASS XHTML Basic parsing ⧴ +PASS XHTML Basic parsing ⥨ +PASS XHTML Basic parsing ℞ +PASS XHTML Basic parsing Ś +PASS XHTML Basic parsing ś +PASS XHTML Basic parsing ‚ +PASS XHTML Basic parsing ⪸ +PASS XHTML Basic parsing Š +PASS XHTML Basic parsing š +PASS XHTML Basic parsing ⪼ +PASS XHTML Basic parsing ≻ +PASS XHTML Basic parsing ≽ +PASS XHTML Basic parsing ⪰ +PASS XHTML Basic parsing ⪴ +PASS XHTML Basic parsing Ş +PASS XHTML Basic parsing ş +PASS XHTML Basic parsing Ŝ +PASS XHTML Basic parsing ŝ +PASS XHTML Basic parsing ⪺ +PASS XHTML Basic parsing ⪶ +PASS XHTML Basic parsing ⋩ +PASS XHTML Basic parsing ⨓ +PASS XHTML Basic parsing ≿ +PASS XHTML Basic parsing С +PASS XHTML Basic parsing с +PASS XHTML Basic parsing ⊡ +PASS XHTML Basic parsing ⋅ +PASS XHTML Basic parsing ⩦ +PASS XHTML Basic parsing ⤥ +PASS XHTML Basic parsing ↘ +PASS XHTML Basic parsing ⇘ +PASS XHTML Basic parsing ↘ +PASS XHTML Basic parsing § +PASS XHTML Basic parsing ; +PASS XHTML Basic parsing ⤩ +PASS XHTML Basic parsing ∖ +PASS XHTML Basic parsing ∖ +PASS XHTML Basic parsing ✶ +PASS XHTML Basic parsing 𝔖 +PASS XHTML Basic parsing 𝔰 +PASS XHTML Basic parsing ⌢ +PASS XHTML Basic parsing ♯ +PASS XHTML Basic parsing Щ +PASS XHTML Basic parsing щ +PASS XHTML Basic parsing Ш +PASS XHTML Basic parsing ш +PASS XHTML Basic parsing ↓ +PASS XHTML Basic parsing ← +PASS XHTML Basic parsing ∣ +PASS XHTML Basic parsing ∥ +PASS XHTML Basic parsing → +PASS XHTML Basic parsing ↑ +PASS XHTML Basic parsing ­ +PASS XHTML Basic parsing Σ +PASS XHTML Basic parsing σ +PASS XHTML Basic parsing ς +PASS XHTML Basic parsing ς +PASS XHTML Basic parsing ∼ +PASS XHTML Basic parsing ⩪ +PASS XHTML Basic parsing ≃ +PASS XHTML Basic parsing ≃ +PASS XHTML Basic parsing ⪞ +PASS XHTML Basic parsing ⪠ +PASS XHTML Basic parsing ⪝ +PASS XHTML Basic parsing ⪟ +PASS XHTML Basic parsing ≆ +PASS XHTML Basic parsing ⨤ +PASS XHTML Basic parsing ⥲ +PASS XHTML Basic parsing ← +PASS XHTML Basic parsing ∘ +PASS XHTML Basic parsing ∖ +PASS XHTML Basic parsing ⨳ +PASS XHTML Basic parsing ⧤ +PASS XHTML Basic parsing ∣ +PASS XHTML Basic parsing ⌣ +PASS XHTML Basic parsing ⪪ +PASS XHTML Basic parsing ⪬ +PASS XHTML Basic parsing ⪬︀ +PASS XHTML Basic parsing Ь +PASS XHTML Basic parsing ь +PASS XHTML Basic parsing ⌿ +PASS XHTML Basic parsing ⧄ +PASS XHTML Basic parsing / +PASS XHTML Basic parsing 𝕊 +PASS XHTML Basic parsing 𝕤 +PASS XHTML Basic parsing ♠ +PASS XHTML Basic parsing ♠ +PASS XHTML Basic parsing ∥ +PASS XHTML Basic parsing ⊓ +PASS XHTML Basic parsing ⊓︀ +PASS XHTML Basic parsing ⊔ +PASS XHTML Basic parsing ⊔︀ +PASS XHTML Basic parsing √ +PASS XHTML Basic parsing ⊏ +PASS XHTML Basic parsing ⊑ +PASS XHTML Basic parsing ⊏ +PASS XHTML Basic parsing ⊑ +PASS XHTML Basic parsing ⊐ +PASS XHTML Basic parsing ⊒ +PASS XHTML Basic parsing ⊐ +PASS XHTML Basic parsing ⊒ +PASS XHTML Basic parsing □ +PASS XHTML Basic parsing □ +PASS XHTML Basic parsing ⊓ +PASS XHTML Basic parsing ⊏ +PASS XHTML Basic parsing ⊑ +PASS XHTML Basic parsing ⊐ +PASS XHTML Basic parsing ⊒ +PASS XHTML Basic parsing ⊔ +PASS XHTML Basic parsing ▪ +PASS XHTML Basic parsing □ +PASS XHTML Basic parsing ▪ +PASS XHTML Basic parsing → +PASS XHTML Basic parsing 𝒮 +PASS XHTML Basic parsing 𝓈 +PASS XHTML Basic parsing ∖ +PASS XHTML Basic parsing ⌣ +PASS XHTML Basic parsing ⋆ +PASS XHTML Basic parsing ⋆ +PASS XHTML Basic parsing ☆ +PASS XHTML Basic parsing ★ +PASS XHTML Basic parsing ϵ +PASS XHTML Basic parsing ϕ +PASS XHTML Basic parsing ¯ +PASS XHTML Basic parsing ⊂ +PASS XHTML Basic parsing ⋐ +PASS XHTML Basic parsing ⪽ +PASS XHTML Basic parsing ⫅ +PASS XHTML Basic parsing ⊆ +PASS XHTML Basic parsing ⫃ +PASS XHTML Basic parsing ⫁ +PASS XHTML Basic parsing ⫋ +PASS XHTML Basic parsing ⊊ +PASS XHTML Basic parsing ⪿ +PASS XHTML Basic parsing ⥹ +PASS XHTML Basic parsing ⊂ +PASS XHTML Basic parsing ⋐ +PASS XHTML Basic parsing ⊆ +PASS XHTML Basic parsing ⫅ +PASS XHTML Basic parsing ⊆ +PASS XHTML Basic parsing ⊊ +PASS XHTML Basic parsing ⫋ +PASS XHTML Basic parsing ⫇ +PASS XHTML Basic parsing ⫕ +PASS XHTML Basic parsing ⫓ +PASS XHTML Basic parsing ⪸ +PASS XHTML Basic parsing ≻ +PASS XHTML Basic parsing ≽ +PASS XHTML Basic parsing ≻ +PASS XHTML Basic parsing ⪰ +PASS XHTML Basic parsing ≽ +PASS XHTML Basic parsing ≿ +PASS XHTML Basic parsing ⪰ +PASS XHTML Basic parsing ⪺ +PASS XHTML Basic parsing ⪶ +PASS XHTML Basic parsing ⋩ +PASS XHTML Basic parsing ≿ +PASS XHTML Basic parsing ∋ +PASS XHTML Basic parsing ∑ +PASS XHTML Basic parsing ∑ +PASS XHTML Basic parsing ♪ +PASS XHTML Basic parsing ¹ +PASS XHTML Basic parsing ² +PASS XHTML Basic parsing ³ +PASS XHTML Basic parsing ⊃ +PASS XHTML Basic parsing ⋑ +PASS XHTML Basic parsing ⪾ +PASS XHTML Basic parsing ⫘ +PASS XHTML Basic parsing ⫆ +PASS XHTML Basic parsing ⊇ +PASS XHTML Basic parsing ⫄ +PASS XHTML Basic parsing ⊃ +PASS XHTML Basic parsing ⊇ +PASS XHTML Basic parsing ⟉ +PASS XHTML Basic parsing ⫗ +PASS XHTML Basic parsing ⥻ +PASS XHTML Basic parsing ⫂ +PASS XHTML Basic parsing ⫌ +PASS XHTML Basic parsing ⊋ +PASS XHTML Basic parsing ⫀ +PASS XHTML Basic parsing ⊃ +PASS XHTML Basic parsing ⋑ +PASS XHTML Basic parsing ⊇ +PASS XHTML Basic parsing ⫆ +PASS XHTML Basic parsing ⊋ +PASS XHTML Basic parsing ⫌ +PASS XHTML Basic parsing ⫈ +PASS XHTML Basic parsing ⫔ +PASS XHTML Basic parsing ⫖ +PASS XHTML Basic parsing ⤦ +PASS XHTML Basic parsing ↙ +PASS XHTML Basic parsing ⇙ +PASS XHTML Basic parsing ↙ +PASS XHTML Basic parsing ⤪ +PASS XHTML Basic parsing ß +PASS XHTML Basic parsing 	 +PASS XHTML Basic parsing ⌖ +PASS XHTML Basic parsing Τ +PASS XHTML Basic parsing τ +PASS XHTML Basic parsing ⎴ +PASS XHTML Basic parsing Ť +PASS XHTML Basic parsing ť +PASS XHTML Basic parsing Ţ +PASS XHTML Basic parsing ţ +PASS XHTML Basic parsing Т +PASS XHTML Basic parsing т +PASS XHTML Basic parsing ⃛ +PASS XHTML Basic parsing ⌕ +PASS XHTML Basic parsing 𝔗 +PASS XHTML Basic parsing 𝔱 +PASS XHTML Basic parsing ∴ +PASS XHTML Basic parsing ∴ +PASS XHTML Basic parsing ∴ +PASS XHTML Basic parsing Θ +PASS XHTML Basic parsing θ +PASS XHTML Basic parsing ϑ +PASS XHTML Basic parsing ϑ +PASS XHTML Basic parsing ≈ +PASS XHTML Basic parsing ∼ +PASS XHTML Basic parsing    +PASS XHTML Basic parsing   +PASS XHTML Basic parsing   +PASS XHTML Basic parsing ≈ +PASS XHTML Basic parsing ∼ +PASS XHTML Basic parsing Þ +PASS XHTML Basic parsing þ +PASS XHTML Basic parsing ˜ +PASS XHTML Basic parsing ∼ +PASS XHTML Basic parsing ≃ +PASS XHTML Basic parsing ≅ +PASS XHTML Basic parsing ≈ +PASS XHTML Basic parsing ⨱ +PASS XHTML Basic parsing ⊠ +PASS XHTML Basic parsing × +PASS XHTML Basic parsing ⨰ +PASS XHTML Basic parsing ∭ +PASS XHTML Basic parsing ⤨ +PASS XHTML Basic parsing ⌶ +PASS XHTML Basic parsing ⫱ +PASS XHTML Basic parsing ⊤ +PASS XHTML Basic parsing 𝕋 +PASS XHTML Basic parsing 𝕥 +PASS XHTML Basic parsing ⫚ +PASS XHTML Basic parsing ⤩ +PASS XHTML Basic parsing ‴ +PASS XHTML Basic parsing ™ +PASS XHTML Basic parsing ™ +PASS XHTML Basic parsing ▵ +PASS XHTML Basic parsing ▿ +PASS XHTML Basic parsing ◃ +PASS XHTML Basic parsing ⊴ +PASS XHTML Basic parsing ≜ +PASS XHTML Basic parsing ▹ +PASS XHTML Basic parsing ⊵ +PASS XHTML Basic parsing ◬ +PASS XHTML Basic parsing ≜ +PASS XHTML Basic parsing ⨺ +PASS XHTML Basic parsing ⃛ +PASS XHTML Basic parsing ⨹ +PASS XHTML Basic parsing ⧍ +PASS XHTML Basic parsing ⨻ +PASS XHTML Basic parsing ⏢ +PASS XHTML Basic parsing 𝒯 +PASS XHTML Basic parsing 𝓉 +PASS XHTML Basic parsing Ц +PASS XHTML Basic parsing ц +PASS XHTML Basic parsing Ћ +PASS XHTML Basic parsing ћ +PASS XHTML Basic parsing Ŧ +PASS XHTML Basic parsing ŧ +PASS XHTML Basic parsing ≬ +PASS XHTML Basic parsing ↞ +PASS XHTML Basic parsing ↠ +PASS XHTML Basic parsing Ú +PASS XHTML Basic parsing ú +PASS XHTML Basic parsing ↑ +PASS XHTML Basic parsing ↟ +PASS XHTML Basic parsing ⇑ +PASS XHTML Basic parsing ⥉ +PASS XHTML Basic parsing Ў +PASS XHTML Basic parsing ў +PASS XHTML Basic parsing Ŭ +PASS XHTML Basic parsing ŭ +PASS XHTML Basic parsing Û +PASS XHTML Basic parsing û +PASS XHTML Basic parsing У +PASS XHTML Basic parsing у +PASS XHTML Basic parsing ⇅ +PASS XHTML Basic parsing Ű +PASS XHTML Basic parsing ű +PASS XHTML Basic parsing ⥮ +PASS XHTML Basic parsing ⥾ +PASS XHTML Basic parsing 𝔘 +PASS XHTML Basic parsing 𝔲 +PASS XHTML Basic parsing Ù +PASS XHTML Basic parsing ù +PASS XHTML Basic parsing ⥣ +PASS XHTML Basic parsing ↿ +PASS XHTML Basic parsing ↾ +PASS XHTML Basic parsing ▀ +PASS XHTML Basic parsing ⌜ +PASS XHTML Basic parsing ⌜ +PASS XHTML Basic parsing ⌏ +PASS XHTML Basic parsing ◸ +PASS XHTML Basic parsing Ū +PASS XHTML Basic parsing ū +PASS XHTML Basic parsing ¨ +PASS XHTML Basic parsing _ +PASS XHTML Basic parsing ⏟ +PASS XHTML Basic parsing ⎵ +PASS XHTML Basic parsing ⏝ +PASS XHTML Basic parsing ⋃ +PASS XHTML Basic parsing ⊎ +PASS XHTML Basic parsing Ų +PASS XHTML Basic parsing ų +PASS XHTML Basic parsing 𝕌 +PASS XHTML Basic parsing 𝕦 +PASS XHTML Basic parsing ⤒ +PASS XHTML Basic parsing ↑ +PASS XHTML Basic parsing ↑ +PASS XHTML Basic parsing ⇑ +PASS XHTML Basic parsing ⇅ +PASS XHTML Basic parsing ↕ +PASS XHTML Basic parsing ↕ +PASS XHTML Basic parsing ⇕ +PASS XHTML Basic parsing ⥮ +PASS XHTML Basic parsing ↿ +PASS XHTML Basic parsing ↾ +PASS XHTML Basic parsing ⊎ +PASS XHTML Basic parsing ↖ +PASS XHTML Basic parsing ↗ +PASS XHTML Basic parsing υ +PASS XHTML Basic parsing ϒ +PASS XHTML Basic parsing ϒ +PASS XHTML Basic parsing Υ +PASS XHTML Basic parsing υ +PASS XHTML Basic parsing ↥ +PASS XHTML Basic parsing ⊥ +PASS XHTML Basic parsing ⇈ +PASS XHTML Basic parsing ⌝ +PASS XHTML Basic parsing ⌝ +PASS XHTML Basic parsing ⌎ +PASS XHTML Basic parsing Ů +PASS XHTML Basic parsing ů +PASS XHTML Basic parsing ◹ +PASS XHTML Basic parsing 𝒰 +PASS XHTML Basic parsing 𝓊 +PASS XHTML Basic parsing ⋰ +PASS XHTML Basic parsing Ũ +PASS XHTML Basic parsing ũ +PASS XHTML Basic parsing ▵ +PASS XHTML Basic parsing ▴ +PASS XHTML Basic parsing ⇈ +PASS XHTML Basic parsing Ü +PASS XHTML Basic parsing ü +PASS XHTML Basic parsing ⦧ +PASS XHTML Basic parsing ⦜ +PASS XHTML Basic parsing ϵ +PASS XHTML Basic parsing ϰ +PASS XHTML Basic parsing ∅ +PASS XHTML Basic parsing ϕ +PASS XHTML Basic parsing ϖ +PASS XHTML Basic parsing ∝ +PASS XHTML Basic parsing ↕ +PASS XHTML Basic parsing ⇕ +PASS XHTML Basic parsing ϱ +PASS XHTML Basic parsing ς +PASS XHTML Basic parsing ⊊︀ +PASS XHTML Basic parsing ⫋︀ +PASS XHTML Basic parsing ⊋︀ +PASS XHTML Basic parsing ⫌︀ +PASS XHTML Basic parsing ϑ +PASS XHTML Basic parsing ⊲ +PASS XHTML Basic parsing ⊳ +PASS XHTML Basic parsing ⫨ +PASS XHTML Basic parsing ⫫ +PASS XHTML Basic parsing ⫩ +PASS XHTML Basic parsing В +PASS XHTML Basic parsing в +PASS XHTML Basic parsing ⊢ +PASS XHTML Basic parsing ⊨ +PASS XHTML Basic parsing ⊩ +PASS XHTML Basic parsing ⊫ +PASS XHTML Basic parsing ⫦ +PASS XHTML Basic parsing ⊻ +PASS XHTML Basic parsing ∨ +PASS XHTML Basic parsing ⋁ +PASS XHTML Basic parsing ≚ +PASS XHTML Basic parsing ⋮ +PASS XHTML Basic parsing | +PASS XHTML Basic parsing ‖ +PASS XHTML Basic parsing | +PASS XHTML Basic parsing ‖ +PASS XHTML Basic parsing ∣ +PASS XHTML Basic parsing | +PASS XHTML Basic parsing ❘ +PASS XHTML Basic parsing ≀ +PASS XHTML Basic parsing   +PASS XHTML Basic parsing 𝔙 +PASS XHTML Basic parsing 𝔳 +PASS XHTML Basic parsing ⊲ +PASS XHTML Basic parsing ⊂⃒ +PASS XHTML Basic parsing ⊃⃒ +PASS XHTML Basic parsing 𝕍 +PASS XHTML Basic parsing 𝕧 +PASS XHTML Basic parsing ∝ +PASS XHTML Basic parsing ⊳ +PASS XHTML Basic parsing 𝒱 +PASS XHTML Basic parsing 𝓋 +PASS XHTML Basic parsing ⫋︀ +PASS XHTML Basic parsing ⊊︀ +PASS XHTML Basic parsing ⫌︀ +PASS XHTML Basic parsing ⊋︀ +PASS XHTML Basic parsing ⊪ +PASS XHTML Basic parsing ⦚ +PASS XHTML Basic parsing Ŵ +PASS XHTML Basic parsing ŵ +PASS XHTML Basic parsing ⩟ +PASS XHTML Basic parsing ∧ +PASS XHTML Basic parsing ⋀ +PASS XHTML Basic parsing ≙ +PASS XHTML Basic parsing ℘ +PASS XHTML Basic parsing 𝔚 +PASS XHTML Basic parsing 𝔴 +PASS XHTML Basic parsing 𝕎 +PASS XHTML Basic parsing 𝕨 +PASS XHTML Basic parsing ℘ +PASS XHTML Basic parsing ≀ +PASS XHTML Basic parsing ≀ +PASS XHTML Basic parsing 𝒲 +PASS XHTML Basic parsing 𝓌 +PASS XHTML Basic parsing ⋂ +PASS XHTML Basic parsing ◯ +PASS XHTML Basic parsing ⋃ +PASS XHTML Basic parsing ▽ +PASS XHTML Basic parsing 𝔛 +PASS XHTML Basic parsing 𝔵 +PASS XHTML Basic parsing ⟷ +PASS XHTML Basic parsing ⟺ +PASS XHTML Basic parsing Ξ +PASS XHTML Basic parsing ξ +PASS XHTML Basic parsing ⟵ +PASS XHTML Basic parsing ⟸ +PASS XHTML Basic parsing ⟼ +PASS XHTML Basic parsing ⋻ +PASS XHTML Basic parsing ⨀ +PASS XHTML Basic parsing 𝕏 +PASS XHTML Basic parsing 𝕩 +PASS XHTML Basic parsing ⨁ +PASS XHTML Basic parsing ⨂ +PASS XHTML Basic parsing ⟶ +PASS XHTML Basic parsing ⟹ +PASS XHTML Basic parsing 𝒳 +PASS XHTML Basic parsing 𝓍 +PASS XHTML Basic parsing ⨆ +PASS XHTML Basic parsing ⨄ +PASS XHTML Basic parsing △ +PASS XHTML Basic parsing ⋁ +PASS XHTML Basic parsing ⋀ +PASS XHTML Basic parsing Ý +PASS XHTML Basic parsing ý +PASS XHTML Basic parsing Я +PASS XHTML Basic parsing я +PASS XHTML Basic parsing Ŷ +PASS XHTML Basic parsing ŷ +PASS XHTML Basic parsing Ы +PASS XHTML Basic parsing ы +PASS XHTML Basic parsing ¥ +PASS XHTML Basic parsing 𝔜 +PASS XHTML Basic parsing 𝔶 +PASS XHTML Basic parsing Ї +PASS XHTML Basic parsing ї +PASS XHTML Basic parsing 𝕐 +PASS XHTML Basic parsing 𝕪 +PASS XHTML Basic parsing 𝒴 +PASS XHTML Basic parsing 𝓎 +PASS XHTML Basic parsing Ю +PASS XHTML Basic parsing ю +PASS XHTML Basic parsing ÿ +PASS XHTML Basic parsing Ÿ +PASS XHTML Basic parsing Ź +PASS XHTML Basic parsing ź +PASS XHTML Basic parsing Ž +PASS XHTML Basic parsing ž +PASS XHTML Basic parsing З +PASS XHTML Basic parsing з +PASS XHTML Basic parsing Ż +PASS XHTML Basic parsing ż +PASS XHTML Basic parsing ℨ +PASS XHTML Basic parsing ​ +PASS XHTML Basic parsing Ζ +PASS XHTML Basic parsing ζ +PASS XHTML Basic parsing 𝔷 +PASS XHTML Basic parsing ℨ +PASS XHTML Basic parsing Ж +PASS XHTML Basic parsing ж +PASS XHTML Basic parsing ⇝ +PASS XHTML Basic parsing 𝕫 +PASS XHTML Basic parsing ℤ +PASS XHTML Basic parsing 𝒵 +PASS XHTML Basic parsing 𝓏 +PASS XHTML Basic parsing ‍ +PASS XHTML Basic parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm new file mode 100644 index 0000000..1777332 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML Basic 1.0//EN", "foo", "XHTML Basic"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6-expected.txt new file mode 100644 index 0000000..76871ff --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML1.1+MathML parsing Á +PASS XHTML1.1+MathML parsing á +PASS XHTML1.1+MathML parsing Ă +PASS XHTML1.1+MathML parsing ă +PASS XHTML1.1+MathML parsing ∾ +PASS XHTML1.1+MathML parsing ∿ +PASS XHTML1.1+MathML parsing ∾̳ +PASS XHTML1.1+MathML parsing  +PASS XHTML1.1+MathML parsing â +PASS XHTML1.1+MathML parsing ´ +PASS XHTML1.1+MathML parsing А +PASS XHTML1.1+MathML parsing а +PASS XHTML1.1+MathML parsing Æ +PASS XHTML1.1+MathML parsing æ +PASS XHTML1.1+MathML parsing ⁡ +PASS XHTML1.1+MathML parsing 𝔄 +PASS XHTML1.1+MathML parsing 𝔞 +PASS XHTML1.1+MathML parsing À +PASS XHTML1.1+MathML parsing à +PASS XHTML1.1+MathML parsing ℵ +PASS XHTML1.1+MathML parsing ℵ +PASS XHTML1.1+MathML parsing Α +PASS XHTML1.1+MathML parsing α +PASS XHTML1.1+MathML parsing Ā +PASS XHTML1.1+MathML parsing ā +PASS XHTML1.1+MathML parsing ⨿ +PASS XHTML1.1+MathML parsing & +FAIL XHTML1.1+MathML parsing & assert_true: expected true got false +PASS XHTML1.1+MathML parsing ⩕ +PASS XHTML1.1+MathML parsing ⩓ +PASS XHTML1.1+MathML parsing ∧ +PASS XHTML1.1+MathML parsing ⩜ +PASS XHTML1.1+MathML parsing ⩘ +PASS XHTML1.1+MathML parsing ⩚ +PASS XHTML1.1+MathML parsing ∠ +PASS XHTML1.1+MathML parsing ⦤ +PASS XHTML1.1+MathML parsing ∠ +PASS XHTML1.1+MathML parsing ⦨ +PASS XHTML1.1+MathML parsing ⦩ +PASS XHTML1.1+MathML parsing ⦪ +PASS XHTML1.1+MathML parsing ⦫ +PASS XHTML1.1+MathML parsing ⦬ +PASS XHTML1.1+MathML parsing ⦭ +PASS XHTML1.1+MathML parsing ⦮ +PASS XHTML1.1+MathML parsing ⦯ +PASS XHTML1.1+MathML parsing ∡ +PASS XHTML1.1+MathML parsing ∟ +PASS XHTML1.1+MathML parsing ⊾ +PASS XHTML1.1+MathML parsing ⦝ +PASS XHTML1.1+MathML parsing ∢ +PASS XHTML1.1+MathML parsing Å +PASS XHTML1.1+MathML parsing ⍼ +PASS XHTML1.1+MathML parsing Ą +PASS XHTML1.1+MathML parsing ą +PASS XHTML1.1+MathML parsing 𝔸 +PASS XHTML1.1+MathML parsing 𝕒 +PASS XHTML1.1+MathML parsing ⩯ +PASS XHTML1.1+MathML parsing ≈ +PASS XHTML1.1+MathML parsing ⩰ +PASS XHTML1.1+MathML parsing ≊ +PASS XHTML1.1+MathML parsing ≋ +PASS XHTML1.1+MathML parsing ' +PASS XHTML1.1+MathML parsing ⁡ +PASS XHTML1.1+MathML parsing ≈ +PASS XHTML1.1+MathML parsing ≊ +PASS XHTML1.1+MathML parsing Å +PASS XHTML1.1+MathML parsing å +PASS XHTML1.1+MathML parsing 𝒜 +PASS XHTML1.1+MathML parsing 𝒶 +PASS XHTML1.1+MathML parsing ≔ +PASS XHTML1.1+MathML parsing * +PASS XHTML1.1+MathML parsing ≈ +PASS XHTML1.1+MathML parsing ≍ +PASS XHTML1.1+MathML parsing à +PASS XHTML1.1+MathML parsing ã +PASS XHTML1.1+MathML parsing Ä +PASS XHTML1.1+MathML parsing ä +PASS XHTML1.1+MathML parsing ∳ +PASS XHTML1.1+MathML parsing ⨑ +PASS XHTML1.1+MathML parsing ≌ +PASS XHTML1.1+MathML parsing ϶ +PASS XHTML1.1+MathML parsing ‵ +PASS XHTML1.1+MathML parsing ∽ +PASS XHTML1.1+MathML parsing ⋍ +PASS XHTML1.1+MathML parsing ∖ +PASS XHTML1.1+MathML parsing ⫧ +PASS XHTML1.1+MathML parsing ⊽ +PASS XHTML1.1+MathML parsing ⌅ +PASS XHTML1.1+MathML parsing ⌆ +PASS XHTML1.1+MathML parsing ⌅ +PASS XHTML1.1+MathML parsing ⎵ +PASS XHTML1.1+MathML parsing ⎶ +PASS XHTML1.1+MathML parsing ≌ +PASS XHTML1.1+MathML parsing Б +PASS XHTML1.1+MathML parsing б +PASS XHTML1.1+MathML parsing „ +PASS XHTML1.1+MathML parsing ∵ +PASS XHTML1.1+MathML parsing ∵ +PASS XHTML1.1+MathML parsing ∵ +PASS XHTML1.1+MathML parsing ⦰ +PASS XHTML1.1+MathML parsing ϶ +PASS XHTML1.1+MathML parsing ℬ +PASS XHTML1.1+MathML parsing ℬ +PASS XHTML1.1+MathML parsing Β +PASS XHTML1.1+MathML parsing β +PASS XHTML1.1+MathML parsing ℶ +PASS XHTML1.1+MathML parsing ≬ +PASS XHTML1.1+MathML parsing 𝔅 +PASS XHTML1.1+MathML parsing 𝔟 +PASS XHTML1.1+MathML parsing ⋂ +PASS XHTML1.1+MathML parsing ◯ +PASS XHTML1.1+MathML parsing ⋃ +PASS XHTML1.1+MathML parsing ⨀ +PASS XHTML1.1+MathML parsing ⨁ +PASS XHTML1.1+MathML parsing ⨂ +PASS XHTML1.1+MathML parsing ⨆ +PASS XHTML1.1+MathML parsing ★ +PASS XHTML1.1+MathML parsing ▽ +PASS XHTML1.1+MathML parsing △ +PASS XHTML1.1+MathML parsing ⨄ +PASS XHTML1.1+MathML parsing ⋁ +PASS XHTML1.1+MathML parsing ⋀ +PASS XHTML1.1+MathML parsing ⤍ +PASS XHTML1.1+MathML parsing ⧫ +PASS XHTML1.1+MathML parsing ▪ +PASS XHTML1.1+MathML parsing ▴ +PASS XHTML1.1+MathML parsing ▾ +PASS XHTML1.1+MathML parsing ◂ +PASS XHTML1.1+MathML parsing ▸ +PASS XHTML1.1+MathML parsing ␣ +PASS XHTML1.1+MathML parsing ▒ +PASS XHTML1.1+MathML parsing ░ +PASS XHTML1.1+MathML parsing ▓ +PASS XHTML1.1+MathML parsing █ +PASS XHTML1.1+MathML parsing =⃥ +PASS XHTML1.1+MathML parsing ≡⃥ +PASS XHTML1.1+MathML parsing ⫭ +PASS XHTML1.1+MathML parsing ⌐ +PASS XHTML1.1+MathML parsing 𝔹 +PASS XHTML1.1+MathML parsing 𝕓 +PASS XHTML1.1+MathML parsing ⊥ +PASS XHTML1.1+MathML parsing ⊥ +PASS XHTML1.1+MathML parsing ⋈ +PASS XHTML1.1+MathML parsing ⧉ +PASS XHTML1.1+MathML parsing ┐ +PASS XHTML1.1+MathML parsing ╕ +PASS XHTML1.1+MathML parsing ╖ +PASS XHTML1.1+MathML parsing ╗ +PASS XHTML1.1+MathML parsing ┌ +PASS XHTML1.1+MathML parsing ╒ +PASS XHTML1.1+MathML parsing ╓ +PASS XHTML1.1+MathML parsing ╔ +PASS XHTML1.1+MathML parsing ─ +PASS XHTML1.1+MathML parsing ═ +PASS XHTML1.1+MathML parsing ┬ +PASS XHTML1.1+MathML parsing ╤ +PASS XHTML1.1+MathML parsing ╥ +PASS XHTML1.1+MathML parsing ╦ +PASS XHTML1.1+MathML parsing ┴ +PASS XHTML1.1+MathML parsing ╧ +PASS XHTML1.1+MathML parsing ╨ +PASS XHTML1.1+MathML parsing ╩ +PASS XHTML1.1+MathML parsing ⊟ +PASS XHTML1.1+MathML parsing ⊞ +PASS XHTML1.1+MathML parsing ⊠ +PASS XHTML1.1+MathML parsing ┘ +PASS XHTML1.1+MathML parsing ╛ +PASS XHTML1.1+MathML parsing ╜ +PASS XHTML1.1+MathML parsing ╝ +PASS XHTML1.1+MathML parsing └ +PASS XHTML1.1+MathML parsing ╘ +PASS XHTML1.1+MathML parsing ╙ +PASS XHTML1.1+MathML parsing ╚ +PASS XHTML1.1+MathML parsing │ +PASS XHTML1.1+MathML parsing ║ +PASS XHTML1.1+MathML parsing ┼ +PASS XHTML1.1+MathML parsing ╪ +PASS XHTML1.1+MathML parsing ╫ +PASS XHTML1.1+MathML parsing ╬ +PASS XHTML1.1+MathML parsing ┤ +PASS XHTML1.1+MathML parsing ╡ +PASS XHTML1.1+MathML parsing ╢ +PASS XHTML1.1+MathML parsing ╣ +PASS XHTML1.1+MathML parsing ├ +PASS XHTML1.1+MathML parsing ╞ +PASS XHTML1.1+MathML parsing ╟ +PASS XHTML1.1+MathML parsing ╠ +PASS XHTML1.1+MathML parsing ‵ +PASS XHTML1.1+MathML parsing ˘ +PASS XHTML1.1+MathML parsing ˘ +PASS XHTML1.1+MathML parsing ¦ +PASS XHTML1.1+MathML parsing 𝒷 +PASS XHTML1.1+MathML parsing ℬ +PASS XHTML1.1+MathML parsing ⁏ +PASS XHTML1.1+MathML parsing ∽ +PASS XHTML1.1+MathML parsing ⋍ +PASS XHTML1.1+MathML parsing ⧅ +PASS XHTML1.1+MathML parsing \ +PASS XHTML1.1+MathML parsing ⟈ +PASS XHTML1.1+MathML parsing • +PASS XHTML1.1+MathML parsing • +PASS XHTML1.1+MathML parsing ≎ +PASS XHTML1.1+MathML parsing ⪮ +PASS XHTML1.1+MathML parsing ≏ +PASS XHTML1.1+MathML parsing ≎ +PASS XHTML1.1+MathML parsing ≏ +PASS XHTML1.1+MathML parsing Ć +PASS XHTML1.1+MathML parsing ć +PASS XHTML1.1+MathML parsing ⩄ +PASS XHTML1.1+MathML parsing ⩉ +PASS XHTML1.1+MathML parsing ⩋ +PASS XHTML1.1+MathML parsing ∩ +PASS XHTML1.1+MathML parsing ⋒ +PASS XHTML1.1+MathML parsing ⩇ +PASS XHTML1.1+MathML parsing ⩀ +PASS XHTML1.1+MathML parsing ⅅ +PASS XHTML1.1+MathML parsing ∩︀ +PASS XHTML1.1+MathML parsing ⁁ +PASS XHTML1.1+MathML parsing ˇ +PASS XHTML1.1+MathML parsing ℭ +PASS XHTML1.1+MathML parsing ⩍ +PASS XHTML1.1+MathML parsing Č +PASS XHTML1.1+MathML parsing č +PASS XHTML1.1+MathML parsing Ç +PASS XHTML1.1+MathML parsing ç +PASS XHTML1.1+MathML parsing Ĉ +PASS XHTML1.1+MathML parsing ĉ +PASS XHTML1.1+MathML parsing ∰ +PASS XHTML1.1+MathML parsing ⩌ +PASS XHTML1.1+MathML parsing ⩐ +PASS XHTML1.1+MathML parsing Ċ +PASS XHTML1.1+MathML parsing ċ +PASS XHTML1.1+MathML parsing ¸ +PASS XHTML1.1+MathML parsing ¸ +PASS XHTML1.1+MathML parsing ⦲ +PASS XHTML1.1+MathML parsing ¢ +PASS XHTML1.1+MathML parsing · +PASS XHTML1.1+MathML parsing · +PASS XHTML1.1+MathML parsing 𝔠 +PASS XHTML1.1+MathML parsing ℭ +PASS XHTML1.1+MathML parsing Ч +PASS XHTML1.1+MathML parsing ч +PASS XHTML1.1+MathML parsing ✓ +PASS XHTML1.1+MathML parsing ✓ +PASS XHTML1.1+MathML parsing Χ +PASS XHTML1.1+MathML parsing χ +PASS XHTML1.1+MathML parsing ˆ +PASS XHTML1.1+MathML parsing ≗ +PASS XHTML1.1+MathML parsing ↺ +PASS XHTML1.1+MathML parsing ↻ +PASS XHTML1.1+MathML parsing ⊛ +PASS XHTML1.1+MathML parsing ⊚ +PASS XHTML1.1+MathML parsing ⊝ +PASS XHTML1.1+MathML parsing ⊙ +PASS XHTML1.1+MathML parsing ® +PASS XHTML1.1+MathML parsing Ⓢ +PASS XHTML1.1+MathML parsing ⊖ +PASS XHTML1.1+MathML parsing ⊕ +PASS XHTML1.1+MathML parsing ⊗ +PASS XHTML1.1+MathML parsing ○ +PASS XHTML1.1+MathML parsing ⧃ +PASS XHTML1.1+MathML parsing ≗ +PASS XHTML1.1+MathML parsing ⨐ +PASS XHTML1.1+MathML parsing ⫯ +PASS XHTML1.1+MathML parsing ⧂ +PASS XHTML1.1+MathML parsing ∲ +PASS XHTML1.1+MathML parsing ” +PASS XHTML1.1+MathML parsing ’ +PASS XHTML1.1+MathML parsing ♣ +PASS XHTML1.1+MathML parsing ♣ +PASS XHTML1.1+MathML parsing : +PASS XHTML1.1+MathML parsing ∷ +PASS XHTML1.1+MathML parsing ⩴ +PASS XHTML1.1+MathML parsing ≔ +PASS XHTML1.1+MathML parsing ≔ +PASS XHTML1.1+MathML parsing , +PASS XHTML1.1+MathML parsing @ +PASS XHTML1.1+MathML parsing ∁ +PASS XHTML1.1+MathML parsing ∘ +PASS XHTML1.1+MathML parsing ∁ +PASS XHTML1.1+MathML parsing ℂ +PASS XHTML1.1+MathML parsing ≅ +PASS XHTML1.1+MathML parsing ⩭ +PASS XHTML1.1+MathML parsing ≡ +PASS XHTML1.1+MathML parsing ∮ +PASS XHTML1.1+MathML parsing ∯ +PASS XHTML1.1+MathML parsing ∮ +PASS XHTML1.1+MathML parsing 𝕔 +PASS XHTML1.1+MathML parsing ℂ +PASS XHTML1.1+MathML parsing ∐ +PASS XHTML1.1+MathML parsing ∐ +PASS XHTML1.1+MathML parsing © +PASS XHTML1.1+MathML parsing © +PASS XHTML1.1+MathML parsing ℗ +PASS XHTML1.1+MathML parsing ∳ +PASS XHTML1.1+MathML parsing ↵ +PASS XHTML1.1+MathML parsing ✗ +PASS XHTML1.1+MathML parsing ⨯ +PASS XHTML1.1+MathML parsing 𝒞 +PASS XHTML1.1+MathML parsing 𝒸 +PASS XHTML1.1+MathML parsing ⫏ +PASS XHTML1.1+MathML parsing ⫑ +PASS XHTML1.1+MathML parsing ⫐ +PASS XHTML1.1+MathML parsing ⫒ +PASS XHTML1.1+MathML parsing ⋯ +PASS XHTML1.1+MathML parsing ⤸ +PASS XHTML1.1+MathML parsing ⤵ +PASS XHTML1.1+MathML parsing ⋞ +PASS XHTML1.1+MathML parsing ⋟ +PASS XHTML1.1+MathML parsing ↶ +PASS XHTML1.1+MathML parsing ⤽ +PASS XHTML1.1+MathML parsing ⩈ +PASS XHTML1.1+MathML parsing ⩆ +PASS XHTML1.1+MathML parsing ≍ +PASS XHTML1.1+MathML parsing ∪ +PASS XHTML1.1+MathML parsing ⋓ +PASS XHTML1.1+MathML parsing ⩊ +PASS XHTML1.1+MathML parsing ⊍ +PASS XHTML1.1+MathML parsing ⩅ +PASS XHTML1.1+MathML parsing ∪︀ +PASS XHTML1.1+MathML parsing ↷ +PASS XHTML1.1+MathML parsing ⤼ +PASS XHTML1.1+MathML parsing ⋞ +PASS XHTML1.1+MathML parsing ⋟ +PASS XHTML1.1+MathML parsing ⋎ +PASS XHTML1.1+MathML parsing ⋏ +PASS XHTML1.1+MathML parsing ¤ +PASS XHTML1.1+MathML parsing ↶ +PASS XHTML1.1+MathML parsing ↷ +PASS XHTML1.1+MathML parsing ⋎ +PASS XHTML1.1+MathML parsing ⋏ +PASS XHTML1.1+MathML parsing ∲ +PASS XHTML1.1+MathML parsing ∱ +PASS XHTML1.1+MathML parsing ⌭ +PASS XHTML1.1+MathML parsing † +PASS XHTML1.1+MathML parsing ‡ +PASS XHTML1.1+MathML parsing ℸ +PASS XHTML1.1+MathML parsing ↓ +PASS XHTML1.1+MathML parsing ↡ +PASS XHTML1.1+MathML parsing ⇓ +PASS XHTML1.1+MathML parsing ‐ +PASS XHTML1.1+MathML parsing ⫤ +PASS XHTML1.1+MathML parsing ⊣ +PASS XHTML1.1+MathML parsing ⤏ +PASS XHTML1.1+MathML parsing ˝ +PASS XHTML1.1+MathML parsing Ď +PASS XHTML1.1+MathML parsing ď +PASS XHTML1.1+MathML parsing Д +PASS XHTML1.1+MathML parsing д +PASS XHTML1.1+MathML parsing ‡ +PASS XHTML1.1+MathML parsing ⇊ +PASS XHTML1.1+MathML parsing ⅅ +PASS XHTML1.1+MathML parsing ⅆ +PASS XHTML1.1+MathML parsing ⤑ +PASS XHTML1.1+MathML parsing ⩷ +PASS XHTML1.1+MathML parsing ° +PASS XHTML1.1+MathML parsing ∇ +PASS XHTML1.1+MathML parsing Δ +PASS XHTML1.1+MathML parsing δ +PASS XHTML1.1+MathML parsing ⦱ +PASS XHTML1.1+MathML parsing ⥿ +PASS XHTML1.1+MathML parsing 𝔇 +PASS XHTML1.1+MathML parsing 𝔡 +PASS XHTML1.1+MathML parsing ⥥ +PASS XHTML1.1+MathML parsing ⇃ +PASS XHTML1.1+MathML parsing ⇂ +PASS XHTML1.1+MathML parsing ´ +PASS XHTML1.1+MathML parsing ˙ +PASS XHTML1.1+MathML parsing ˝ +PASS XHTML1.1+MathML parsing ` +PASS XHTML1.1+MathML parsing ˜ +PASS XHTML1.1+MathML parsing ⋄ +PASS XHTML1.1+MathML parsing ⋄ +PASS XHTML1.1+MathML parsing ⋄ +PASS XHTML1.1+MathML parsing ♦ +PASS XHTML1.1+MathML parsing ♦ +PASS XHTML1.1+MathML parsing ¨ +PASS XHTML1.1+MathML parsing ⅆ +PASS XHTML1.1+MathML parsing ϝ +PASS XHTML1.1+MathML parsing ⋲ +PASS XHTML1.1+MathML parsing ÷ +PASS XHTML1.1+MathML parsing ÷ +PASS XHTML1.1+MathML parsing ⋇ +PASS XHTML1.1+MathML parsing ⋇ +PASS XHTML1.1+MathML parsing Ђ +PASS XHTML1.1+MathML parsing ђ +PASS XHTML1.1+MathML parsing ⌞ +PASS XHTML1.1+MathML parsing ⌍ +PASS XHTML1.1+MathML parsing $ +PASS XHTML1.1+MathML parsing 𝔻 +PASS XHTML1.1+MathML parsing 𝕕 +PASS XHTML1.1+MathML parsing ¨ +PASS XHTML1.1+MathML parsing ˙ +PASS XHTML1.1+MathML parsing ⃜ +PASS XHTML1.1+MathML parsing ≐ +PASS XHTML1.1+MathML parsing ≑ +PASS XHTML1.1+MathML parsing ≐ +PASS XHTML1.1+MathML parsing ∸ +PASS XHTML1.1+MathML parsing ∔ +PASS XHTML1.1+MathML parsing ⊡ +PASS XHTML1.1+MathML parsing ⌆ +PASS XHTML1.1+MathML parsing ∯ +PASS XHTML1.1+MathML parsing ¨ +PASS XHTML1.1+MathML parsing ⇓ +PASS XHTML1.1+MathML parsing ⇐ +PASS XHTML1.1+MathML parsing ⇔ +PASS XHTML1.1+MathML parsing ⫤ +PASS XHTML1.1+MathML parsing ⟸ +PASS XHTML1.1+MathML parsing ⟺ +PASS XHTML1.1+MathML parsing ⟹ +PASS XHTML1.1+MathML parsing ⇒ +PASS XHTML1.1+MathML parsing ⊨ +PASS XHTML1.1+MathML parsing ⇑ +PASS XHTML1.1+MathML parsing ⇕ +PASS XHTML1.1+MathML parsing ∥ +PASS XHTML1.1+MathML parsing ⤓ +PASS XHTML1.1+MathML parsing ↓ +PASS XHTML1.1+MathML parsing ↓ +PASS XHTML1.1+MathML parsing ⇓ +PASS XHTML1.1+MathML parsing ⇵ +PASS XHTML1.1+MathML parsing ̑ +PASS XHTML1.1+MathML parsing ⇊ +PASS XHTML1.1+MathML parsing ⇃ +PASS XHTML1.1+MathML parsing ⇂ +PASS XHTML1.1+MathML parsing ⥐ +PASS XHTML1.1+MathML parsing ⥞ +PASS XHTML1.1+MathML parsing ⥖ +PASS XHTML1.1+MathML parsing ↽ +PASS XHTML1.1+MathML parsing ⥟ +PASS XHTML1.1+MathML parsing ⥗ +PASS XHTML1.1+MathML parsing ⇁ +PASS XHTML1.1+MathML parsing ↧ +PASS XHTML1.1+MathML parsing ⊤ +PASS XHTML1.1+MathML parsing ⤐ +PASS XHTML1.1+MathML parsing ⌟ +PASS XHTML1.1+MathML parsing ⌌ +PASS XHTML1.1+MathML parsing 𝒟 +PASS XHTML1.1+MathML parsing 𝒹 +PASS XHTML1.1+MathML parsing Ѕ +PASS XHTML1.1+MathML parsing ѕ +PASS XHTML1.1+MathML parsing ⧶ +PASS XHTML1.1+MathML parsing Đ +PASS XHTML1.1+MathML parsing đ +PASS XHTML1.1+MathML parsing ⋱ +PASS XHTML1.1+MathML parsing ▿ +PASS XHTML1.1+MathML parsing ▾ +PASS XHTML1.1+MathML parsing ⇵ +PASS XHTML1.1+MathML parsing ⥯ +PASS XHTML1.1+MathML parsing ⦦ +PASS XHTML1.1+MathML parsing Џ +PASS XHTML1.1+MathML parsing џ +PASS XHTML1.1+MathML parsing ⟿ +PASS XHTML1.1+MathML parsing É +PASS XHTML1.1+MathML parsing é +PASS XHTML1.1+MathML parsing ⩮ +PASS XHTML1.1+MathML parsing Ě +PASS XHTML1.1+MathML parsing ě +PASS XHTML1.1+MathML parsing Ê +PASS XHTML1.1+MathML parsing ê +PASS XHTML1.1+MathML parsing ≖ +PASS XHTML1.1+MathML parsing ≕ +PASS XHTML1.1+MathML parsing Э +PASS XHTML1.1+MathML parsing э +PASS XHTML1.1+MathML parsing ⩷ +PASS XHTML1.1+MathML parsing Ė +PASS XHTML1.1+MathML parsing ė +PASS XHTML1.1+MathML parsing ≑ +PASS XHTML1.1+MathML parsing ⅇ +PASS XHTML1.1+MathML parsing ≒ +PASS XHTML1.1+MathML parsing 𝔈 +PASS XHTML1.1+MathML parsing 𝔢 +PASS XHTML1.1+MathML parsing ⪚ +PASS XHTML1.1+MathML parsing È +PASS XHTML1.1+MathML parsing è +PASS XHTML1.1+MathML parsing ⪖ +PASS XHTML1.1+MathML parsing ⪘ +PASS XHTML1.1+MathML parsing ⪙ +PASS XHTML1.1+MathML parsing ∈ +PASS XHTML1.1+MathML parsing ⏧ +PASS XHTML1.1+MathML parsing ℓ +PASS XHTML1.1+MathML parsing ⪕ +PASS XHTML1.1+MathML parsing ⪗ +PASS XHTML1.1+MathML parsing Ē +PASS XHTML1.1+MathML parsing ē +PASS XHTML1.1+MathML parsing ∅ +PASS XHTML1.1+MathML parsing ∅ +PASS XHTML1.1+MathML parsing ◻ +PASS XHTML1.1+MathML parsing ∅ +PASS XHTML1.1+MathML parsing ▫ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing Ŋ +PASS XHTML1.1+MathML parsing ŋ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing Ę +PASS XHTML1.1+MathML parsing ę +PASS XHTML1.1+MathML parsing 𝔼 +PASS XHTML1.1+MathML parsing 𝕖 +PASS XHTML1.1+MathML parsing ⋕ +PASS XHTML1.1+MathML parsing ⧣ +PASS XHTML1.1+MathML parsing ⩱ +PASS XHTML1.1+MathML parsing ε +PASS XHTML1.1+MathML parsing Ε +PASS XHTML1.1+MathML parsing ε +PASS XHTML1.1+MathML parsing ϵ +PASS XHTML1.1+MathML parsing ≖ +PASS XHTML1.1+MathML parsing ≕ +PASS XHTML1.1+MathML parsing ≂ +PASS XHTML1.1+MathML parsing ⪖ +PASS XHTML1.1+MathML parsing ⪕ +PASS XHTML1.1+MathML parsing ⩵ +PASS XHTML1.1+MathML parsing = +PASS XHTML1.1+MathML parsing ≂ +PASS XHTML1.1+MathML parsing ≟ +PASS XHTML1.1+MathML parsing ⇌ +PASS XHTML1.1+MathML parsing ≡ +PASS XHTML1.1+MathML parsing ⩸ +PASS XHTML1.1+MathML parsing ⧥ +PASS XHTML1.1+MathML parsing ⥱ +PASS XHTML1.1+MathML parsing ≓ +PASS XHTML1.1+MathML parsing ℯ +PASS XHTML1.1+MathML parsing ℰ +PASS XHTML1.1+MathML parsing ≐ +PASS XHTML1.1+MathML parsing ⩳ +PASS XHTML1.1+MathML parsing ≂ +PASS XHTML1.1+MathML parsing Η +PASS XHTML1.1+MathML parsing η +PASS XHTML1.1+MathML parsing Ð +PASS XHTML1.1+MathML parsing ð +PASS XHTML1.1+MathML parsing Ë +PASS XHTML1.1+MathML parsing ë +PASS XHTML1.1+MathML parsing € +PASS XHTML1.1+MathML parsing ! +PASS XHTML1.1+MathML parsing ∃ +PASS XHTML1.1+MathML parsing ∃ +PASS XHTML1.1+MathML parsing ℰ +PASS XHTML1.1+MathML parsing ⅇ +PASS XHTML1.1+MathML parsing ⅇ +PASS XHTML1.1+MathML parsing ≒ +PASS XHTML1.1+MathML parsing Ф +PASS XHTML1.1+MathML parsing ф +PASS XHTML1.1+MathML parsing ♀ +PASS XHTML1.1+MathML parsing ffi +PASS XHTML1.1+MathML parsing ff +PASS XHTML1.1+MathML parsing ffl +PASS XHTML1.1+MathML parsing 𝔉 +PASS XHTML1.1+MathML parsing 𝔣 +PASS XHTML1.1+MathML parsing fi +PASS XHTML1.1+MathML parsing ◼ +PASS XHTML1.1+MathML parsing ▪ +PASS XHTML1.1+MathML parsing fj +PASS XHTML1.1+MathML parsing ♭ +PASS XHTML1.1+MathML parsing fl +PASS XHTML1.1+MathML parsing ▱ +PASS XHTML1.1+MathML parsing ƒ +PASS XHTML1.1+MathML parsing 𝔽 +PASS XHTML1.1+MathML parsing 𝕗 +PASS XHTML1.1+MathML parsing ∀ +PASS XHTML1.1+MathML parsing ∀ +PASS XHTML1.1+MathML parsing ⋔ +PASS XHTML1.1+MathML parsing ⫙ +PASS XHTML1.1+MathML parsing ℱ +PASS XHTML1.1+MathML parsing ⨍ +PASS XHTML1.1+MathML parsing ½ +PASS XHTML1.1+MathML parsing ⅓ +PASS XHTML1.1+MathML parsing ¼ +PASS XHTML1.1+MathML parsing ⅕ +PASS XHTML1.1+MathML parsing ⅙ +PASS XHTML1.1+MathML parsing ⅛ +PASS XHTML1.1+MathML parsing ⅔ +PASS XHTML1.1+MathML parsing ⅖ +PASS XHTML1.1+MathML parsing ¾ +PASS XHTML1.1+MathML parsing ⅗ +PASS XHTML1.1+MathML parsing ⅜ +PASS XHTML1.1+MathML parsing ⅘ +PASS XHTML1.1+MathML parsing ⅚ +PASS XHTML1.1+MathML parsing ⅝ +PASS XHTML1.1+MathML parsing ⅞ +PASS XHTML1.1+MathML parsing ⁄ +PASS XHTML1.1+MathML parsing ⌢ +PASS XHTML1.1+MathML parsing 𝒻 +PASS XHTML1.1+MathML parsing ℱ +PASS XHTML1.1+MathML parsing ǵ +PASS XHTML1.1+MathML parsing Γ +PASS XHTML1.1+MathML parsing γ +PASS XHTML1.1+MathML parsing Ϝ +PASS XHTML1.1+MathML parsing ϝ +PASS XHTML1.1+MathML parsing ⪆ +PASS XHTML1.1+MathML parsing Ğ +PASS XHTML1.1+MathML parsing ğ +PASS XHTML1.1+MathML parsing Ģ +PASS XHTML1.1+MathML parsing Ĝ +PASS XHTML1.1+MathML parsing ĝ +PASS XHTML1.1+MathML parsing Г +PASS XHTML1.1+MathML parsing г +PASS XHTML1.1+MathML parsing Ġ +PASS XHTML1.1+MathML parsing ġ +PASS XHTML1.1+MathML parsing ≥ +PASS XHTML1.1+MathML parsing ≧ +PASS XHTML1.1+MathML parsing ⪌ +PASS XHTML1.1+MathML parsing ⋛ +PASS XHTML1.1+MathML parsing ≥ +PASS XHTML1.1+MathML parsing ≧ +PASS XHTML1.1+MathML parsing ⩾ +PASS XHTML1.1+MathML parsing ⪩ +PASS XHTML1.1+MathML parsing ⩾ +PASS XHTML1.1+MathML parsing ⪀ +PASS XHTML1.1+MathML parsing ⪂ +PASS XHTML1.1+MathML parsing ⪄ +PASS XHTML1.1+MathML parsing ⋛︀ +PASS XHTML1.1+MathML parsing ⪔ +PASS XHTML1.1+MathML parsing 𝔊 +PASS XHTML1.1+MathML parsing 𝔤 +PASS XHTML1.1+MathML parsing ≫ +PASS XHTML1.1+MathML parsing ⋙ +PASS XHTML1.1+MathML parsing ⋙ +PASS XHTML1.1+MathML parsing ℷ +PASS XHTML1.1+MathML parsing Ѓ +PASS XHTML1.1+MathML parsing ѓ +PASS XHTML1.1+MathML parsing ⪥ +PASS XHTML1.1+MathML parsing ≷ +PASS XHTML1.1+MathML parsing ⪒ +PASS XHTML1.1+MathML parsing ⪤ +PASS XHTML1.1+MathML parsing ⪊ +PASS XHTML1.1+MathML parsing ⪊ +PASS XHTML1.1+MathML parsing ⪈ +PASS XHTML1.1+MathML parsing ≩ +PASS XHTML1.1+MathML parsing ⪈ +PASS XHTML1.1+MathML parsing ≩ +PASS XHTML1.1+MathML parsing ⋧ +PASS XHTML1.1+MathML parsing 𝔾 +PASS XHTML1.1+MathML parsing 𝕘 +PASS XHTML1.1+MathML parsing ` +PASS XHTML1.1+MathML parsing ≥ +PASS XHTML1.1+MathML parsing ⋛ +PASS XHTML1.1+MathML parsing ≧ +PASS XHTML1.1+MathML parsing ⪢ +PASS XHTML1.1+MathML parsing ≷ +PASS XHTML1.1+MathML parsing ⩾ +PASS XHTML1.1+MathML parsing ≳ +PASS XHTML1.1+MathML parsing 𝒢 +PASS XHTML1.1+MathML parsing ℊ +PASS XHTML1.1+MathML parsing ≳ +PASS XHTML1.1+MathML parsing ⪎ +PASS XHTML1.1+MathML parsing ⪐ +PASS XHTML1.1+MathML parsing ⪧ +PASS XHTML1.1+MathML parsing ⩺ +PASS XHTML1.1+MathML parsing > +PASS XHTML1.1+MathML parsing > +PASS XHTML1.1+MathML parsing ≫ +PASS XHTML1.1+MathML parsing ⋗ +PASS XHTML1.1+MathML parsing ⦕ +PASS XHTML1.1+MathML parsing ⩼ +PASS XHTML1.1+MathML parsing ⪆ +PASS XHTML1.1+MathML parsing ⥸ +PASS XHTML1.1+MathML parsing ⋗ +PASS XHTML1.1+MathML parsing ⋛ +PASS XHTML1.1+MathML parsing ⪌ +PASS XHTML1.1+MathML parsing ≷ +PASS XHTML1.1+MathML parsing ≳ +PASS XHTML1.1+MathML parsing ≩︀ +PASS XHTML1.1+MathML parsing ≩︀ +PASS XHTML1.1+MathML parsing ˇ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing ½ +PASS XHTML1.1+MathML parsing ℋ +PASS XHTML1.1+MathML parsing Ъ +PASS XHTML1.1+MathML parsing ъ +PASS XHTML1.1+MathML parsing ⥈ +PASS XHTML1.1+MathML parsing ↔ +PASS XHTML1.1+MathML parsing ⇔ +PASS XHTML1.1+MathML parsing ↭ +PASS XHTML1.1+MathML parsing ^ +PASS XHTML1.1+MathML parsing ℏ +PASS XHTML1.1+MathML parsing Ĥ +PASS XHTML1.1+MathML parsing ĥ +PASS XHTML1.1+MathML parsing ♥ +PASS XHTML1.1+MathML parsing ♥ +PASS XHTML1.1+MathML parsing … +PASS XHTML1.1+MathML parsing ⊹ +PASS XHTML1.1+MathML parsing 𝔥 +PASS XHTML1.1+MathML parsing ℌ +PASS XHTML1.1+MathML parsing ℋ +PASS XHTML1.1+MathML parsing ⤥ +PASS XHTML1.1+MathML parsing ⤦ +PASS XHTML1.1+MathML parsing ⇿ +PASS XHTML1.1+MathML parsing ∻ +PASS XHTML1.1+MathML parsing ↩ +PASS XHTML1.1+MathML parsing ↪ +PASS XHTML1.1+MathML parsing 𝕙 +PASS XHTML1.1+MathML parsing ℍ +PASS XHTML1.1+MathML parsing ― +PASS XHTML1.1+MathML parsing ─ +PASS XHTML1.1+MathML parsing 𝒽 +PASS XHTML1.1+MathML parsing ℋ +PASS XHTML1.1+MathML parsing ℏ +PASS XHTML1.1+MathML parsing Ħ +PASS XHTML1.1+MathML parsing ħ +PASS XHTML1.1+MathML parsing ≎ +PASS XHTML1.1+MathML parsing ≏ +PASS XHTML1.1+MathML parsing ⁃ +PASS XHTML1.1+MathML parsing ‐ +PASS XHTML1.1+MathML parsing Í +PASS XHTML1.1+MathML parsing í +PASS XHTML1.1+MathML parsing ⁣ +PASS XHTML1.1+MathML parsing Î +PASS XHTML1.1+MathML parsing î +PASS XHTML1.1+MathML parsing И +PASS XHTML1.1+MathML parsing и +PASS XHTML1.1+MathML parsing İ +PASS XHTML1.1+MathML parsing Е +PASS XHTML1.1+MathML parsing е +PASS XHTML1.1+MathML parsing ¡ +PASS XHTML1.1+MathML parsing ⇔ +PASS XHTML1.1+MathML parsing 𝔦 +PASS XHTML1.1+MathML parsing ℑ +PASS XHTML1.1+MathML parsing Ì +PASS XHTML1.1+MathML parsing ì +PASS XHTML1.1+MathML parsing ⅈ +PASS XHTML1.1+MathML parsing ⨌ +PASS XHTML1.1+MathML parsing ∭ +PASS XHTML1.1+MathML parsing ⧜ +PASS XHTML1.1+MathML parsing ℩ +PASS XHTML1.1+MathML parsing IJ +PASS XHTML1.1+MathML parsing ij +PASS XHTML1.1+MathML parsing Ī +PASS XHTML1.1+MathML parsing ī +PASS XHTML1.1+MathML parsing ℑ +PASS XHTML1.1+MathML parsing ⅈ +PASS XHTML1.1+MathML parsing ℐ +PASS XHTML1.1+MathML parsing ℑ +PASS XHTML1.1+MathML parsing ı +PASS XHTML1.1+MathML parsing ℑ +PASS XHTML1.1+MathML parsing ⊷ +PASS XHTML1.1+MathML parsing Ƶ +PASS XHTML1.1+MathML parsing ⇒ +PASS XHTML1.1+MathML parsing ℅ +PASS XHTML1.1+MathML parsing ∈ +PASS XHTML1.1+MathML parsing ∞ +PASS XHTML1.1+MathML parsing ⧝ +PASS XHTML1.1+MathML parsing ı +PASS XHTML1.1+MathML parsing ⊺ +PASS XHTML1.1+MathML parsing ∫ +PASS XHTML1.1+MathML parsing ∬ +PASS XHTML1.1+MathML parsing ℤ +PASS XHTML1.1+MathML parsing ∫ +PASS XHTML1.1+MathML parsing ⊺ +PASS XHTML1.1+MathML parsing ⋂ +PASS XHTML1.1+MathML parsing ⨗ +PASS XHTML1.1+MathML parsing ⨼ +PASS XHTML1.1+MathML parsing ⁣ +PASS XHTML1.1+MathML parsing ⁢ +PASS XHTML1.1+MathML parsing Ё +PASS XHTML1.1+MathML parsing ё +PASS XHTML1.1+MathML parsing Į +PASS XHTML1.1+MathML parsing į +PASS XHTML1.1+MathML parsing 𝕀 +PASS XHTML1.1+MathML parsing 𝕚 +PASS XHTML1.1+MathML parsing Ι +PASS XHTML1.1+MathML parsing ι +PASS XHTML1.1+MathML parsing ⨼ +PASS XHTML1.1+MathML parsing ¿ +PASS XHTML1.1+MathML parsing 𝒾 +PASS XHTML1.1+MathML parsing ℐ +PASS XHTML1.1+MathML parsing ∈ +PASS XHTML1.1+MathML parsing ⋵ +PASS XHTML1.1+MathML parsing ⋹ +PASS XHTML1.1+MathML parsing ⋴ +PASS XHTML1.1+MathML parsing ⋳ +PASS XHTML1.1+MathML parsing ∈ +PASS XHTML1.1+MathML parsing ⁢ +PASS XHTML1.1+MathML parsing Ĩ +PASS XHTML1.1+MathML parsing ĩ +PASS XHTML1.1+MathML parsing І +PASS XHTML1.1+MathML parsing і +PASS XHTML1.1+MathML parsing Ï +PASS XHTML1.1+MathML parsing ï +PASS XHTML1.1+MathML parsing Ĵ +PASS XHTML1.1+MathML parsing ĵ +PASS XHTML1.1+MathML parsing Й +PASS XHTML1.1+MathML parsing й +PASS XHTML1.1+MathML parsing 𝔍 +PASS XHTML1.1+MathML parsing 𝔧 +PASS XHTML1.1+MathML parsing ȷ +PASS XHTML1.1+MathML parsing 𝕁 +PASS XHTML1.1+MathML parsing 𝕛 +PASS XHTML1.1+MathML parsing 𝒥 +PASS XHTML1.1+MathML parsing 𝒿 +PASS XHTML1.1+MathML parsing Ј +PASS XHTML1.1+MathML parsing ј +PASS XHTML1.1+MathML parsing Є +PASS XHTML1.1+MathML parsing є +PASS XHTML1.1+MathML parsing Κ +PASS XHTML1.1+MathML parsing κ +PASS XHTML1.1+MathML parsing ϰ +PASS XHTML1.1+MathML parsing Ķ +PASS XHTML1.1+MathML parsing ķ +PASS XHTML1.1+MathML parsing К +PASS XHTML1.1+MathML parsing к +PASS XHTML1.1+MathML parsing 𝔎 +PASS XHTML1.1+MathML parsing 𝔨 +PASS XHTML1.1+MathML parsing ĸ +PASS XHTML1.1+MathML parsing Х +PASS XHTML1.1+MathML parsing х +PASS XHTML1.1+MathML parsing Ќ +PASS XHTML1.1+MathML parsing ќ +PASS XHTML1.1+MathML parsing 𝕂 +PASS XHTML1.1+MathML parsing 𝕜 +PASS XHTML1.1+MathML parsing 𝒦 +PASS XHTML1.1+MathML parsing 𝓀 +PASS XHTML1.1+MathML parsing ⇚ +PASS XHTML1.1+MathML parsing Ĺ +PASS XHTML1.1+MathML parsing ĺ +PASS XHTML1.1+MathML parsing ⦴ +PASS XHTML1.1+MathML parsing ℒ +PASS XHTML1.1+MathML parsing Λ +PASS XHTML1.1+MathML parsing λ +PASS XHTML1.1+MathML parsing ⟨ +PASS XHTML1.1+MathML parsing ⟪ +PASS XHTML1.1+MathML parsing ⦑ +PASS XHTML1.1+MathML parsing ⟨ +PASS XHTML1.1+MathML parsing ⪅ +PASS XHTML1.1+MathML parsing ℒ +PASS XHTML1.1+MathML parsing « +PASS XHTML1.1+MathML parsing ⇤ +PASS XHTML1.1+MathML parsing ⤟ +PASS XHTML1.1+MathML parsing ← +PASS XHTML1.1+MathML parsing ↞ +PASS XHTML1.1+MathML parsing ⇐ +PASS XHTML1.1+MathML parsing ⤝ +PASS XHTML1.1+MathML parsing ↩ +PASS XHTML1.1+MathML parsing ↫ +PASS XHTML1.1+MathML parsing ⤹ +PASS XHTML1.1+MathML parsing ⥳ +PASS XHTML1.1+MathML parsing ↢ +PASS XHTML1.1+MathML parsing ⤙ +PASS XHTML1.1+MathML parsing ⤛ +PASS XHTML1.1+MathML parsing ⪫ +PASS XHTML1.1+MathML parsing ⪭ +PASS XHTML1.1+MathML parsing ⪭︀ +PASS XHTML1.1+MathML parsing ⤌ +PASS XHTML1.1+MathML parsing ⤎ +PASS XHTML1.1+MathML parsing ❲ +PASS XHTML1.1+MathML parsing { +PASS XHTML1.1+MathML parsing [ +PASS XHTML1.1+MathML parsing ⦋ +PASS XHTML1.1+MathML parsing ⦏ +PASS XHTML1.1+MathML parsing ⦍ +PASS XHTML1.1+MathML parsing Ľ +PASS XHTML1.1+MathML parsing ľ +PASS XHTML1.1+MathML parsing Ļ +PASS XHTML1.1+MathML parsing ļ +PASS XHTML1.1+MathML parsing ⌈ +PASS XHTML1.1+MathML parsing { +PASS XHTML1.1+MathML parsing Л +PASS XHTML1.1+MathML parsing л +PASS XHTML1.1+MathML parsing ⤶ +PASS XHTML1.1+MathML parsing “ +PASS XHTML1.1+MathML parsing „ +PASS XHTML1.1+MathML parsing ⥧ +PASS XHTML1.1+MathML parsing ⥋ +PASS XHTML1.1+MathML parsing ↲ +PASS XHTML1.1+MathML parsing ≤ +PASS XHTML1.1+MathML parsing ≦ +PASS XHTML1.1+MathML parsing ⟨ +PASS XHTML1.1+MathML parsing ⇤ +PASS XHTML1.1+MathML parsing ← +PASS XHTML1.1+MathML parsing ← +PASS XHTML1.1+MathML parsing ⇐ +PASS XHTML1.1+MathML parsing ⇆ +PASS XHTML1.1+MathML parsing ↢ +PASS XHTML1.1+MathML parsing ⌈ +PASS XHTML1.1+MathML parsing ⟦ +PASS XHTML1.1+MathML parsing ⥡ +PASS XHTML1.1+MathML parsing ⥙ +PASS XHTML1.1+MathML parsing ⇃ +PASS XHTML1.1+MathML parsing ⌊ +PASS XHTML1.1+MathML parsing ↽ +PASS XHTML1.1+MathML parsing ↼ +PASS XHTML1.1+MathML parsing ⇇ +PASS XHTML1.1+MathML parsing ↔ +PASS XHTML1.1+MathML parsing ↔ +PASS XHTML1.1+MathML parsing ⇔ +PASS XHTML1.1+MathML parsing ⇆ +PASS XHTML1.1+MathML parsing ⇋ +PASS XHTML1.1+MathML parsing ↭ +PASS XHTML1.1+MathML parsing ⥎ +PASS XHTML1.1+MathML parsing ↤ +PASS XHTML1.1+MathML parsing ⊣ +PASS XHTML1.1+MathML parsing ⥚ +PASS XHTML1.1+MathML parsing ⋋ +PASS XHTML1.1+MathML parsing ⧏ +PASS XHTML1.1+MathML parsing ⊲ +PASS XHTML1.1+MathML parsing ⊴ +PASS XHTML1.1+MathML parsing ⥑ +PASS XHTML1.1+MathML parsing ⥠ +PASS XHTML1.1+MathML parsing ⥘ +PASS XHTML1.1+MathML parsing ↿ +PASS XHTML1.1+MathML parsing ⥒ +PASS XHTML1.1+MathML parsing ↼ +PASS XHTML1.1+MathML parsing ⪋ +PASS XHTML1.1+MathML parsing ⋚ +PASS XHTML1.1+MathML parsing ≤ +PASS XHTML1.1+MathML parsing ≦ +PASS XHTML1.1+MathML parsing ⩽ +PASS XHTML1.1+MathML parsing ⪨ +PASS XHTML1.1+MathML parsing ⩽ +PASS XHTML1.1+MathML parsing ⩿ +PASS XHTML1.1+MathML parsing ⪁ +PASS XHTML1.1+MathML parsing ⪃ +PASS XHTML1.1+MathML parsing ⋚︀ +PASS XHTML1.1+MathML parsing ⪓ +PASS XHTML1.1+MathML parsing ⪅ +PASS XHTML1.1+MathML parsing ⋖ +PASS XHTML1.1+MathML parsing ⋚ +PASS XHTML1.1+MathML parsing ⪋ +PASS XHTML1.1+MathML parsing ⋚ +PASS XHTML1.1+MathML parsing ≦ +PASS XHTML1.1+MathML parsing ≶ +PASS XHTML1.1+MathML parsing ≶ +PASS XHTML1.1+MathML parsing ⪡ +PASS XHTML1.1+MathML parsing ≲ +PASS XHTML1.1+MathML parsing ⩽ +PASS XHTML1.1+MathML parsing ≲ +PASS XHTML1.1+MathML parsing ⥼ +PASS XHTML1.1+MathML parsing ⌊ +PASS XHTML1.1+MathML parsing 𝔏 +PASS XHTML1.1+MathML parsing 𝔩 +PASS XHTML1.1+MathML parsing ≶ +PASS XHTML1.1+MathML parsing ⪑ +PASS XHTML1.1+MathML parsing ⥢ +PASS XHTML1.1+MathML parsing ↽ +PASS XHTML1.1+MathML parsing ↼ +PASS XHTML1.1+MathML parsing ⥪ +PASS XHTML1.1+MathML parsing ▄ +PASS XHTML1.1+MathML parsing Љ +PASS XHTML1.1+MathML parsing љ +PASS XHTML1.1+MathML parsing ⇇ +PASS XHTML1.1+MathML parsing ≪ +PASS XHTML1.1+MathML parsing ⋘ +PASS XHTML1.1+MathML parsing ⌞ +PASS XHTML1.1+MathML parsing ⇚ +PASS XHTML1.1+MathML parsing ⥫ +PASS XHTML1.1+MathML parsing ◺ +PASS XHTML1.1+MathML parsing Ŀ +PASS XHTML1.1+MathML parsing ŀ +PASS XHTML1.1+MathML parsing ⎰ +PASS XHTML1.1+MathML parsing ⎰ +PASS XHTML1.1+MathML parsing ⪉ +PASS XHTML1.1+MathML parsing ⪉ +PASS XHTML1.1+MathML parsing ⪇ +PASS XHTML1.1+MathML parsing ≨ +PASS XHTML1.1+MathML parsing ⪇ +PASS XHTML1.1+MathML parsing ≨ +PASS XHTML1.1+MathML parsing ⋦ +PASS XHTML1.1+MathML parsing ⟬ +PASS XHTML1.1+MathML parsing ⇽ +PASS XHTML1.1+MathML parsing ⟦ +PASS XHTML1.1+MathML parsing ⟵ +PASS XHTML1.1+MathML parsing ⟵ +PASS XHTML1.1+MathML parsing ⟸ +PASS XHTML1.1+MathML parsing ⟷ +PASS XHTML1.1+MathML parsing ⟷ +PASS XHTML1.1+MathML parsing ⟺ +PASS XHTML1.1+MathML parsing ⟼ +PASS XHTML1.1+MathML parsing ⟶ +PASS XHTML1.1+MathML parsing ⟶ +PASS XHTML1.1+MathML parsing ⟹ +PASS XHTML1.1+MathML parsing ↫ +PASS XHTML1.1+MathML parsing ↬ +PASS XHTML1.1+MathML parsing ⦅ +PASS XHTML1.1+MathML parsing 𝕃 +PASS XHTML1.1+MathML parsing 𝕝 +PASS XHTML1.1+MathML parsing ⨭ +PASS XHTML1.1+MathML parsing ⨴ +PASS XHTML1.1+MathML parsing ∗ +PASS XHTML1.1+MathML parsing _ +PASS XHTML1.1+MathML parsing ↙ +PASS XHTML1.1+MathML parsing ↘ +PASS XHTML1.1+MathML parsing ◊ +PASS XHTML1.1+MathML parsing ◊ +PASS XHTML1.1+MathML parsing ⧫ +PASS XHTML1.1+MathML parsing ( +PASS XHTML1.1+MathML parsing ⦓ +PASS XHTML1.1+MathML parsing ⇆ +PASS XHTML1.1+MathML parsing ⌟ +PASS XHTML1.1+MathML parsing ⇋ +PASS XHTML1.1+MathML parsing ⥭ +PASS XHTML1.1+MathML parsing ‎ +PASS XHTML1.1+MathML parsing ⊿ +PASS XHTML1.1+MathML parsing ‹ +PASS XHTML1.1+MathML parsing 𝓁 +PASS XHTML1.1+MathML parsing ℒ +PASS XHTML1.1+MathML parsing ↰ +PASS XHTML1.1+MathML parsing ↰ +PASS XHTML1.1+MathML parsing ≲ +PASS XHTML1.1+MathML parsing ⪍ +PASS XHTML1.1+MathML parsing ⪏ +PASS XHTML1.1+MathML parsing [ +PASS XHTML1.1+MathML parsing ‘ +PASS XHTML1.1+MathML parsing ‚ +PASS XHTML1.1+MathML parsing Ł +PASS XHTML1.1+MathML parsing ł +PASS XHTML1.1+MathML parsing ⪦ +PASS XHTML1.1+MathML parsing ⩹ +PASS XHTML1.1+MathML parsing < +FAIL XHTML1.1+MathML parsing < assert_true: expected true got false +PASS XHTML1.1+MathML parsing ≪ +PASS XHTML1.1+MathML parsing ⋖ +PASS XHTML1.1+MathML parsing ⋋ +PASS XHTML1.1+MathML parsing ⋉ +PASS XHTML1.1+MathML parsing ⥶ +PASS XHTML1.1+MathML parsing ⩻ +PASS XHTML1.1+MathML parsing ◃ +PASS XHTML1.1+MathML parsing ⊴ +PASS XHTML1.1+MathML parsing ◂ +PASS XHTML1.1+MathML parsing ⦖ +PASS XHTML1.1+MathML parsing ⥊ +PASS XHTML1.1+MathML parsing ⥦ +PASS XHTML1.1+MathML parsing ≨︀ +PASS XHTML1.1+MathML parsing ≨︀ +PASS XHTML1.1+MathML parsing ¯ +PASS XHTML1.1+MathML parsing ♂ +PASS XHTML1.1+MathML parsing ✠ +PASS XHTML1.1+MathML parsing ✠ +PASS XHTML1.1+MathML parsing ⤅ +PASS XHTML1.1+MathML parsing ↦ +PASS XHTML1.1+MathML parsing ↦ +PASS XHTML1.1+MathML parsing ↧ +PASS XHTML1.1+MathML parsing ↤ +PASS XHTML1.1+MathML parsing ↥ +PASS XHTML1.1+MathML parsing ▮ +PASS XHTML1.1+MathML parsing ⨩ +PASS XHTML1.1+MathML parsing М +PASS XHTML1.1+MathML parsing м +PASS XHTML1.1+MathML parsing — +PASS XHTML1.1+MathML parsing ∺ +PASS XHTML1.1+MathML parsing ∡ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing ℳ +PASS XHTML1.1+MathML parsing 𝔐 +PASS XHTML1.1+MathML parsing 𝔪 +PASS XHTML1.1+MathML parsing ℧ +PASS XHTML1.1+MathML parsing µ +PASS XHTML1.1+MathML parsing * +PASS XHTML1.1+MathML parsing ⫰ +PASS XHTML1.1+MathML parsing ∣ +PASS XHTML1.1+MathML parsing · +PASS XHTML1.1+MathML parsing ⊟ +PASS XHTML1.1+MathML parsing − +PASS XHTML1.1+MathML parsing ∸ +PASS XHTML1.1+MathML parsing ⨪ +PASS XHTML1.1+MathML parsing ∓ +PASS XHTML1.1+MathML parsing ⫛ +PASS XHTML1.1+MathML parsing … +PASS XHTML1.1+MathML parsing ∓ +PASS XHTML1.1+MathML parsing ⊧ +PASS XHTML1.1+MathML parsing 𝕄 +PASS XHTML1.1+MathML parsing 𝕞 +PASS XHTML1.1+MathML parsing ∓ +PASS XHTML1.1+MathML parsing 𝓂 +PASS XHTML1.1+MathML parsing ℳ +PASS XHTML1.1+MathML parsing ∾ +PASS XHTML1.1+MathML parsing Μ +PASS XHTML1.1+MathML parsing μ +PASS XHTML1.1+MathML parsing ⊸ +PASS XHTML1.1+MathML parsing ⊸ +PASS XHTML1.1+MathML parsing ∇ +PASS XHTML1.1+MathML parsing Ń +PASS XHTML1.1+MathML parsing ń +PASS XHTML1.1+MathML parsing ∠⃒ +PASS XHTML1.1+MathML parsing ≉ +PASS XHTML1.1+MathML parsing ⩰̸ +PASS XHTML1.1+MathML parsing ≋̸ +PASS XHTML1.1+MathML parsing ʼn +PASS XHTML1.1+MathML parsing ≉ +PASS XHTML1.1+MathML parsing ♮ +PASS XHTML1.1+MathML parsing ℕ +PASS XHTML1.1+MathML parsing ♮ +PASS XHTML1.1+MathML parsing +PASS XHTML1.1+MathML parsing ≎̸ +PASS XHTML1.1+MathML parsing ≏̸ +PASS XHTML1.1+MathML parsing ⩃ +PASS XHTML1.1+MathML parsing Ň +PASS XHTML1.1+MathML parsing ň +PASS XHTML1.1+MathML parsing Ņ +PASS XHTML1.1+MathML parsing ņ +PASS XHTML1.1+MathML parsing ≇ +PASS XHTML1.1+MathML parsing ⩭̸ +PASS XHTML1.1+MathML parsing ⩂ +PASS XHTML1.1+MathML parsing Н +PASS XHTML1.1+MathML parsing н +PASS XHTML1.1+MathML parsing – +PASS XHTML1.1+MathML parsing ⤤ +PASS XHTML1.1+MathML parsing ↗ +PASS XHTML1.1+MathML parsing ⇗ +PASS XHTML1.1+MathML parsing ↗ +PASS XHTML1.1+MathML parsing ≠ +PASS XHTML1.1+MathML parsing ≐̸ +PASS XHTML1.1+MathML parsing ​ +PASS XHTML1.1+MathML parsing ​ +PASS XHTML1.1+MathML parsing ​ +PASS XHTML1.1+MathML parsing ​ +PASS XHTML1.1+MathML parsing ≢ +PASS XHTML1.1+MathML parsing ⤨ +PASS XHTML1.1+MathML parsing ≂̸ +PASS XHTML1.1+MathML parsing ≫ +PASS XHTML1.1+MathML parsing ≪ +PASS XHTML1.1+MathML parsing 
 +PASS XHTML1.1+MathML parsing ∄ +PASS XHTML1.1+MathML parsing ∄ +PASS XHTML1.1+MathML parsing 𝔑 +PASS XHTML1.1+MathML parsing 𝔫 +PASS XHTML1.1+MathML parsing ≧̸ +PASS XHTML1.1+MathML parsing ≱ +PASS XHTML1.1+MathML parsing ≱ +PASS XHTML1.1+MathML parsing ≧̸ +PASS XHTML1.1+MathML parsing ⩾̸ +PASS XHTML1.1+MathML parsing ⩾̸ +PASS XHTML1.1+MathML parsing ⋙̸ +PASS XHTML1.1+MathML parsing ≵ +PASS XHTML1.1+MathML parsing ≫⃒ +PASS XHTML1.1+MathML parsing ≯ +PASS XHTML1.1+MathML parsing ≯ +PASS XHTML1.1+MathML parsing ≫̸ +PASS XHTML1.1+MathML parsing ↮ +PASS XHTML1.1+MathML parsing ⇎ +PASS XHTML1.1+MathML parsing ⫲ +PASS XHTML1.1+MathML parsing ∋ +PASS XHTML1.1+MathML parsing ⋼ +PASS XHTML1.1+MathML parsing ⋺ +PASS XHTML1.1+MathML parsing ∋ +PASS XHTML1.1+MathML parsing Њ +PASS XHTML1.1+MathML parsing њ +PASS XHTML1.1+MathML parsing ↚ +PASS XHTML1.1+MathML parsing ⇍ +PASS XHTML1.1+MathML parsing ‥ +PASS XHTML1.1+MathML parsing ≦̸ +PASS XHTML1.1+MathML parsing ≰ +PASS XHTML1.1+MathML parsing ↚ +PASS XHTML1.1+MathML parsing ⇍ +PASS XHTML1.1+MathML parsing ↮ +PASS XHTML1.1+MathML parsing ⇎ +PASS XHTML1.1+MathML parsing ≰ +PASS XHTML1.1+MathML parsing ≦̸ +PASS XHTML1.1+MathML parsing ⩽̸ +PASS XHTML1.1+MathML parsing ⩽̸ +PASS XHTML1.1+MathML parsing ≮ +PASS XHTML1.1+MathML parsing ⋘̸ +PASS XHTML1.1+MathML parsing ≴ +PASS XHTML1.1+MathML parsing ≪⃒ +PASS XHTML1.1+MathML parsing ≮ +PASS XHTML1.1+MathML parsing ⋪ +PASS XHTML1.1+MathML parsing ⋬ +PASS XHTML1.1+MathML parsing ≪̸ +PASS XHTML1.1+MathML parsing ∤ +PASS XHTML1.1+MathML parsing ⁠ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing 𝕟 +PASS XHTML1.1+MathML parsing ℕ +PASS XHTML1.1+MathML parsing ⫬ +PASS XHTML1.1+MathML parsing ¬ +PASS XHTML1.1+MathML parsing ≢ +PASS XHTML1.1+MathML parsing ≭ +PASS XHTML1.1+MathML parsing ∦ +PASS XHTML1.1+MathML parsing ∉ +PASS XHTML1.1+MathML parsing ≠ +PASS XHTML1.1+MathML parsing ≂̸ +PASS XHTML1.1+MathML parsing ∄ +PASS XHTML1.1+MathML parsing ≯ +PASS XHTML1.1+MathML parsing ≱ +PASS XHTML1.1+MathML parsing ≧̸ +PASS XHTML1.1+MathML parsing ≫̸ +PASS XHTML1.1+MathML parsing ≹ +PASS XHTML1.1+MathML parsing ⩾̸ +PASS XHTML1.1+MathML parsing ≵ +PASS XHTML1.1+MathML parsing ≎̸ +PASS XHTML1.1+MathML parsing ≏̸ +PASS XHTML1.1+MathML parsing ∉ +PASS XHTML1.1+MathML parsing ⋵̸ +PASS XHTML1.1+MathML parsing ⋹̸ +PASS XHTML1.1+MathML parsing ∉ +PASS XHTML1.1+MathML parsing ⋷ +PASS XHTML1.1+MathML parsing ⋶ +PASS XHTML1.1+MathML parsing ⧏̸ +PASS XHTML1.1+MathML parsing ⋪ +PASS XHTML1.1+MathML parsing ⋬ +PASS XHTML1.1+MathML parsing ≮ +PASS XHTML1.1+MathML parsing ≰ +PASS XHTML1.1+MathML parsing ≸ +PASS XHTML1.1+MathML parsing ≪̸ +PASS XHTML1.1+MathML parsing ⩽̸ +PASS XHTML1.1+MathML parsing ≴ +PASS XHTML1.1+MathML parsing ⪢̸ +PASS XHTML1.1+MathML parsing ⪡̸ +PASS XHTML1.1+MathML parsing ∌ +PASS XHTML1.1+MathML parsing ∌ +PASS XHTML1.1+MathML parsing ⋾ +PASS XHTML1.1+MathML parsing ⋽ +PASS XHTML1.1+MathML parsing ⊀ +PASS XHTML1.1+MathML parsing ⪯̸ +PASS XHTML1.1+MathML parsing ⋠ +PASS XHTML1.1+MathML parsing ∌ +PASS XHTML1.1+MathML parsing ⧐̸ +PASS XHTML1.1+MathML parsing ⋫ +PASS XHTML1.1+MathML parsing ⋭ +PASS XHTML1.1+MathML parsing ⊏̸ +PASS XHTML1.1+MathML parsing ⋢ +PASS XHTML1.1+MathML parsing ⊐̸ +PASS XHTML1.1+MathML parsing ⋣ +PASS XHTML1.1+MathML parsing ⊂⃒ +PASS XHTML1.1+MathML parsing ⊈ +PASS XHTML1.1+MathML parsing ⊁ +PASS XHTML1.1+MathML parsing ⪰̸ +PASS XHTML1.1+MathML parsing ⋡ +PASS XHTML1.1+MathML parsing ≿̸ +PASS XHTML1.1+MathML parsing ⊃⃒ +PASS XHTML1.1+MathML parsing ⊉ +PASS XHTML1.1+MathML parsing ≁ +PASS XHTML1.1+MathML parsing ≄ +PASS XHTML1.1+MathML parsing ≇ +PASS XHTML1.1+MathML parsing ≉ +PASS XHTML1.1+MathML parsing ∤ +PASS XHTML1.1+MathML parsing ∦ +PASS XHTML1.1+MathML parsing ∦ +PASS XHTML1.1+MathML parsing ⫽⃥ +PASS XHTML1.1+MathML parsing ∂̸ +PASS XHTML1.1+MathML parsing ⨔ +PASS XHTML1.1+MathML parsing ⊀ +PASS XHTML1.1+MathML parsing ⋠ +PASS XHTML1.1+MathML parsing ⊀ +PASS XHTML1.1+MathML parsing ⪯̸ +PASS XHTML1.1+MathML parsing ⪯̸ +PASS XHTML1.1+MathML parsing ⤳̸ +PASS XHTML1.1+MathML parsing ↛ +PASS XHTML1.1+MathML parsing ⇏ +PASS XHTML1.1+MathML parsing ↝̸ +PASS XHTML1.1+MathML parsing ↛ +PASS XHTML1.1+MathML parsing ⇏ +PASS XHTML1.1+MathML parsing ⋫ +PASS XHTML1.1+MathML parsing ⋭ +PASS XHTML1.1+MathML parsing ⊁ +PASS XHTML1.1+MathML parsing ⋡ +PASS XHTML1.1+MathML parsing ⪰̸ +PASS XHTML1.1+MathML parsing 𝒩 +PASS XHTML1.1+MathML parsing 𝓃 +PASS XHTML1.1+MathML parsing ∤ +PASS XHTML1.1+MathML parsing ∦ +PASS XHTML1.1+MathML parsing ≁ +PASS XHTML1.1+MathML parsing ≄ +PASS XHTML1.1+MathML parsing ≄ +PASS XHTML1.1+MathML parsing ∤ +PASS XHTML1.1+MathML parsing ∦ +PASS XHTML1.1+MathML parsing ⋢ +PASS XHTML1.1+MathML parsing ⋣ +PASS XHTML1.1+MathML parsing ⊄ +PASS XHTML1.1+MathML parsing ⫅̸ +PASS XHTML1.1+MathML parsing ⊈ +PASS XHTML1.1+MathML parsing ⊂⃒ +PASS XHTML1.1+MathML parsing ⊈ +PASS XHTML1.1+MathML parsing ⫅̸ +PASS XHTML1.1+MathML parsing ⊁ +PASS XHTML1.1+MathML parsing ⪰̸ +PASS XHTML1.1+MathML parsing ⊅ +PASS XHTML1.1+MathML parsing ⫆̸ +PASS XHTML1.1+MathML parsing ⊉ +PASS XHTML1.1+MathML parsing ⊃⃒ +PASS XHTML1.1+MathML parsing ⊉ +PASS XHTML1.1+MathML parsing ⫆̸ +PASS XHTML1.1+MathML parsing ≹ +PASS XHTML1.1+MathML parsing Ñ +PASS XHTML1.1+MathML parsing ñ +PASS XHTML1.1+MathML parsing ≸ +PASS XHTML1.1+MathML parsing ⋪ +PASS XHTML1.1+MathML parsing ⋬ +PASS XHTML1.1+MathML parsing ⋫ +PASS XHTML1.1+MathML parsing ⋭ +PASS XHTML1.1+MathML parsing Ν +PASS XHTML1.1+MathML parsing ν +PASS XHTML1.1+MathML parsing # +PASS XHTML1.1+MathML parsing № +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing ≍⃒ +PASS XHTML1.1+MathML parsing ⊬ +PASS XHTML1.1+MathML parsing ⊭ +PASS XHTML1.1+MathML parsing ⊮ +PASS XHTML1.1+MathML parsing ⊯ +PASS XHTML1.1+MathML parsing ≥⃒ +PASS XHTML1.1+MathML parsing >⃒ +PASS XHTML1.1+MathML parsing ⤄ +PASS XHTML1.1+MathML parsing ⧞ +PASS XHTML1.1+MathML parsing ⤂ +PASS XHTML1.1+MathML parsing ≤⃒ +FAIL XHTML1.1+MathML parsing <⃒ assert_equals: XHTML1.1+MathML parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML1.1+MathML parsing ⊴⃒ +PASS XHTML1.1+MathML parsing ⤃ +PASS XHTML1.1+MathML parsing ⊵⃒ +PASS XHTML1.1+MathML parsing ∼⃒ +PASS XHTML1.1+MathML parsing ⤣ +PASS XHTML1.1+MathML parsing ↖ +PASS XHTML1.1+MathML parsing ⇖ +PASS XHTML1.1+MathML parsing ↖ +PASS XHTML1.1+MathML parsing ⤧ +PASS XHTML1.1+MathML parsing Ó +PASS XHTML1.1+MathML parsing ó +PASS XHTML1.1+MathML parsing ⊛ +PASS XHTML1.1+MathML parsing Ô +PASS XHTML1.1+MathML parsing ô +PASS XHTML1.1+MathML parsing ⊚ +PASS XHTML1.1+MathML parsing О +PASS XHTML1.1+MathML parsing о +PASS XHTML1.1+MathML parsing ⊝ +PASS XHTML1.1+MathML parsing Ő +PASS XHTML1.1+MathML parsing ő +PASS XHTML1.1+MathML parsing ⨸ +PASS XHTML1.1+MathML parsing ⊙ +PASS XHTML1.1+MathML parsing ⦼ +PASS XHTML1.1+MathML parsing Œ +PASS XHTML1.1+MathML parsing œ +PASS XHTML1.1+MathML parsing ⦿ +PASS XHTML1.1+MathML parsing 𝔒 +PASS XHTML1.1+MathML parsing 𝔬 +PASS XHTML1.1+MathML parsing ˛ +PASS XHTML1.1+MathML parsing Ò +PASS XHTML1.1+MathML parsing ò +PASS XHTML1.1+MathML parsing ⧁ +PASS XHTML1.1+MathML parsing ⦵ +PASS XHTML1.1+MathML parsing Ω +PASS XHTML1.1+MathML parsing ∮ +PASS XHTML1.1+MathML parsing ↺ +PASS XHTML1.1+MathML parsing ⦾ +PASS XHTML1.1+MathML parsing ⦻ +PASS XHTML1.1+MathML parsing ‾ +PASS XHTML1.1+MathML parsing ⧀ +PASS XHTML1.1+MathML parsing Ō +PASS XHTML1.1+MathML parsing ō +PASS XHTML1.1+MathML parsing Ω +PASS XHTML1.1+MathML parsing ω +PASS XHTML1.1+MathML parsing Ο +PASS XHTML1.1+MathML parsing ο +PASS XHTML1.1+MathML parsing ⦶ +PASS XHTML1.1+MathML parsing ⊖ +PASS XHTML1.1+MathML parsing 𝕆 +PASS XHTML1.1+MathML parsing 𝕠 +PASS XHTML1.1+MathML parsing ⦷ +PASS XHTML1.1+MathML parsing “ +PASS XHTML1.1+MathML parsing ‘ +PASS XHTML1.1+MathML parsing ⦹ +PASS XHTML1.1+MathML parsing ⊕ +PASS XHTML1.1+MathML parsing ↻ +PASS XHTML1.1+MathML parsing ⩔ +PASS XHTML1.1+MathML parsing ∨ +PASS XHTML1.1+MathML parsing ⩝ +PASS XHTML1.1+MathML parsing ℴ +PASS XHTML1.1+MathML parsing ℴ +PASS XHTML1.1+MathML parsing ª +PASS XHTML1.1+MathML parsing º +PASS XHTML1.1+MathML parsing ⊶ +PASS XHTML1.1+MathML parsing ⩖ +PASS XHTML1.1+MathML parsing ⩗ +PASS XHTML1.1+MathML parsing ⩛ +PASS XHTML1.1+MathML parsing Ⓢ +PASS XHTML1.1+MathML parsing 𝒪 +PASS XHTML1.1+MathML parsing ℴ +PASS XHTML1.1+MathML parsing Ø +PASS XHTML1.1+MathML parsing ø +PASS XHTML1.1+MathML parsing ⊘ +PASS XHTML1.1+MathML parsing Õ +PASS XHTML1.1+MathML parsing õ +PASS XHTML1.1+MathML parsing ⨶ +PASS XHTML1.1+MathML parsing ⨷ +PASS XHTML1.1+MathML parsing ⊗ +PASS XHTML1.1+MathML parsing Ö +PASS XHTML1.1+MathML parsing ö +PASS XHTML1.1+MathML parsing ⌽ +PASS XHTML1.1+MathML parsing ‾ +PASS XHTML1.1+MathML parsing ⏞ +PASS XHTML1.1+MathML parsing ⎴ +PASS XHTML1.1+MathML parsing ⏜ +PASS XHTML1.1+MathML parsing ¶ +PASS XHTML1.1+MathML parsing ∥ +PASS XHTML1.1+MathML parsing ∥ +PASS XHTML1.1+MathML parsing ⫳ +PASS XHTML1.1+MathML parsing ⫽ +PASS XHTML1.1+MathML parsing ∂ +PASS XHTML1.1+MathML parsing ∂ +PASS XHTML1.1+MathML parsing П +PASS XHTML1.1+MathML parsing п +PASS XHTML1.1+MathML parsing % +PASS XHTML1.1+MathML parsing . +PASS XHTML1.1+MathML parsing ‰ +PASS XHTML1.1+MathML parsing ⊥ +PASS XHTML1.1+MathML parsing ‱ +PASS XHTML1.1+MathML parsing 𝔓 +PASS XHTML1.1+MathML parsing 𝔭 +PASS XHTML1.1+MathML parsing Φ +PASS XHTML1.1+MathML parsing φ +PASS XHTML1.1+MathML parsing ϕ +PASS XHTML1.1+MathML parsing ℳ +PASS XHTML1.1+MathML parsing ☎ +PASS XHTML1.1+MathML parsing Π +PASS XHTML1.1+MathML parsing π +PASS XHTML1.1+MathML parsing ⋔ +PASS XHTML1.1+MathML parsing ϖ +PASS XHTML1.1+MathML parsing ℏ +PASS XHTML1.1+MathML parsing ℎ +PASS XHTML1.1+MathML parsing ℏ +PASS XHTML1.1+MathML parsing ⨣ +PASS XHTML1.1+MathML parsing ⊞ +PASS XHTML1.1+MathML parsing ⨢ +PASS XHTML1.1+MathML parsing + +PASS XHTML1.1+MathML parsing ∔ +PASS XHTML1.1+MathML parsing ⨥ +PASS XHTML1.1+MathML parsing ⩲ +PASS XHTML1.1+MathML parsing ± +PASS XHTML1.1+MathML parsing ± +PASS XHTML1.1+MathML parsing ⨦ +PASS XHTML1.1+MathML parsing ⨧ +PASS XHTML1.1+MathML parsing ± +PASS XHTML1.1+MathML parsing ℌ +PASS XHTML1.1+MathML parsing ⨕ +PASS XHTML1.1+MathML parsing 𝕡 +PASS XHTML1.1+MathML parsing ℙ +PASS XHTML1.1+MathML parsing £ +PASS XHTML1.1+MathML parsing ⪷ +PASS XHTML1.1+MathML parsing ⪻ +PASS XHTML1.1+MathML parsing ≺ +PASS XHTML1.1+MathML parsing ≼ +PASS XHTML1.1+MathML parsing ⪷ +PASS XHTML1.1+MathML parsing ≺ +PASS XHTML1.1+MathML parsing ≼ +PASS XHTML1.1+MathML parsing ≺ +PASS XHTML1.1+MathML parsing ⪯ +PASS XHTML1.1+MathML parsing ≼ +PASS XHTML1.1+MathML parsing ≾ +PASS XHTML1.1+MathML parsing ⪯ +PASS XHTML1.1+MathML parsing ⪹ +PASS XHTML1.1+MathML parsing ⪵ +PASS XHTML1.1+MathML parsing ⋨ +PASS XHTML1.1+MathML parsing ⪯ +PASS XHTML1.1+MathML parsing ⪳ +PASS XHTML1.1+MathML parsing ≾ +PASS XHTML1.1+MathML parsing ′ +PASS XHTML1.1+MathML parsing ″ +PASS XHTML1.1+MathML parsing ℙ +PASS XHTML1.1+MathML parsing ⪹ +PASS XHTML1.1+MathML parsing ⪵ +PASS XHTML1.1+MathML parsing ⋨ +PASS XHTML1.1+MathML parsing ∏ +PASS XHTML1.1+MathML parsing ∏ +PASS XHTML1.1+MathML parsing ⌮ +PASS XHTML1.1+MathML parsing ⌒ +PASS XHTML1.1+MathML parsing ⌓ +PASS XHTML1.1+MathML parsing ∝ +PASS XHTML1.1+MathML parsing ∝ +PASS XHTML1.1+MathML parsing ∷ +PASS XHTML1.1+MathML parsing ∝ +PASS XHTML1.1+MathML parsing ≾ +PASS XHTML1.1+MathML parsing ⊰ +PASS XHTML1.1+MathML parsing 𝒫 +PASS XHTML1.1+MathML parsing 𝓅 +PASS XHTML1.1+MathML parsing Ψ +PASS XHTML1.1+MathML parsing ψ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing 𝔔 +PASS XHTML1.1+MathML parsing 𝔮 +PASS XHTML1.1+MathML parsing ⨌ +PASS XHTML1.1+MathML parsing 𝕢 +PASS XHTML1.1+MathML parsing ℚ +PASS XHTML1.1+MathML parsing ⁗ +PASS XHTML1.1+MathML parsing 𝒬 +PASS XHTML1.1+MathML parsing 𝓆 +PASS XHTML1.1+MathML parsing ℍ +PASS XHTML1.1+MathML parsing ⨖ +PASS XHTML1.1+MathML parsing ? +PASS XHTML1.1+MathML parsing ≟ +PASS XHTML1.1+MathML parsing " +PASS XHTML1.1+MathML parsing " +PASS XHTML1.1+MathML parsing ⇛ +PASS XHTML1.1+MathML parsing ∽̱ +PASS XHTML1.1+MathML parsing Ŕ +PASS XHTML1.1+MathML parsing ŕ +PASS XHTML1.1+MathML parsing √ +PASS XHTML1.1+MathML parsing ⦳ +PASS XHTML1.1+MathML parsing ⟩ +PASS XHTML1.1+MathML parsing ⟫ +PASS XHTML1.1+MathML parsing ⦒ +PASS XHTML1.1+MathML parsing ⦥ +PASS XHTML1.1+MathML parsing ⟩ +PASS XHTML1.1+MathML parsing » +PASS XHTML1.1+MathML parsing ⥵ +PASS XHTML1.1+MathML parsing ⇥ +PASS XHTML1.1+MathML parsing ⤠ +PASS XHTML1.1+MathML parsing ⤳ +PASS XHTML1.1+MathML parsing → +PASS XHTML1.1+MathML parsing ↠ +PASS XHTML1.1+MathML parsing ⇒ +PASS XHTML1.1+MathML parsing ⤞ +PASS XHTML1.1+MathML parsing ↪ +PASS XHTML1.1+MathML parsing ↬ +PASS XHTML1.1+MathML parsing ⥅ +PASS XHTML1.1+MathML parsing ⥴ +PASS XHTML1.1+MathML parsing ⤖ +PASS XHTML1.1+MathML parsing ↣ +PASS XHTML1.1+MathML parsing ↝ +PASS XHTML1.1+MathML parsing ⤚ +PASS XHTML1.1+MathML parsing ⤜ +PASS XHTML1.1+MathML parsing ∶ +PASS XHTML1.1+MathML parsing ℚ +PASS XHTML1.1+MathML parsing ⤍ +PASS XHTML1.1+MathML parsing ⤏ +PASS XHTML1.1+MathML parsing ⤐ +PASS XHTML1.1+MathML parsing ❳ +PASS XHTML1.1+MathML parsing } +PASS XHTML1.1+MathML parsing ] +PASS XHTML1.1+MathML parsing ⦌ +PASS XHTML1.1+MathML parsing ⦎ +PASS XHTML1.1+MathML parsing ⦐ +PASS XHTML1.1+MathML parsing Ř +PASS XHTML1.1+MathML parsing ř +PASS XHTML1.1+MathML parsing Ŗ +PASS XHTML1.1+MathML parsing ŗ +PASS XHTML1.1+MathML parsing ⌉ +PASS XHTML1.1+MathML parsing } +PASS XHTML1.1+MathML parsing Р +PASS XHTML1.1+MathML parsing р +PASS XHTML1.1+MathML parsing ⤷ +PASS XHTML1.1+MathML parsing ⥩ +PASS XHTML1.1+MathML parsing ” +PASS XHTML1.1+MathML parsing ” +PASS XHTML1.1+MathML parsing ↳ +PASS XHTML1.1+MathML parsing ℜ +PASS XHTML1.1+MathML parsing ℛ +PASS XHTML1.1+MathML parsing ℜ +PASS XHTML1.1+MathML parsing ℝ +PASS XHTML1.1+MathML parsing ℜ +PASS XHTML1.1+MathML parsing ▭ +PASS XHTML1.1+MathML parsing ® +PASS XHTML1.1+MathML parsing ® +PASS XHTML1.1+MathML parsing ∋ +PASS XHTML1.1+MathML parsing ⇋ +PASS XHTML1.1+MathML parsing ⥯ +PASS XHTML1.1+MathML parsing ⥽ +PASS XHTML1.1+MathML parsing ⌋ +PASS XHTML1.1+MathML parsing 𝔯 +PASS XHTML1.1+MathML parsing ℜ +PASS XHTML1.1+MathML parsing ⥤ +PASS XHTML1.1+MathML parsing ⇁ +PASS XHTML1.1+MathML parsing ⇀ +PASS XHTML1.1+MathML parsing ⥬ +PASS XHTML1.1+MathML parsing Ρ +PASS XHTML1.1+MathML parsing ρ +PASS XHTML1.1+MathML parsing ϱ +PASS XHTML1.1+MathML parsing ⟩ +PASS XHTML1.1+MathML parsing ⇥ +PASS XHTML1.1+MathML parsing → +PASS XHTML1.1+MathML parsing → +PASS XHTML1.1+MathML parsing ⇒ +PASS XHTML1.1+MathML parsing ⇄ +PASS XHTML1.1+MathML parsing ↣ +PASS XHTML1.1+MathML parsing ⌉ +PASS XHTML1.1+MathML parsing ⟧ +PASS XHTML1.1+MathML parsing ⥝ +PASS XHTML1.1+MathML parsing ⥕ +PASS XHTML1.1+MathML parsing ⇂ +PASS XHTML1.1+MathML parsing ⌋ +PASS XHTML1.1+MathML parsing ⇁ +PASS XHTML1.1+MathML parsing ⇀ +PASS XHTML1.1+MathML parsing ⇄ +PASS XHTML1.1+MathML parsing ⇌ +PASS XHTML1.1+MathML parsing ⇉ +PASS XHTML1.1+MathML parsing ↝ +PASS XHTML1.1+MathML parsing ↦ +PASS XHTML1.1+MathML parsing ⊢ +PASS XHTML1.1+MathML parsing ⥛ +PASS XHTML1.1+MathML parsing ⋌ +PASS XHTML1.1+MathML parsing ⧐ +PASS XHTML1.1+MathML parsing ⊳ +PASS XHTML1.1+MathML parsing ⊵ +PASS XHTML1.1+MathML parsing ⥏ +PASS XHTML1.1+MathML parsing ⥜ +PASS XHTML1.1+MathML parsing ⥔ +PASS XHTML1.1+MathML parsing ↾ +PASS XHTML1.1+MathML parsing ⥓ +PASS XHTML1.1+MathML parsing ⇀ +PASS XHTML1.1+MathML parsing ˚ +PASS XHTML1.1+MathML parsing ≓ +PASS XHTML1.1+MathML parsing ⇄ +PASS XHTML1.1+MathML parsing ⇌ +PASS XHTML1.1+MathML parsing ‏ +PASS XHTML1.1+MathML parsing ⎱ +PASS XHTML1.1+MathML parsing ⎱ +PASS XHTML1.1+MathML parsing ⫮ +PASS XHTML1.1+MathML parsing ⟭ +PASS XHTML1.1+MathML parsing ⇾ +PASS XHTML1.1+MathML parsing ⟧ +PASS XHTML1.1+MathML parsing ⦆ +PASS XHTML1.1+MathML parsing 𝕣 +PASS XHTML1.1+MathML parsing ℝ +PASS XHTML1.1+MathML parsing ⨮ +PASS XHTML1.1+MathML parsing ⨵ +PASS XHTML1.1+MathML parsing ⥰ +PASS XHTML1.1+MathML parsing ) +PASS XHTML1.1+MathML parsing ⦔ +PASS XHTML1.1+MathML parsing ⨒ +PASS XHTML1.1+MathML parsing ⇉ +PASS XHTML1.1+MathML parsing ⇛ +PASS XHTML1.1+MathML parsing › +PASS XHTML1.1+MathML parsing 𝓇 +PASS XHTML1.1+MathML parsing ℛ +PASS XHTML1.1+MathML parsing ↱ +PASS XHTML1.1+MathML parsing ↱ +PASS XHTML1.1+MathML parsing ] +PASS XHTML1.1+MathML parsing ’ +PASS XHTML1.1+MathML parsing ’ +PASS XHTML1.1+MathML parsing ⋌ +PASS XHTML1.1+MathML parsing ⋊ +PASS XHTML1.1+MathML parsing ▹ +PASS XHTML1.1+MathML parsing ⊵ +PASS XHTML1.1+MathML parsing ▸ +PASS XHTML1.1+MathML parsing ⧎ +PASS XHTML1.1+MathML parsing ⧴ +PASS XHTML1.1+MathML parsing ⥨ +PASS XHTML1.1+MathML parsing ℞ +PASS XHTML1.1+MathML parsing Ś +PASS XHTML1.1+MathML parsing ś +PASS XHTML1.1+MathML parsing ‚ +PASS XHTML1.1+MathML parsing ⪸ +PASS XHTML1.1+MathML parsing Š +PASS XHTML1.1+MathML parsing š +PASS XHTML1.1+MathML parsing ⪼ +PASS XHTML1.1+MathML parsing ≻ +PASS XHTML1.1+MathML parsing ≽ +PASS XHTML1.1+MathML parsing ⪰ +PASS XHTML1.1+MathML parsing ⪴ +PASS XHTML1.1+MathML parsing Ş +PASS XHTML1.1+MathML parsing ş +PASS XHTML1.1+MathML parsing Ŝ +PASS XHTML1.1+MathML parsing ŝ +PASS XHTML1.1+MathML parsing ⪺ +PASS XHTML1.1+MathML parsing ⪶ +PASS XHTML1.1+MathML parsing ⋩ +PASS XHTML1.1+MathML parsing ⨓ +PASS XHTML1.1+MathML parsing ≿ +PASS XHTML1.1+MathML parsing С +PASS XHTML1.1+MathML parsing с +PASS XHTML1.1+MathML parsing ⊡ +PASS XHTML1.1+MathML parsing ⋅ +PASS XHTML1.1+MathML parsing ⩦ +PASS XHTML1.1+MathML parsing ⤥ +PASS XHTML1.1+MathML parsing ↘ +PASS XHTML1.1+MathML parsing ⇘ +PASS XHTML1.1+MathML parsing ↘ +PASS XHTML1.1+MathML parsing § +PASS XHTML1.1+MathML parsing ; +PASS XHTML1.1+MathML parsing ⤩ +PASS XHTML1.1+MathML parsing ∖ +PASS XHTML1.1+MathML parsing ∖ +PASS XHTML1.1+MathML parsing ✶ +PASS XHTML1.1+MathML parsing 𝔖 +PASS XHTML1.1+MathML parsing 𝔰 +PASS XHTML1.1+MathML parsing ⌢ +PASS XHTML1.1+MathML parsing ♯ +PASS XHTML1.1+MathML parsing Щ +PASS XHTML1.1+MathML parsing щ +PASS XHTML1.1+MathML parsing Ш +PASS XHTML1.1+MathML parsing ш +PASS XHTML1.1+MathML parsing ↓ +PASS XHTML1.1+MathML parsing ← +PASS XHTML1.1+MathML parsing ∣ +PASS XHTML1.1+MathML parsing ∥ +PASS XHTML1.1+MathML parsing → +PASS XHTML1.1+MathML parsing ↑ +PASS XHTML1.1+MathML parsing ­ +PASS XHTML1.1+MathML parsing Σ +PASS XHTML1.1+MathML parsing σ +PASS XHTML1.1+MathML parsing ς +PASS XHTML1.1+MathML parsing ς +PASS XHTML1.1+MathML parsing ∼ +PASS XHTML1.1+MathML parsing ⩪ +PASS XHTML1.1+MathML parsing ≃ +PASS XHTML1.1+MathML parsing ≃ +PASS XHTML1.1+MathML parsing ⪞ +PASS XHTML1.1+MathML parsing ⪠ +PASS XHTML1.1+MathML parsing ⪝ +PASS XHTML1.1+MathML parsing ⪟ +PASS XHTML1.1+MathML parsing ≆ +PASS XHTML1.1+MathML parsing ⨤ +PASS XHTML1.1+MathML parsing ⥲ +PASS XHTML1.1+MathML parsing ← +PASS XHTML1.1+MathML parsing ∘ +PASS XHTML1.1+MathML parsing ∖ +PASS XHTML1.1+MathML parsing ⨳ +PASS XHTML1.1+MathML parsing ⧤ +PASS XHTML1.1+MathML parsing ∣ +PASS XHTML1.1+MathML parsing ⌣ +PASS XHTML1.1+MathML parsing ⪪ +PASS XHTML1.1+MathML parsing ⪬ +PASS XHTML1.1+MathML parsing ⪬︀ +PASS XHTML1.1+MathML parsing Ь +PASS XHTML1.1+MathML parsing ь +PASS XHTML1.1+MathML parsing ⌿ +PASS XHTML1.1+MathML parsing ⧄ +PASS XHTML1.1+MathML parsing / +PASS XHTML1.1+MathML parsing 𝕊 +PASS XHTML1.1+MathML parsing 𝕤 +PASS XHTML1.1+MathML parsing ♠ +PASS XHTML1.1+MathML parsing ♠ +PASS XHTML1.1+MathML parsing ∥ +PASS XHTML1.1+MathML parsing ⊓ +PASS XHTML1.1+MathML parsing ⊓︀ +PASS XHTML1.1+MathML parsing ⊔ +PASS XHTML1.1+MathML parsing ⊔︀ +PASS XHTML1.1+MathML parsing √ +PASS XHTML1.1+MathML parsing ⊏ +PASS XHTML1.1+MathML parsing ⊑ +PASS XHTML1.1+MathML parsing ⊏ +PASS XHTML1.1+MathML parsing ⊑ +PASS XHTML1.1+MathML parsing ⊐ +PASS XHTML1.1+MathML parsing ⊒ +PASS XHTML1.1+MathML parsing ⊐ +PASS XHTML1.1+MathML parsing ⊒ +PASS XHTML1.1+MathML parsing □ +PASS XHTML1.1+MathML parsing □ +PASS XHTML1.1+MathML parsing ⊓ +PASS XHTML1.1+MathML parsing ⊏ +PASS XHTML1.1+MathML parsing ⊑ +PASS XHTML1.1+MathML parsing ⊐ +PASS XHTML1.1+MathML parsing ⊒ +PASS XHTML1.1+MathML parsing ⊔ +PASS XHTML1.1+MathML parsing ▪ +PASS XHTML1.1+MathML parsing □ +PASS XHTML1.1+MathML parsing ▪ +PASS XHTML1.1+MathML parsing → +PASS XHTML1.1+MathML parsing 𝒮 +PASS XHTML1.1+MathML parsing 𝓈 +PASS XHTML1.1+MathML parsing ∖ +PASS XHTML1.1+MathML parsing ⌣ +PASS XHTML1.1+MathML parsing ⋆ +PASS XHTML1.1+MathML parsing ⋆ +PASS XHTML1.1+MathML parsing ☆ +PASS XHTML1.1+MathML parsing ★ +PASS XHTML1.1+MathML parsing ϵ +PASS XHTML1.1+MathML parsing ϕ +PASS XHTML1.1+MathML parsing ¯ +PASS XHTML1.1+MathML parsing ⊂ +PASS XHTML1.1+MathML parsing ⋐ +PASS XHTML1.1+MathML parsing ⪽ +PASS XHTML1.1+MathML parsing ⫅ +PASS XHTML1.1+MathML parsing ⊆ +PASS XHTML1.1+MathML parsing ⫃ +PASS XHTML1.1+MathML parsing ⫁ +PASS XHTML1.1+MathML parsing ⫋ +PASS XHTML1.1+MathML parsing ⊊ +PASS XHTML1.1+MathML parsing ⪿ +PASS XHTML1.1+MathML parsing ⥹ +PASS XHTML1.1+MathML parsing ⊂ +PASS XHTML1.1+MathML parsing ⋐ +PASS XHTML1.1+MathML parsing ⊆ +PASS XHTML1.1+MathML parsing ⫅ +PASS XHTML1.1+MathML parsing ⊆ +PASS XHTML1.1+MathML parsing ⊊ +PASS XHTML1.1+MathML parsing ⫋ +PASS XHTML1.1+MathML parsing ⫇ +PASS XHTML1.1+MathML parsing ⫕ +PASS XHTML1.1+MathML parsing ⫓ +PASS XHTML1.1+MathML parsing ⪸ +PASS XHTML1.1+MathML parsing ≻ +PASS XHTML1.1+MathML parsing ≽ +PASS XHTML1.1+MathML parsing ≻ +PASS XHTML1.1+MathML parsing ⪰ +PASS XHTML1.1+MathML parsing ≽ +PASS XHTML1.1+MathML parsing ≿ +PASS XHTML1.1+MathML parsing ⪰ +PASS XHTML1.1+MathML parsing ⪺ +PASS XHTML1.1+MathML parsing ⪶ +PASS XHTML1.1+MathML parsing ⋩ +PASS XHTML1.1+MathML parsing ≿ +PASS XHTML1.1+MathML parsing ∋ +PASS XHTML1.1+MathML parsing ∑ +PASS XHTML1.1+MathML parsing ∑ +PASS XHTML1.1+MathML parsing ♪ +PASS XHTML1.1+MathML parsing ¹ +PASS XHTML1.1+MathML parsing ² +PASS XHTML1.1+MathML parsing ³ +PASS XHTML1.1+MathML parsing ⊃ +PASS XHTML1.1+MathML parsing ⋑ +PASS XHTML1.1+MathML parsing ⪾ +PASS XHTML1.1+MathML parsing ⫘ +PASS XHTML1.1+MathML parsing ⫆ +PASS XHTML1.1+MathML parsing ⊇ +PASS XHTML1.1+MathML parsing ⫄ +PASS XHTML1.1+MathML parsing ⊃ +PASS XHTML1.1+MathML parsing ⊇ +PASS XHTML1.1+MathML parsing ⟉ +PASS XHTML1.1+MathML parsing ⫗ +PASS XHTML1.1+MathML parsing ⥻ +PASS XHTML1.1+MathML parsing ⫂ +PASS XHTML1.1+MathML parsing ⫌ +PASS XHTML1.1+MathML parsing ⊋ +PASS XHTML1.1+MathML parsing ⫀ +PASS XHTML1.1+MathML parsing ⊃ +PASS XHTML1.1+MathML parsing ⋑ +PASS XHTML1.1+MathML parsing ⊇ +PASS XHTML1.1+MathML parsing ⫆ +PASS XHTML1.1+MathML parsing ⊋ +PASS XHTML1.1+MathML parsing ⫌ +PASS XHTML1.1+MathML parsing ⫈ +PASS XHTML1.1+MathML parsing ⫔ +PASS XHTML1.1+MathML parsing ⫖ +PASS XHTML1.1+MathML parsing ⤦ +PASS XHTML1.1+MathML parsing ↙ +PASS XHTML1.1+MathML parsing ⇙ +PASS XHTML1.1+MathML parsing ↙ +PASS XHTML1.1+MathML parsing ⤪ +PASS XHTML1.1+MathML parsing ß +PASS XHTML1.1+MathML parsing 	 +PASS XHTML1.1+MathML parsing ⌖ +PASS XHTML1.1+MathML parsing Τ +PASS XHTML1.1+MathML parsing τ +PASS XHTML1.1+MathML parsing ⎴ +PASS XHTML1.1+MathML parsing Ť +PASS XHTML1.1+MathML parsing ť +PASS XHTML1.1+MathML parsing Ţ +PASS XHTML1.1+MathML parsing ţ +PASS XHTML1.1+MathML parsing Т +PASS XHTML1.1+MathML parsing т +PASS XHTML1.1+MathML parsing ⃛ +PASS XHTML1.1+MathML parsing ⌕ +PASS XHTML1.1+MathML parsing 𝔗 +PASS XHTML1.1+MathML parsing 𝔱 +PASS XHTML1.1+MathML parsing ∴ +PASS XHTML1.1+MathML parsing ∴ +PASS XHTML1.1+MathML parsing ∴ +PASS XHTML1.1+MathML parsing Θ +PASS XHTML1.1+MathML parsing θ +PASS XHTML1.1+MathML parsing ϑ +PASS XHTML1.1+MathML parsing ϑ +PASS XHTML1.1+MathML parsing ≈ +PASS XHTML1.1+MathML parsing ∼ +PASS XHTML1.1+MathML parsing    +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing ≈ +PASS XHTML1.1+MathML parsing ∼ +PASS XHTML1.1+MathML parsing Þ +PASS XHTML1.1+MathML parsing þ +PASS XHTML1.1+MathML parsing ˜ +PASS XHTML1.1+MathML parsing ∼ +PASS XHTML1.1+MathML parsing ≃ +PASS XHTML1.1+MathML parsing ≅ +PASS XHTML1.1+MathML parsing ≈ +PASS XHTML1.1+MathML parsing ⨱ +PASS XHTML1.1+MathML parsing ⊠ +PASS XHTML1.1+MathML parsing × +PASS XHTML1.1+MathML parsing ⨰ +PASS XHTML1.1+MathML parsing ∭ +PASS XHTML1.1+MathML parsing ⤨ +PASS XHTML1.1+MathML parsing ⌶ +PASS XHTML1.1+MathML parsing ⫱ +PASS XHTML1.1+MathML parsing ⊤ +PASS XHTML1.1+MathML parsing 𝕋 +PASS XHTML1.1+MathML parsing 𝕥 +PASS XHTML1.1+MathML parsing ⫚ +PASS XHTML1.1+MathML parsing ⤩ +PASS XHTML1.1+MathML parsing ‴ +PASS XHTML1.1+MathML parsing ™ +PASS XHTML1.1+MathML parsing ™ +PASS XHTML1.1+MathML parsing ▵ +PASS XHTML1.1+MathML parsing ▿ +PASS XHTML1.1+MathML parsing ◃ +PASS XHTML1.1+MathML parsing ⊴ +PASS XHTML1.1+MathML parsing ≜ +PASS XHTML1.1+MathML parsing ▹ +PASS XHTML1.1+MathML parsing ⊵ +PASS XHTML1.1+MathML parsing ◬ +PASS XHTML1.1+MathML parsing ≜ +PASS XHTML1.1+MathML parsing ⨺ +PASS XHTML1.1+MathML parsing ⃛ +PASS XHTML1.1+MathML parsing ⨹ +PASS XHTML1.1+MathML parsing ⧍ +PASS XHTML1.1+MathML parsing ⨻ +PASS XHTML1.1+MathML parsing ⏢ +PASS XHTML1.1+MathML parsing 𝒯 +PASS XHTML1.1+MathML parsing 𝓉 +PASS XHTML1.1+MathML parsing Ц +PASS XHTML1.1+MathML parsing ц +PASS XHTML1.1+MathML parsing Ћ +PASS XHTML1.1+MathML parsing ћ +PASS XHTML1.1+MathML parsing Ŧ +PASS XHTML1.1+MathML parsing ŧ +PASS XHTML1.1+MathML parsing ≬ +PASS XHTML1.1+MathML parsing ↞ +PASS XHTML1.1+MathML parsing ↠ +PASS XHTML1.1+MathML parsing Ú +PASS XHTML1.1+MathML parsing ú +PASS XHTML1.1+MathML parsing ↑ +PASS XHTML1.1+MathML parsing ↟ +PASS XHTML1.1+MathML parsing ⇑ +PASS XHTML1.1+MathML parsing ⥉ +PASS XHTML1.1+MathML parsing Ў +PASS XHTML1.1+MathML parsing ў +PASS XHTML1.1+MathML parsing Ŭ +PASS XHTML1.1+MathML parsing ŭ +PASS XHTML1.1+MathML parsing Û +PASS XHTML1.1+MathML parsing û +PASS XHTML1.1+MathML parsing У +PASS XHTML1.1+MathML parsing у +PASS XHTML1.1+MathML parsing ⇅ +PASS XHTML1.1+MathML parsing Ű +PASS XHTML1.1+MathML parsing ű +PASS XHTML1.1+MathML parsing ⥮ +PASS XHTML1.1+MathML parsing ⥾ +PASS XHTML1.1+MathML parsing 𝔘 +PASS XHTML1.1+MathML parsing 𝔲 +PASS XHTML1.1+MathML parsing Ù +PASS XHTML1.1+MathML parsing ù +PASS XHTML1.1+MathML parsing ⥣ +PASS XHTML1.1+MathML parsing ↿ +PASS XHTML1.1+MathML parsing ↾ +PASS XHTML1.1+MathML parsing ▀ +PASS XHTML1.1+MathML parsing ⌜ +PASS XHTML1.1+MathML parsing ⌜ +PASS XHTML1.1+MathML parsing ⌏ +PASS XHTML1.1+MathML parsing ◸ +PASS XHTML1.1+MathML parsing Ū +PASS XHTML1.1+MathML parsing ū +PASS XHTML1.1+MathML parsing ¨ +PASS XHTML1.1+MathML parsing _ +PASS XHTML1.1+MathML parsing ⏟ +PASS XHTML1.1+MathML parsing ⎵ +PASS XHTML1.1+MathML parsing ⏝ +PASS XHTML1.1+MathML parsing ⋃ +PASS XHTML1.1+MathML parsing ⊎ +PASS XHTML1.1+MathML parsing Ų +PASS XHTML1.1+MathML parsing ų +PASS XHTML1.1+MathML parsing 𝕌 +PASS XHTML1.1+MathML parsing 𝕦 +PASS XHTML1.1+MathML parsing ⤒ +PASS XHTML1.1+MathML parsing ↑ +PASS XHTML1.1+MathML parsing ↑ +PASS XHTML1.1+MathML parsing ⇑ +PASS XHTML1.1+MathML parsing ⇅ +PASS XHTML1.1+MathML parsing ↕ +PASS XHTML1.1+MathML parsing ↕ +PASS XHTML1.1+MathML parsing ⇕ +PASS XHTML1.1+MathML parsing ⥮ +PASS XHTML1.1+MathML parsing ↿ +PASS XHTML1.1+MathML parsing ↾ +PASS XHTML1.1+MathML parsing ⊎ +PASS XHTML1.1+MathML parsing ↖ +PASS XHTML1.1+MathML parsing ↗ +PASS XHTML1.1+MathML parsing υ +PASS XHTML1.1+MathML parsing ϒ +PASS XHTML1.1+MathML parsing ϒ +PASS XHTML1.1+MathML parsing Υ +PASS XHTML1.1+MathML parsing υ +PASS XHTML1.1+MathML parsing ↥ +PASS XHTML1.1+MathML parsing ⊥ +PASS XHTML1.1+MathML parsing ⇈ +PASS XHTML1.1+MathML parsing ⌝ +PASS XHTML1.1+MathML parsing ⌝ +PASS XHTML1.1+MathML parsing ⌎ +PASS XHTML1.1+MathML parsing Ů +PASS XHTML1.1+MathML parsing ů +PASS XHTML1.1+MathML parsing ◹ +PASS XHTML1.1+MathML parsing 𝒰 +PASS XHTML1.1+MathML parsing 𝓊 +PASS XHTML1.1+MathML parsing ⋰ +PASS XHTML1.1+MathML parsing Ũ +PASS XHTML1.1+MathML parsing ũ +PASS XHTML1.1+MathML parsing ▵ +PASS XHTML1.1+MathML parsing ▴ +PASS XHTML1.1+MathML parsing ⇈ +PASS XHTML1.1+MathML parsing Ü +PASS XHTML1.1+MathML parsing ü +PASS XHTML1.1+MathML parsing ⦧ +PASS XHTML1.1+MathML parsing ⦜ +PASS XHTML1.1+MathML parsing ϵ +PASS XHTML1.1+MathML parsing ϰ +PASS XHTML1.1+MathML parsing ∅ +PASS XHTML1.1+MathML parsing ϕ +PASS XHTML1.1+MathML parsing ϖ +PASS XHTML1.1+MathML parsing ∝ +PASS XHTML1.1+MathML parsing ↕ +PASS XHTML1.1+MathML parsing ⇕ +PASS XHTML1.1+MathML parsing ϱ +PASS XHTML1.1+MathML parsing ς +PASS XHTML1.1+MathML parsing ⊊︀ +PASS XHTML1.1+MathML parsing ⫋︀ +PASS XHTML1.1+MathML parsing ⊋︀ +PASS XHTML1.1+MathML parsing ⫌︀ +PASS XHTML1.1+MathML parsing ϑ +PASS XHTML1.1+MathML parsing ⊲ +PASS XHTML1.1+MathML parsing ⊳ +PASS XHTML1.1+MathML parsing ⫨ +PASS XHTML1.1+MathML parsing ⫫ +PASS XHTML1.1+MathML parsing ⫩ +PASS XHTML1.1+MathML parsing В +PASS XHTML1.1+MathML parsing в +PASS XHTML1.1+MathML parsing ⊢ +PASS XHTML1.1+MathML parsing ⊨ +PASS XHTML1.1+MathML parsing ⊩ +PASS XHTML1.1+MathML parsing ⊫ +PASS XHTML1.1+MathML parsing ⫦ +PASS XHTML1.1+MathML parsing ⊻ +PASS XHTML1.1+MathML parsing ∨ +PASS XHTML1.1+MathML parsing ⋁ +PASS XHTML1.1+MathML parsing ≚ +PASS XHTML1.1+MathML parsing ⋮ +PASS XHTML1.1+MathML parsing | +PASS XHTML1.1+MathML parsing ‖ +PASS XHTML1.1+MathML parsing | +PASS XHTML1.1+MathML parsing ‖ +PASS XHTML1.1+MathML parsing ∣ +PASS XHTML1.1+MathML parsing | +PASS XHTML1.1+MathML parsing ❘ +PASS XHTML1.1+MathML parsing ≀ +PASS XHTML1.1+MathML parsing   +PASS XHTML1.1+MathML parsing 𝔙 +PASS XHTML1.1+MathML parsing 𝔳 +PASS XHTML1.1+MathML parsing ⊲ +PASS XHTML1.1+MathML parsing ⊂⃒ +PASS XHTML1.1+MathML parsing ⊃⃒ +PASS XHTML1.1+MathML parsing 𝕍 +PASS XHTML1.1+MathML parsing 𝕧 +PASS XHTML1.1+MathML parsing ∝ +PASS XHTML1.1+MathML parsing ⊳ +PASS XHTML1.1+MathML parsing 𝒱 +PASS XHTML1.1+MathML parsing 𝓋 +PASS XHTML1.1+MathML parsing ⫋︀ +PASS XHTML1.1+MathML parsing ⊊︀ +PASS XHTML1.1+MathML parsing ⫌︀ +PASS XHTML1.1+MathML parsing ⊋︀ +PASS XHTML1.1+MathML parsing ⊪ +PASS XHTML1.1+MathML parsing ⦚ +PASS XHTML1.1+MathML parsing Ŵ +PASS XHTML1.1+MathML parsing ŵ +PASS XHTML1.1+MathML parsing ⩟ +PASS XHTML1.1+MathML parsing ∧ +PASS XHTML1.1+MathML parsing ⋀ +PASS XHTML1.1+MathML parsing ≙ +PASS XHTML1.1+MathML parsing ℘ +PASS XHTML1.1+MathML parsing 𝔚 +PASS XHTML1.1+MathML parsing 𝔴 +PASS XHTML1.1+MathML parsing 𝕎 +PASS XHTML1.1+MathML parsing 𝕨 +PASS XHTML1.1+MathML parsing ℘ +PASS XHTML1.1+MathML parsing ≀ +PASS XHTML1.1+MathML parsing ≀ +PASS XHTML1.1+MathML parsing 𝒲 +PASS XHTML1.1+MathML parsing 𝓌 +PASS XHTML1.1+MathML parsing ⋂ +PASS XHTML1.1+MathML parsing ◯ +PASS XHTML1.1+MathML parsing ⋃ +PASS XHTML1.1+MathML parsing ▽ +PASS XHTML1.1+MathML parsing 𝔛 +PASS XHTML1.1+MathML parsing 𝔵 +PASS XHTML1.1+MathML parsing ⟷ +PASS XHTML1.1+MathML parsing ⟺ +PASS XHTML1.1+MathML parsing Ξ +PASS XHTML1.1+MathML parsing ξ +PASS XHTML1.1+MathML parsing ⟵ +PASS XHTML1.1+MathML parsing ⟸ +PASS XHTML1.1+MathML parsing ⟼ +PASS XHTML1.1+MathML parsing ⋻ +PASS XHTML1.1+MathML parsing ⨀ +PASS XHTML1.1+MathML parsing 𝕏 +PASS XHTML1.1+MathML parsing 𝕩 +PASS XHTML1.1+MathML parsing ⨁ +PASS XHTML1.1+MathML parsing ⨂ +PASS XHTML1.1+MathML parsing ⟶ +PASS XHTML1.1+MathML parsing ⟹ +PASS XHTML1.1+MathML parsing 𝒳 +PASS XHTML1.1+MathML parsing 𝓍 +PASS XHTML1.1+MathML parsing ⨆ +PASS XHTML1.1+MathML parsing ⨄ +PASS XHTML1.1+MathML parsing △ +PASS XHTML1.1+MathML parsing ⋁ +PASS XHTML1.1+MathML parsing ⋀ +PASS XHTML1.1+MathML parsing Ý +PASS XHTML1.1+MathML parsing ý +PASS XHTML1.1+MathML parsing Я +PASS XHTML1.1+MathML parsing я +PASS XHTML1.1+MathML parsing Ŷ +PASS XHTML1.1+MathML parsing ŷ +PASS XHTML1.1+MathML parsing Ы +PASS XHTML1.1+MathML parsing ы +PASS XHTML1.1+MathML parsing ¥ +PASS XHTML1.1+MathML parsing 𝔜 +PASS XHTML1.1+MathML parsing 𝔶 +PASS XHTML1.1+MathML parsing Ї +PASS XHTML1.1+MathML parsing ї +PASS XHTML1.1+MathML parsing 𝕐 +PASS XHTML1.1+MathML parsing 𝕪 +PASS XHTML1.1+MathML parsing 𝒴 +PASS XHTML1.1+MathML parsing 𝓎 +PASS XHTML1.1+MathML parsing Ю +PASS XHTML1.1+MathML parsing ю +PASS XHTML1.1+MathML parsing ÿ +PASS XHTML1.1+MathML parsing Ÿ +PASS XHTML1.1+MathML parsing Ź +PASS XHTML1.1+MathML parsing ź +PASS XHTML1.1+MathML parsing Ž +PASS XHTML1.1+MathML parsing ž +PASS XHTML1.1+MathML parsing З +PASS XHTML1.1+MathML parsing з +PASS XHTML1.1+MathML parsing Ż +PASS XHTML1.1+MathML parsing ż +PASS XHTML1.1+MathML parsing ℨ +PASS XHTML1.1+MathML parsing ​ +PASS XHTML1.1+MathML parsing Ζ +PASS XHTML1.1+MathML parsing ζ +PASS XHTML1.1+MathML parsing 𝔷 +PASS XHTML1.1+MathML parsing ℨ +PASS XHTML1.1+MathML parsing Ж +PASS XHTML1.1+MathML parsing ж +PASS XHTML1.1+MathML parsing ⇝ +PASS XHTML1.1+MathML parsing 𝕫 +PASS XHTML1.1+MathML parsing ℤ +PASS XHTML1.1+MathML parsing 𝒵 +PASS XHTML1.1+MathML parsing 𝓏 +PASS XHTML1.1+MathML parsing ‍ +PASS XHTML1.1+MathML parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm new file mode 100644 index 0000000..b1589bba --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN", "foo", "XHTML1.1+MathML"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7-expected.txt new file mode 100644 index 0000000..0799addc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML1.1+MathML+SVG parsing Á +PASS XHTML1.1+MathML+SVG parsing á +PASS XHTML1.1+MathML+SVG parsing Ă +PASS XHTML1.1+MathML+SVG parsing ă +PASS XHTML1.1+MathML+SVG parsing ∾ +PASS XHTML1.1+MathML+SVG parsing ∿ +PASS XHTML1.1+MathML+SVG parsing ∾̳ +PASS XHTML1.1+MathML+SVG parsing  +PASS XHTML1.1+MathML+SVG parsing â +PASS XHTML1.1+MathML+SVG parsing ´ +PASS XHTML1.1+MathML+SVG parsing А +PASS XHTML1.1+MathML+SVG parsing а +PASS XHTML1.1+MathML+SVG parsing Æ +PASS XHTML1.1+MathML+SVG parsing æ +PASS XHTML1.1+MathML+SVG parsing ⁡ +PASS XHTML1.1+MathML+SVG parsing 𝔄 +PASS XHTML1.1+MathML+SVG parsing 𝔞 +PASS XHTML1.1+MathML+SVG parsing À +PASS XHTML1.1+MathML+SVG parsing à +PASS XHTML1.1+MathML+SVG parsing ℵ +PASS XHTML1.1+MathML+SVG parsing ℵ +PASS XHTML1.1+MathML+SVG parsing Α +PASS XHTML1.1+MathML+SVG parsing α +PASS XHTML1.1+MathML+SVG parsing Ā +PASS XHTML1.1+MathML+SVG parsing ā +PASS XHTML1.1+MathML+SVG parsing ⨿ +PASS XHTML1.1+MathML+SVG parsing & +FAIL XHTML1.1+MathML+SVG parsing & assert_true: expected true got false +PASS XHTML1.1+MathML+SVG parsing ⩕ +PASS XHTML1.1+MathML+SVG parsing ⩓ +PASS XHTML1.1+MathML+SVG parsing ∧ +PASS XHTML1.1+MathML+SVG parsing ⩜ +PASS XHTML1.1+MathML+SVG parsing ⩘ +PASS XHTML1.1+MathML+SVG parsing ⩚ +PASS XHTML1.1+MathML+SVG parsing ∠ +PASS XHTML1.1+MathML+SVG parsing ⦤ +PASS XHTML1.1+MathML+SVG parsing ∠ +PASS XHTML1.1+MathML+SVG parsing ⦨ +PASS XHTML1.1+MathML+SVG parsing ⦩ +PASS XHTML1.1+MathML+SVG parsing ⦪ +PASS XHTML1.1+MathML+SVG parsing ⦫ +PASS XHTML1.1+MathML+SVG parsing ⦬ +PASS XHTML1.1+MathML+SVG parsing ⦭ +PASS XHTML1.1+MathML+SVG parsing ⦮ +PASS XHTML1.1+MathML+SVG parsing ⦯ +PASS XHTML1.1+MathML+SVG parsing ∡ +PASS XHTML1.1+MathML+SVG parsing ∟ +PASS XHTML1.1+MathML+SVG parsing ⊾ +PASS XHTML1.1+MathML+SVG parsing ⦝ +PASS XHTML1.1+MathML+SVG parsing ∢ +PASS XHTML1.1+MathML+SVG parsing Å +PASS XHTML1.1+MathML+SVG parsing ⍼ +PASS XHTML1.1+MathML+SVG parsing Ą +PASS XHTML1.1+MathML+SVG parsing ą +PASS XHTML1.1+MathML+SVG parsing 𝔸 +PASS XHTML1.1+MathML+SVG parsing 𝕒 +PASS XHTML1.1+MathML+SVG parsing ⩯ +PASS XHTML1.1+MathML+SVG parsing ≈ +PASS XHTML1.1+MathML+SVG parsing ⩰ +PASS XHTML1.1+MathML+SVG parsing ≊ +PASS XHTML1.1+MathML+SVG parsing ≋ +PASS XHTML1.1+MathML+SVG parsing ' +PASS XHTML1.1+MathML+SVG parsing ⁡ +PASS XHTML1.1+MathML+SVG parsing ≈ +PASS XHTML1.1+MathML+SVG parsing ≊ +PASS XHTML1.1+MathML+SVG parsing Å +PASS XHTML1.1+MathML+SVG parsing å +PASS XHTML1.1+MathML+SVG parsing 𝒜 +PASS XHTML1.1+MathML+SVG parsing 𝒶 +PASS XHTML1.1+MathML+SVG parsing ≔ +PASS XHTML1.1+MathML+SVG parsing * +PASS XHTML1.1+MathML+SVG parsing ≈ +PASS XHTML1.1+MathML+SVG parsing ≍ +PASS XHTML1.1+MathML+SVG parsing à +PASS XHTML1.1+MathML+SVG parsing ã +PASS XHTML1.1+MathML+SVG parsing Ä +PASS XHTML1.1+MathML+SVG parsing ä +PASS XHTML1.1+MathML+SVG parsing ∳ +PASS XHTML1.1+MathML+SVG parsing ⨑ +PASS XHTML1.1+MathML+SVG parsing ≌ +PASS XHTML1.1+MathML+SVG parsing ϶ +PASS XHTML1.1+MathML+SVG parsing ‵ +PASS XHTML1.1+MathML+SVG parsing ∽ +PASS XHTML1.1+MathML+SVG parsing ⋍ +PASS XHTML1.1+MathML+SVG parsing ∖ +PASS XHTML1.1+MathML+SVG parsing ⫧ +PASS XHTML1.1+MathML+SVG parsing ⊽ +PASS XHTML1.1+MathML+SVG parsing ⌅ +PASS XHTML1.1+MathML+SVG parsing ⌆ +PASS XHTML1.1+MathML+SVG parsing ⌅ +PASS XHTML1.1+MathML+SVG parsing ⎵ +PASS XHTML1.1+MathML+SVG parsing ⎶ +PASS XHTML1.1+MathML+SVG parsing ≌ +PASS XHTML1.1+MathML+SVG parsing Б +PASS XHTML1.1+MathML+SVG parsing б +PASS XHTML1.1+MathML+SVG parsing „ +PASS XHTML1.1+MathML+SVG parsing ∵ +PASS XHTML1.1+MathML+SVG parsing ∵ +PASS XHTML1.1+MathML+SVG parsing ∵ +PASS XHTML1.1+MathML+SVG parsing ⦰ +PASS XHTML1.1+MathML+SVG parsing ϶ +PASS XHTML1.1+MathML+SVG parsing ℬ +PASS XHTML1.1+MathML+SVG parsing ℬ +PASS XHTML1.1+MathML+SVG parsing Β +PASS XHTML1.1+MathML+SVG parsing β +PASS XHTML1.1+MathML+SVG parsing ℶ +PASS XHTML1.1+MathML+SVG parsing ≬ +PASS XHTML1.1+MathML+SVG parsing 𝔅 +PASS XHTML1.1+MathML+SVG parsing 𝔟 +PASS XHTML1.1+MathML+SVG parsing ⋂ +PASS XHTML1.1+MathML+SVG parsing ◯ +PASS XHTML1.1+MathML+SVG parsing ⋃ +PASS XHTML1.1+MathML+SVG parsing ⨀ +PASS XHTML1.1+MathML+SVG parsing ⨁ +PASS XHTML1.1+MathML+SVG parsing ⨂ +PASS XHTML1.1+MathML+SVG parsing ⨆ +PASS XHTML1.1+MathML+SVG parsing ★ +PASS XHTML1.1+MathML+SVG parsing ▽ +PASS XHTML1.1+MathML+SVG parsing △ +PASS XHTML1.1+MathML+SVG parsing ⨄ +PASS XHTML1.1+MathML+SVG parsing ⋁ +PASS XHTML1.1+MathML+SVG parsing ⋀ +PASS XHTML1.1+MathML+SVG parsing ⤍ +PASS XHTML1.1+MathML+SVG parsing ⧫ +PASS XHTML1.1+MathML+SVG parsing ▪ +PASS XHTML1.1+MathML+SVG parsing ▴ +PASS XHTML1.1+MathML+SVG parsing ▾ +PASS XHTML1.1+MathML+SVG parsing ◂ +PASS XHTML1.1+MathML+SVG parsing ▸ +PASS XHTML1.1+MathML+SVG parsing ␣ +PASS XHTML1.1+MathML+SVG parsing ▒ +PASS XHTML1.1+MathML+SVG parsing ░ +PASS XHTML1.1+MathML+SVG parsing ▓ +PASS XHTML1.1+MathML+SVG parsing █ +PASS XHTML1.1+MathML+SVG parsing =⃥ +PASS XHTML1.1+MathML+SVG parsing ≡⃥ +PASS XHTML1.1+MathML+SVG parsing ⫭ +PASS XHTML1.1+MathML+SVG parsing ⌐ +PASS XHTML1.1+MathML+SVG parsing 𝔹 +PASS XHTML1.1+MathML+SVG parsing 𝕓 +PASS XHTML1.1+MathML+SVG parsing ⊥ +PASS XHTML1.1+MathML+SVG parsing ⊥ +PASS XHTML1.1+MathML+SVG parsing ⋈ +PASS XHTML1.1+MathML+SVG parsing ⧉ +PASS XHTML1.1+MathML+SVG parsing ┐ +PASS XHTML1.1+MathML+SVG parsing ╕ +PASS XHTML1.1+MathML+SVG parsing ╖ +PASS XHTML1.1+MathML+SVG parsing ╗ +PASS XHTML1.1+MathML+SVG parsing ┌ +PASS XHTML1.1+MathML+SVG parsing ╒ +PASS XHTML1.1+MathML+SVG parsing ╓ +PASS XHTML1.1+MathML+SVG parsing ╔ +PASS XHTML1.1+MathML+SVG parsing ─ +PASS XHTML1.1+MathML+SVG parsing ═ +PASS XHTML1.1+MathML+SVG parsing ┬ +PASS XHTML1.1+MathML+SVG parsing ╤ +PASS XHTML1.1+MathML+SVG parsing ╥ +PASS XHTML1.1+MathML+SVG parsing ╦ +PASS XHTML1.1+MathML+SVG parsing ┴ +PASS XHTML1.1+MathML+SVG parsing ╧ +PASS XHTML1.1+MathML+SVG parsing ╨ +PASS XHTML1.1+MathML+SVG parsing ╩ +PASS XHTML1.1+MathML+SVG parsing ⊟ +PASS XHTML1.1+MathML+SVG parsing ⊞ +PASS XHTML1.1+MathML+SVG parsing ⊠ +PASS XHTML1.1+MathML+SVG parsing ┘ +PASS XHTML1.1+MathML+SVG parsing ╛ +PASS XHTML1.1+MathML+SVG parsing ╜ +PASS XHTML1.1+MathML+SVG parsing ╝ +PASS XHTML1.1+MathML+SVG parsing └ +PASS XHTML1.1+MathML+SVG parsing ╘ +PASS XHTML1.1+MathML+SVG parsing ╙ +PASS XHTML1.1+MathML+SVG parsing ╚ +PASS XHTML1.1+MathML+SVG parsing │ +PASS XHTML1.1+MathML+SVG parsing ║ +PASS XHTML1.1+MathML+SVG parsing ┼ +PASS XHTML1.1+MathML+SVG parsing ╪ +PASS XHTML1.1+MathML+SVG parsing ╫ +PASS XHTML1.1+MathML+SVG parsing ╬ +PASS XHTML1.1+MathML+SVG parsing ┤ +PASS XHTML1.1+MathML+SVG parsing ╡ +PASS XHTML1.1+MathML+SVG parsing ╢ +PASS XHTML1.1+MathML+SVG parsing ╣ +PASS XHTML1.1+MathML+SVG parsing ├ +PASS XHTML1.1+MathML+SVG parsing ╞ +PASS XHTML1.1+MathML+SVG parsing ╟ +PASS XHTML1.1+MathML+SVG parsing ╠ +PASS XHTML1.1+MathML+SVG parsing ‵ +PASS XHTML1.1+MathML+SVG parsing ˘ +PASS XHTML1.1+MathML+SVG parsing ˘ +PASS XHTML1.1+MathML+SVG parsing ¦ +PASS XHTML1.1+MathML+SVG parsing 𝒷 +PASS XHTML1.1+MathML+SVG parsing ℬ +PASS XHTML1.1+MathML+SVG parsing ⁏ +PASS XHTML1.1+MathML+SVG parsing ∽ +PASS XHTML1.1+MathML+SVG parsing ⋍ +PASS XHTML1.1+MathML+SVG parsing ⧅ +PASS XHTML1.1+MathML+SVG parsing \ +PASS XHTML1.1+MathML+SVG parsing ⟈ +PASS XHTML1.1+MathML+SVG parsing • +PASS XHTML1.1+MathML+SVG parsing • +PASS XHTML1.1+MathML+SVG parsing ≎ +PASS XHTML1.1+MathML+SVG parsing ⪮ +PASS XHTML1.1+MathML+SVG parsing ≏ +PASS XHTML1.1+MathML+SVG parsing ≎ +PASS XHTML1.1+MathML+SVG parsing ≏ +PASS XHTML1.1+MathML+SVG parsing Ć +PASS XHTML1.1+MathML+SVG parsing ć +PASS XHTML1.1+MathML+SVG parsing ⩄ +PASS XHTML1.1+MathML+SVG parsing ⩉ +PASS XHTML1.1+MathML+SVG parsing ⩋ +PASS XHTML1.1+MathML+SVG parsing ∩ +PASS XHTML1.1+MathML+SVG parsing ⋒ +PASS XHTML1.1+MathML+SVG parsing ⩇ +PASS XHTML1.1+MathML+SVG parsing ⩀ +PASS XHTML1.1+MathML+SVG parsing ⅅ +PASS XHTML1.1+MathML+SVG parsing ∩︀ +PASS XHTML1.1+MathML+SVG parsing ⁁ +PASS XHTML1.1+MathML+SVG parsing ˇ +PASS XHTML1.1+MathML+SVG parsing ℭ +PASS XHTML1.1+MathML+SVG parsing ⩍ +PASS XHTML1.1+MathML+SVG parsing Č +PASS XHTML1.1+MathML+SVG parsing č +PASS XHTML1.1+MathML+SVG parsing Ç +PASS XHTML1.1+MathML+SVG parsing ç +PASS XHTML1.1+MathML+SVG parsing Ĉ +PASS XHTML1.1+MathML+SVG parsing ĉ +PASS XHTML1.1+MathML+SVG parsing ∰ +PASS XHTML1.1+MathML+SVG parsing ⩌ +PASS XHTML1.1+MathML+SVG parsing ⩐ +PASS XHTML1.1+MathML+SVG parsing Ċ +PASS XHTML1.1+MathML+SVG parsing ċ +PASS XHTML1.1+MathML+SVG parsing ¸ +PASS XHTML1.1+MathML+SVG parsing ¸ +PASS XHTML1.1+MathML+SVG parsing ⦲ +PASS XHTML1.1+MathML+SVG parsing ¢ +PASS XHTML1.1+MathML+SVG parsing · +PASS XHTML1.1+MathML+SVG parsing · +PASS XHTML1.1+MathML+SVG parsing 𝔠 +PASS XHTML1.1+MathML+SVG parsing ℭ +PASS XHTML1.1+MathML+SVG parsing Ч +PASS XHTML1.1+MathML+SVG parsing ч +PASS XHTML1.1+MathML+SVG parsing ✓ +PASS XHTML1.1+MathML+SVG parsing ✓ +PASS XHTML1.1+MathML+SVG parsing Χ +PASS XHTML1.1+MathML+SVG parsing χ +PASS XHTML1.1+MathML+SVG parsing ˆ +PASS XHTML1.1+MathML+SVG parsing ≗ +PASS XHTML1.1+MathML+SVG parsing ↺ +PASS XHTML1.1+MathML+SVG parsing ↻ +PASS XHTML1.1+MathML+SVG parsing ⊛ +PASS XHTML1.1+MathML+SVG parsing ⊚ +PASS XHTML1.1+MathML+SVG parsing ⊝ +PASS XHTML1.1+MathML+SVG parsing ⊙ +PASS XHTML1.1+MathML+SVG parsing ® +PASS XHTML1.1+MathML+SVG parsing Ⓢ +PASS XHTML1.1+MathML+SVG parsing ⊖ +PASS XHTML1.1+MathML+SVG parsing ⊕ +PASS XHTML1.1+MathML+SVG parsing ⊗ +PASS XHTML1.1+MathML+SVG parsing ○ +PASS XHTML1.1+MathML+SVG parsing ⧃ +PASS XHTML1.1+MathML+SVG parsing ≗ +PASS XHTML1.1+MathML+SVG parsing ⨐ +PASS XHTML1.1+MathML+SVG parsing ⫯ +PASS XHTML1.1+MathML+SVG parsing ⧂ +PASS XHTML1.1+MathML+SVG parsing ∲ +PASS XHTML1.1+MathML+SVG parsing ” +PASS XHTML1.1+MathML+SVG parsing ’ +PASS XHTML1.1+MathML+SVG parsing ♣ +PASS XHTML1.1+MathML+SVG parsing ♣ +PASS XHTML1.1+MathML+SVG parsing : +PASS XHTML1.1+MathML+SVG parsing ∷ +PASS XHTML1.1+MathML+SVG parsing ⩴ +PASS XHTML1.1+MathML+SVG parsing ≔ +PASS XHTML1.1+MathML+SVG parsing ≔ +PASS XHTML1.1+MathML+SVG parsing , +PASS XHTML1.1+MathML+SVG parsing @ +PASS XHTML1.1+MathML+SVG parsing ∁ +PASS XHTML1.1+MathML+SVG parsing ∘ +PASS XHTML1.1+MathML+SVG parsing ∁ +PASS XHTML1.1+MathML+SVG parsing ℂ +PASS XHTML1.1+MathML+SVG parsing ≅ +PASS XHTML1.1+MathML+SVG parsing ⩭ +PASS XHTML1.1+MathML+SVG parsing ≡ +PASS XHTML1.1+MathML+SVG parsing ∮ +PASS XHTML1.1+MathML+SVG parsing ∯ +PASS XHTML1.1+MathML+SVG parsing ∮ +PASS XHTML1.1+MathML+SVG parsing 𝕔 +PASS XHTML1.1+MathML+SVG parsing ℂ +PASS XHTML1.1+MathML+SVG parsing ∐ +PASS XHTML1.1+MathML+SVG parsing ∐ +PASS XHTML1.1+MathML+SVG parsing © +PASS XHTML1.1+MathML+SVG parsing © +PASS XHTML1.1+MathML+SVG parsing ℗ +PASS XHTML1.1+MathML+SVG parsing ∳ +PASS XHTML1.1+MathML+SVG parsing ↵ +PASS XHTML1.1+MathML+SVG parsing ✗ +PASS XHTML1.1+MathML+SVG parsing ⨯ +PASS XHTML1.1+MathML+SVG parsing 𝒞 +PASS XHTML1.1+MathML+SVG parsing 𝒸 +PASS XHTML1.1+MathML+SVG parsing ⫏ +PASS XHTML1.1+MathML+SVG parsing ⫑ +PASS XHTML1.1+MathML+SVG parsing ⫐ +PASS XHTML1.1+MathML+SVG parsing ⫒ +PASS XHTML1.1+MathML+SVG parsing ⋯ +PASS XHTML1.1+MathML+SVG parsing ⤸ +PASS XHTML1.1+MathML+SVG parsing ⤵ +PASS XHTML1.1+MathML+SVG parsing ⋞ +PASS XHTML1.1+MathML+SVG parsing ⋟ +PASS XHTML1.1+MathML+SVG parsing ↶ +PASS XHTML1.1+MathML+SVG parsing ⤽ +PASS XHTML1.1+MathML+SVG parsing ⩈ +PASS XHTML1.1+MathML+SVG parsing ⩆ +PASS XHTML1.1+MathML+SVG parsing ≍ +PASS XHTML1.1+MathML+SVG parsing ∪ +PASS XHTML1.1+MathML+SVG parsing ⋓ +PASS XHTML1.1+MathML+SVG parsing ⩊ +PASS XHTML1.1+MathML+SVG parsing ⊍ +PASS XHTML1.1+MathML+SVG parsing ⩅ +PASS XHTML1.1+MathML+SVG parsing ∪︀ +PASS XHTML1.1+MathML+SVG parsing ↷ +PASS XHTML1.1+MathML+SVG parsing ⤼ +PASS XHTML1.1+MathML+SVG parsing ⋞ +PASS XHTML1.1+MathML+SVG parsing ⋟ +PASS XHTML1.1+MathML+SVG parsing ⋎ +PASS XHTML1.1+MathML+SVG parsing ⋏ +PASS XHTML1.1+MathML+SVG parsing ¤ +PASS XHTML1.1+MathML+SVG parsing ↶ +PASS XHTML1.1+MathML+SVG parsing ↷ +PASS XHTML1.1+MathML+SVG parsing ⋎ +PASS XHTML1.1+MathML+SVG parsing ⋏ +PASS XHTML1.1+MathML+SVG parsing ∲ +PASS XHTML1.1+MathML+SVG parsing ∱ +PASS XHTML1.1+MathML+SVG parsing ⌭ +PASS XHTML1.1+MathML+SVG parsing † +PASS XHTML1.1+MathML+SVG parsing ‡ +PASS XHTML1.1+MathML+SVG parsing ℸ +PASS XHTML1.1+MathML+SVG parsing ↓ +PASS XHTML1.1+MathML+SVG parsing ↡ +PASS XHTML1.1+MathML+SVG parsing ⇓ +PASS XHTML1.1+MathML+SVG parsing ‐ +PASS XHTML1.1+MathML+SVG parsing ⫤ +PASS XHTML1.1+MathML+SVG parsing ⊣ +PASS XHTML1.1+MathML+SVG parsing ⤏ +PASS XHTML1.1+MathML+SVG parsing ˝ +PASS XHTML1.1+MathML+SVG parsing Ď +PASS XHTML1.1+MathML+SVG parsing ď +PASS XHTML1.1+MathML+SVG parsing Д +PASS XHTML1.1+MathML+SVG parsing д +PASS XHTML1.1+MathML+SVG parsing ‡ +PASS XHTML1.1+MathML+SVG parsing ⇊ +PASS XHTML1.1+MathML+SVG parsing ⅅ +PASS XHTML1.1+MathML+SVG parsing ⅆ +PASS XHTML1.1+MathML+SVG parsing ⤑ +PASS XHTML1.1+MathML+SVG parsing ⩷ +PASS XHTML1.1+MathML+SVG parsing ° +PASS XHTML1.1+MathML+SVG parsing ∇ +PASS XHTML1.1+MathML+SVG parsing Δ +PASS XHTML1.1+MathML+SVG parsing δ +PASS XHTML1.1+MathML+SVG parsing ⦱ +PASS XHTML1.1+MathML+SVG parsing ⥿ +PASS XHTML1.1+MathML+SVG parsing 𝔇 +PASS XHTML1.1+MathML+SVG parsing 𝔡 +PASS XHTML1.1+MathML+SVG parsing ⥥ +PASS XHTML1.1+MathML+SVG parsing ⇃ +PASS XHTML1.1+MathML+SVG parsing ⇂ +PASS XHTML1.1+MathML+SVG parsing ´ +PASS XHTML1.1+MathML+SVG parsing ˙ +PASS XHTML1.1+MathML+SVG parsing ˝ +PASS XHTML1.1+MathML+SVG parsing ` +PASS XHTML1.1+MathML+SVG parsing ˜ +PASS XHTML1.1+MathML+SVG parsing ⋄ +PASS XHTML1.1+MathML+SVG parsing ⋄ +PASS XHTML1.1+MathML+SVG parsing ⋄ +PASS XHTML1.1+MathML+SVG parsing ♦ +PASS XHTML1.1+MathML+SVG parsing ♦ +PASS XHTML1.1+MathML+SVG parsing ¨ +PASS XHTML1.1+MathML+SVG parsing ⅆ +PASS XHTML1.1+MathML+SVG parsing ϝ +PASS XHTML1.1+MathML+SVG parsing ⋲ +PASS XHTML1.1+MathML+SVG parsing ÷ +PASS XHTML1.1+MathML+SVG parsing ÷ +PASS XHTML1.1+MathML+SVG parsing ⋇ +PASS XHTML1.1+MathML+SVG parsing ⋇ +PASS XHTML1.1+MathML+SVG parsing Ђ +PASS XHTML1.1+MathML+SVG parsing ђ +PASS XHTML1.1+MathML+SVG parsing ⌞ +PASS XHTML1.1+MathML+SVG parsing ⌍ +PASS XHTML1.1+MathML+SVG parsing $ +PASS XHTML1.1+MathML+SVG parsing 𝔻 +PASS XHTML1.1+MathML+SVG parsing 𝕕 +PASS XHTML1.1+MathML+SVG parsing ¨ +PASS XHTML1.1+MathML+SVG parsing ˙ +PASS XHTML1.1+MathML+SVG parsing ⃜ +PASS XHTML1.1+MathML+SVG parsing ≐ +PASS XHTML1.1+MathML+SVG parsing ≑ +PASS XHTML1.1+MathML+SVG parsing ≐ +PASS XHTML1.1+MathML+SVG parsing ∸ +PASS XHTML1.1+MathML+SVG parsing ∔ +PASS XHTML1.1+MathML+SVG parsing ⊡ +PASS XHTML1.1+MathML+SVG parsing ⌆ +PASS XHTML1.1+MathML+SVG parsing ∯ +PASS XHTML1.1+MathML+SVG parsing ¨ +PASS XHTML1.1+MathML+SVG parsing ⇓ +PASS XHTML1.1+MathML+SVG parsing ⇐ +PASS XHTML1.1+MathML+SVG parsing ⇔ +PASS XHTML1.1+MathML+SVG parsing ⫤ +PASS XHTML1.1+MathML+SVG parsing ⟸ +PASS XHTML1.1+MathML+SVG parsing ⟺ +PASS XHTML1.1+MathML+SVG parsing ⟹ +PASS XHTML1.1+MathML+SVG parsing ⇒ +PASS XHTML1.1+MathML+SVG parsing ⊨ +PASS XHTML1.1+MathML+SVG parsing ⇑ +PASS XHTML1.1+MathML+SVG parsing ⇕ +PASS XHTML1.1+MathML+SVG parsing ∥ +PASS XHTML1.1+MathML+SVG parsing ⤓ +PASS XHTML1.1+MathML+SVG parsing ↓ +PASS XHTML1.1+MathML+SVG parsing ↓ +PASS XHTML1.1+MathML+SVG parsing ⇓ +PASS XHTML1.1+MathML+SVG parsing ⇵ +PASS XHTML1.1+MathML+SVG parsing ̑ +PASS XHTML1.1+MathML+SVG parsing ⇊ +PASS XHTML1.1+MathML+SVG parsing ⇃ +PASS XHTML1.1+MathML+SVG parsing ⇂ +PASS XHTML1.1+MathML+SVG parsing ⥐ +PASS XHTML1.1+MathML+SVG parsing ⥞ +PASS XHTML1.1+MathML+SVG parsing ⥖ +PASS XHTML1.1+MathML+SVG parsing ↽ +PASS XHTML1.1+MathML+SVG parsing ⥟ +PASS XHTML1.1+MathML+SVG parsing ⥗ +PASS XHTML1.1+MathML+SVG parsing ⇁ +PASS XHTML1.1+MathML+SVG parsing ↧ +PASS XHTML1.1+MathML+SVG parsing ⊤ +PASS XHTML1.1+MathML+SVG parsing ⤐ +PASS XHTML1.1+MathML+SVG parsing ⌟ +PASS XHTML1.1+MathML+SVG parsing ⌌ +PASS XHTML1.1+MathML+SVG parsing 𝒟 +PASS XHTML1.1+MathML+SVG parsing 𝒹 +PASS XHTML1.1+MathML+SVG parsing Ѕ +PASS XHTML1.1+MathML+SVG parsing ѕ +PASS XHTML1.1+MathML+SVG parsing ⧶ +PASS XHTML1.1+MathML+SVG parsing Đ +PASS XHTML1.1+MathML+SVG parsing đ +PASS XHTML1.1+MathML+SVG parsing ⋱ +PASS XHTML1.1+MathML+SVG parsing ▿ +PASS XHTML1.1+MathML+SVG parsing ▾ +PASS XHTML1.1+MathML+SVG parsing ⇵ +PASS XHTML1.1+MathML+SVG parsing ⥯ +PASS XHTML1.1+MathML+SVG parsing ⦦ +PASS XHTML1.1+MathML+SVG parsing Џ +PASS XHTML1.1+MathML+SVG parsing џ +PASS XHTML1.1+MathML+SVG parsing ⟿ +PASS XHTML1.1+MathML+SVG parsing É +PASS XHTML1.1+MathML+SVG parsing é +PASS XHTML1.1+MathML+SVG parsing ⩮ +PASS XHTML1.1+MathML+SVG parsing Ě +PASS XHTML1.1+MathML+SVG parsing ě +PASS XHTML1.1+MathML+SVG parsing Ê +PASS XHTML1.1+MathML+SVG parsing ê +PASS XHTML1.1+MathML+SVG parsing ≖ +PASS XHTML1.1+MathML+SVG parsing ≕ +PASS XHTML1.1+MathML+SVG parsing Э +PASS XHTML1.1+MathML+SVG parsing э +PASS XHTML1.1+MathML+SVG parsing ⩷ +PASS XHTML1.1+MathML+SVG parsing Ė +PASS XHTML1.1+MathML+SVG parsing ė +PASS XHTML1.1+MathML+SVG parsing ≑ +PASS XHTML1.1+MathML+SVG parsing ⅇ +PASS XHTML1.1+MathML+SVG parsing ≒ +PASS XHTML1.1+MathML+SVG parsing 𝔈 +PASS XHTML1.1+MathML+SVG parsing 𝔢 +PASS XHTML1.1+MathML+SVG parsing ⪚ +PASS XHTML1.1+MathML+SVG parsing È +PASS XHTML1.1+MathML+SVG parsing è +PASS XHTML1.1+MathML+SVG parsing ⪖ +PASS XHTML1.1+MathML+SVG parsing ⪘ +PASS XHTML1.1+MathML+SVG parsing ⪙ +PASS XHTML1.1+MathML+SVG parsing ∈ +PASS XHTML1.1+MathML+SVG parsing ⏧ +PASS XHTML1.1+MathML+SVG parsing ℓ +PASS XHTML1.1+MathML+SVG parsing ⪕ +PASS XHTML1.1+MathML+SVG parsing ⪗ +PASS XHTML1.1+MathML+SVG parsing Ē +PASS XHTML1.1+MathML+SVG parsing ē +PASS XHTML1.1+MathML+SVG parsing ∅ +PASS XHTML1.1+MathML+SVG parsing ∅ +PASS XHTML1.1+MathML+SVG parsing ◻ +PASS XHTML1.1+MathML+SVG parsing ∅ +PASS XHTML1.1+MathML+SVG parsing ▫ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing Ŋ +PASS XHTML1.1+MathML+SVG parsing ŋ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing Ę +PASS XHTML1.1+MathML+SVG parsing ę +PASS XHTML1.1+MathML+SVG parsing 𝔼 +PASS XHTML1.1+MathML+SVG parsing 𝕖 +PASS XHTML1.1+MathML+SVG parsing ⋕ +PASS XHTML1.1+MathML+SVG parsing ⧣ +PASS XHTML1.1+MathML+SVG parsing ⩱ +PASS XHTML1.1+MathML+SVG parsing ε +PASS XHTML1.1+MathML+SVG parsing Ε +PASS XHTML1.1+MathML+SVG parsing ε +PASS XHTML1.1+MathML+SVG parsing ϵ +PASS XHTML1.1+MathML+SVG parsing ≖ +PASS XHTML1.1+MathML+SVG parsing ≕ +PASS XHTML1.1+MathML+SVG parsing ≂ +PASS XHTML1.1+MathML+SVG parsing ⪖ +PASS XHTML1.1+MathML+SVG parsing ⪕ +PASS XHTML1.1+MathML+SVG parsing ⩵ +PASS XHTML1.1+MathML+SVG parsing = +PASS XHTML1.1+MathML+SVG parsing ≂ +PASS XHTML1.1+MathML+SVG parsing ≟ +PASS XHTML1.1+MathML+SVG parsing ⇌ +PASS XHTML1.1+MathML+SVG parsing ≡ +PASS XHTML1.1+MathML+SVG parsing ⩸ +PASS XHTML1.1+MathML+SVG parsing ⧥ +PASS XHTML1.1+MathML+SVG parsing ⥱ +PASS XHTML1.1+MathML+SVG parsing ≓ +PASS XHTML1.1+MathML+SVG parsing ℯ +PASS XHTML1.1+MathML+SVG parsing ℰ +PASS XHTML1.1+MathML+SVG parsing ≐ +PASS XHTML1.1+MathML+SVG parsing ⩳ +PASS XHTML1.1+MathML+SVG parsing ≂ +PASS XHTML1.1+MathML+SVG parsing Η +PASS XHTML1.1+MathML+SVG parsing η +PASS XHTML1.1+MathML+SVG parsing Ð +PASS XHTML1.1+MathML+SVG parsing ð +PASS XHTML1.1+MathML+SVG parsing Ë +PASS XHTML1.1+MathML+SVG parsing ë +PASS XHTML1.1+MathML+SVG parsing € +PASS XHTML1.1+MathML+SVG parsing ! +PASS XHTML1.1+MathML+SVG parsing ∃ +PASS XHTML1.1+MathML+SVG parsing ∃ +PASS XHTML1.1+MathML+SVG parsing ℰ +PASS XHTML1.1+MathML+SVG parsing ⅇ +PASS XHTML1.1+MathML+SVG parsing ⅇ +PASS XHTML1.1+MathML+SVG parsing ≒ +PASS XHTML1.1+MathML+SVG parsing Ф +PASS XHTML1.1+MathML+SVG parsing ф +PASS XHTML1.1+MathML+SVG parsing ♀ +PASS XHTML1.1+MathML+SVG parsing ffi +PASS XHTML1.1+MathML+SVG parsing ff +PASS XHTML1.1+MathML+SVG parsing ffl +PASS XHTML1.1+MathML+SVG parsing 𝔉 +PASS XHTML1.1+MathML+SVG parsing 𝔣 +PASS XHTML1.1+MathML+SVG parsing fi +PASS XHTML1.1+MathML+SVG parsing ◼ +PASS XHTML1.1+MathML+SVG parsing ▪ +PASS XHTML1.1+MathML+SVG parsing fj +PASS XHTML1.1+MathML+SVG parsing ♭ +PASS XHTML1.1+MathML+SVG parsing fl +PASS XHTML1.1+MathML+SVG parsing ▱ +PASS XHTML1.1+MathML+SVG parsing ƒ +PASS XHTML1.1+MathML+SVG parsing 𝔽 +PASS XHTML1.1+MathML+SVG parsing 𝕗 +PASS XHTML1.1+MathML+SVG parsing ∀ +PASS XHTML1.1+MathML+SVG parsing ∀ +PASS XHTML1.1+MathML+SVG parsing ⋔ +PASS XHTML1.1+MathML+SVG parsing ⫙ +PASS XHTML1.1+MathML+SVG parsing ℱ +PASS XHTML1.1+MathML+SVG parsing ⨍ +PASS XHTML1.1+MathML+SVG parsing ½ +PASS XHTML1.1+MathML+SVG parsing ⅓ +PASS XHTML1.1+MathML+SVG parsing ¼ +PASS XHTML1.1+MathML+SVG parsing ⅕ +PASS XHTML1.1+MathML+SVG parsing ⅙ +PASS XHTML1.1+MathML+SVG parsing ⅛ +PASS XHTML1.1+MathML+SVG parsing ⅔ +PASS XHTML1.1+MathML+SVG parsing ⅖ +PASS XHTML1.1+MathML+SVG parsing ¾ +PASS XHTML1.1+MathML+SVG parsing ⅗ +PASS XHTML1.1+MathML+SVG parsing ⅜ +PASS XHTML1.1+MathML+SVG parsing ⅘ +PASS XHTML1.1+MathML+SVG parsing ⅚ +PASS XHTML1.1+MathML+SVG parsing ⅝ +PASS XHTML1.1+MathML+SVG parsing ⅞ +PASS XHTML1.1+MathML+SVG parsing ⁄ +PASS XHTML1.1+MathML+SVG parsing ⌢ +PASS XHTML1.1+MathML+SVG parsing 𝒻 +PASS XHTML1.1+MathML+SVG parsing ℱ +PASS XHTML1.1+MathML+SVG parsing ǵ +PASS XHTML1.1+MathML+SVG parsing Γ +PASS XHTML1.1+MathML+SVG parsing γ +PASS XHTML1.1+MathML+SVG parsing Ϝ +PASS XHTML1.1+MathML+SVG parsing ϝ +PASS XHTML1.1+MathML+SVG parsing ⪆ +PASS XHTML1.1+MathML+SVG parsing Ğ +PASS XHTML1.1+MathML+SVG parsing ğ +PASS XHTML1.1+MathML+SVG parsing Ģ +PASS XHTML1.1+MathML+SVG parsing Ĝ +PASS XHTML1.1+MathML+SVG parsing ĝ +PASS XHTML1.1+MathML+SVG parsing Г +PASS XHTML1.1+MathML+SVG parsing г +PASS XHTML1.1+MathML+SVG parsing Ġ +PASS XHTML1.1+MathML+SVG parsing ġ +PASS XHTML1.1+MathML+SVG parsing ≥ +PASS XHTML1.1+MathML+SVG parsing ≧ +PASS XHTML1.1+MathML+SVG parsing ⪌ +PASS XHTML1.1+MathML+SVG parsing ⋛ +PASS XHTML1.1+MathML+SVG parsing ≥ +PASS XHTML1.1+MathML+SVG parsing ≧ +PASS XHTML1.1+MathML+SVG parsing ⩾ +PASS XHTML1.1+MathML+SVG parsing ⪩ +PASS XHTML1.1+MathML+SVG parsing ⩾ +PASS XHTML1.1+MathML+SVG parsing ⪀ +PASS XHTML1.1+MathML+SVG parsing ⪂ +PASS XHTML1.1+MathML+SVG parsing ⪄ +PASS XHTML1.1+MathML+SVG parsing ⋛︀ +PASS XHTML1.1+MathML+SVG parsing ⪔ +PASS XHTML1.1+MathML+SVG parsing 𝔊 +PASS XHTML1.1+MathML+SVG parsing 𝔤 +PASS XHTML1.1+MathML+SVG parsing ≫ +PASS XHTML1.1+MathML+SVG parsing ⋙ +PASS XHTML1.1+MathML+SVG parsing ⋙ +PASS XHTML1.1+MathML+SVG parsing ℷ +PASS XHTML1.1+MathML+SVG parsing Ѓ +PASS XHTML1.1+MathML+SVG parsing ѓ +PASS XHTML1.1+MathML+SVG parsing ⪥ +PASS XHTML1.1+MathML+SVG parsing ≷ +PASS XHTML1.1+MathML+SVG parsing ⪒ +PASS XHTML1.1+MathML+SVG parsing ⪤ +PASS XHTML1.1+MathML+SVG parsing ⪊ +PASS XHTML1.1+MathML+SVG parsing ⪊ +PASS XHTML1.1+MathML+SVG parsing ⪈ +PASS XHTML1.1+MathML+SVG parsing ≩ +PASS XHTML1.1+MathML+SVG parsing ⪈ +PASS XHTML1.1+MathML+SVG parsing ≩ +PASS XHTML1.1+MathML+SVG parsing ⋧ +PASS XHTML1.1+MathML+SVG parsing 𝔾 +PASS XHTML1.1+MathML+SVG parsing 𝕘 +PASS XHTML1.1+MathML+SVG parsing ` +PASS XHTML1.1+MathML+SVG parsing ≥ +PASS XHTML1.1+MathML+SVG parsing ⋛ +PASS XHTML1.1+MathML+SVG parsing ≧ +PASS XHTML1.1+MathML+SVG parsing ⪢ +PASS XHTML1.1+MathML+SVG parsing ≷ +PASS XHTML1.1+MathML+SVG parsing ⩾ +PASS XHTML1.1+MathML+SVG parsing ≳ +PASS XHTML1.1+MathML+SVG parsing 𝒢 +PASS XHTML1.1+MathML+SVG parsing ℊ +PASS XHTML1.1+MathML+SVG parsing ≳ +PASS XHTML1.1+MathML+SVG parsing ⪎ +PASS XHTML1.1+MathML+SVG parsing ⪐ +PASS XHTML1.1+MathML+SVG parsing ⪧ +PASS XHTML1.1+MathML+SVG parsing ⩺ +PASS XHTML1.1+MathML+SVG parsing > +PASS XHTML1.1+MathML+SVG parsing > +PASS XHTML1.1+MathML+SVG parsing ≫ +PASS XHTML1.1+MathML+SVG parsing ⋗ +PASS XHTML1.1+MathML+SVG parsing ⦕ +PASS XHTML1.1+MathML+SVG parsing ⩼ +PASS XHTML1.1+MathML+SVG parsing ⪆ +PASS XHTML1.1+MathML+SVG parsing ⥸ +PASS XHTML1.1+MathML+SVG parsing ⋗ +PASS XHTML1.1+MathML+SVG parsing ⋛ +PASS XHTML1.1+MathML+SVG parsing ⪌ +PASS XHTML1.1+MathML+SVG parsing ≷ +PASS XHTML1.1+MathML+SVG parsing ≳ +PASS XHTML1.1+MathML+SVG parsing ≩︀ +PASS XHTML1.1+MathML+SVG parsing ≩︀ +PASS XHTML1.1+MathML+SVG parsing ˇ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing ½ +PASS XHTML1.1+MathML+SVG parsing ℋ +PASS XHTML1.1+MathML+SVG parsing Ъ +PASS XHTML1.1+MathML+SVG parsing ъ +PASS XHTML1.1+MathML+SVG parsing ⥈ +PASS XHTML1.1+MathML+SVG parsing ↔ +PASS XHTML1.1+MathML+SVG parsing ⇔ +PASS XHTML1.1+MathML+SVG parsing ↭ +PASS XHTML1.1+MathML+SVG parsing ^ +PASS XHTML1.1+MathML+SVG parsing ℏ +PASS XHTML1.1+MathML+SVG parsing Ĥ +PASS XHTML1.1+MathML+SVG parsing ĥ +PASS XHTML1.1+MathML+SVG parsing ♥ +PASS XHTML1.1+MathML+SVG parsing ♥ +PASS XHTML1.1+MathML+SVG parsing … +PASS XHTML1.1+MathML+SVG parsing ⊹ +PASS XHTML1.1+MathML+SVG parsing 𝔥 +PASS XHTML1.1+MathML+SVG parsing ℌ +PASS XHTML1.1+MathML+SVG parsing ℋ +PASS XHTML1.1+MathML+SVG parsing ⤥ +PASS XHTML1.1+MathML+SVG parsing ⤦ +PASS XHTML1.1+MathML+SVG parsing ⇿ +PASS XHTML1.1+MathML+SVG parsing ∻ +PASS XHTML1.1+MathML+SVG parsing ↩ +PASS XHTML1.1+MathML+SVG parsing ↪ +PASS XHTML1.1+MathML+SVG parsing 𝕙 +PASS XHTML1.1+MathML+SVG parsing ℍ +PASS XHTML1.1+MathML+SVG parsing ― +PASS XHTML1.1+MathML+SVG parsing ─ +PASS XHTML1.1+MathML+SVG parsing 𝒽 +PASS XHTML1.1+MathML+SVG parsing ℋ +PASS XHTML1.1+MathML+SVG parsing ℏ +PASS XHTML1.1+MathML+SVG parsing Ħ +PASS XHTML1.1+MathML+SVG parsing ħ +PASS XHTML1.1+MathML+SVG parsing ≎ +PASS XHTML1.1+MathML+SVG parsing ≏ +PASS XHTML1.1+MathML+SVG parsing ⁃ +PASS XHTML1.1+MathML+SVG parsing ‐ +PASS XHTML1.1+MathML+SVG parsing Í +PASS XHTML1.1+MathML+SVG parsing í +PASS XHTML1.1+MathML+SVG parsing ⁣ +PASS XHTML1.1+MathML+SVG parsing Î +PASS XHTML1.1+MathML+SVG parsing î +PASS XHTML1.1+MathML+SVG parsing И +PASS XHTML1.1+MathML+SVG parsing и +PASS XHTML1.1+MathML+SVG parsing İ +PASS XHTML1.1+MathML+SVG parsing Е +PASS XHTML1.1+MathML+SVG parsing е +PASS XHTML1.1+MathML+SVG parsing ¡ +PASS XHTML1.1+MathML+SVG parsing ⇔ +PASS XHTML1.1+MathML+SVG parsing 𝔦 +PASS XHTML1.1+MathML+SVG parsing ℑ +PASS XHTML1.1+MathML+SVG parsing Ì +PASS XHTML1.1+MathML+SVG parsing ì +PASS XHTML1.1+MathML+SVG parsing ⅈ +PASS XHTML1.1+MathML+SVG parsing ⨌ +PASS XHTML1.1+MathML+SVG parsing ∭ +PASS XHTML1.1+MathML+SVG parsing ⧜ +PASS XHTML1.1+MathML+SVG parsing ℩ +PASS XHTML1.1+MathML+SVG parsing IJ +PASS XHTML1.1+MathML+SVG parsing ij +PASS XHTML1.1+MathML+SVG parsing Ī +PASS XHTML1.1+MathML+SVG parsing ī +PASS XHTML1.1+MathML+SVG parsing ℑ +PASS XHTML1.1+MathML+SVG parsing ⅈ +PASS XHTML1.1+MathML+SVG parsing ℐ +PASS XHTML1.1+MathML+SVG parsing ℑ +PASS XHTML1.1+MathML+SVG parsing ı +PASS XHTML1.1+MathML+SVG parsing ℑ +PASS XHTML1.1+MathML+SVG parsing ⊷ +PASS XHTML1.1+MathML+SVG parsing Ƶ +PASS XHTML1.1+MathML+SVG parsing ⇒ +PASS XHTML1.1+MathML+SVG parsing ℅ +PASS XHTML1.1+MathML+SVG parsing ∈ +PASS XHTML1.1+MathML+SVG parsing ∞ +PASS XHTML1.1+MathML+SVG parsing ⧝ +PASS XHTML1.1+MathML+SVG parsing ı +PASS XHTML1.1+MathML+SVG parsing ⊺ +PASS XHTML1.1+MathML+SVG parsing ∫ +PASS XHTML1.1+MathML+SVG parsing ∬ +PASS XHTML1.1+MathML+SVG parsing ℤ +PASS XHTML1.1+MathML+SVG parsing ∫ +PASS XHTML1.1+MathML+SVG parsing ⊺ +PASS XHTML1.1+MathML+SVG parsing ⋂ +PASS XHTML1.1+MathML+SVG parsing ⨗ +PASS XHTML1.1+MathML+SVG parsing ⨼ +PASS XHTML1.1+MathML+SVG parsing ⁣ +PASS XHTML1.1+MathML+SVG parsing ⁢ +PASS XHTML1.1+MathML+SVG parsing Ё +PASS XHTML1.1+MathML+SVG parsing ё +PASS XHTML1.1+MathML+SVG parsing Į +PASS XHTML1.1+MathML+SVG parsing į +PASS XHTML1.1+MathML+SVG parsing 𝕀 +PASS XHTML1.1+MathML+SVG parsing 𝕚 +PASS XHTML1.1+MathML+SVG parsing Ι +PASS XHTML1.1+MathML+SVG parsing ι +PASS XHTML1.1+MathML+SVG parsing ⨼ +PASS XHTML1.1+MathML+SVG parsing ¿ +PASS XHTML1.1+MathML+SVG parsing 𝒾 +PASS XHTML1.1+MathML+SVG parsing ℐ +PASS XHTML1.1+MathML+SVG parsing ∈ +PASS XHTML1.1+MathML+SVG parsing ⋵ +PASS XHTML1.1+MathML+SVG parsing ⋹ +PASS XHTML1.1+MathML+SVG parsing ⋴ +PASS XHTML1.1+MathML+SVG parsing ⋳ +PASS XHTML1.1+MathML+SVG parsing ∈ +PASS XHTML1.1+MathML+SVG parsing ⁢ +PASS XHTML1.1+MathML+SVG parsing Ĩ +PASS XHTML1.1+MathML+SVG parsing ĩ +PASS XHTML1.1+MathML+SVG parsing І +PASS XHTML1.1+MathML+SVG parsing і +PASS XHTML1.1+MathML+SVG parsing Ï +PASS XHTML1.1+MathML+SVG parsing ï +PASS XHTML1.1+MathML+SVG parsing Ĵ +PASS XHTML1.1+MathML+SVG parsing ĵ +PASS XHTML1.1+MathML+SVG parsing Й +PASS XHTML1.1+MathML+SVG parsing й +PASS XHTML1.1+MathML+SVG parsing 𝔍 +PASS XHTML1.1+MathML+SVG parsing 𝔧 +PASS XHTML1.1+MathML+SVG parsing ȷ +PASS XHTML1.1+MathML+SVG parsing 𝕁 +PASS XHTML1.1+MathML+SVG parsing 𝕛 +PASS XHTML1.1+MathML+SVG parsing 𝒥 +PASS XHTML1.1+MathML+SVG parsing 𝒿 +PASS XHTML1.1+MathML+SVG parsing Ј +PASS XHTML1.1+MathML+SVG parsing ј +PASS XHTML1.1+MathML+SVG parsing Є +PASS XHTML1.1+MathML+SVG parsing є +PASS XHTML1.1+MathML+SVG parsing Κ +PASS XHTML1.1+MathML+SVG parsing κ +PASS XHTML1.1+MathML+SVG parsing ϰ +PASS XHTML1.1+MathML+SVG parsing Ķ +PASS XHTML1.1+MathML+SVG parsing ķ +PASS XHTML1.1+MathML+SVG parsing К +PASS XHTML1.1+MathML+SVG parsing к +PASS XHTML1.1+MathML+SVG parsing 𝔎 +PASS XHTML1.1+MathML+SVG parsing 𝔨 +PASS XHTML1.1+MathML+SVG parsing ĸ +PASS XHTML1.1+MathML+SVG parsing Х +PASS XHTML1.1+MathML+SVG parsing х +PASS XHTML1.1+MathML+SVG parsing Ќ +PASS XHTML1.1+MathML+SVG parsing ќ +PASS XHTML1.1+MathML+SVG parsing 𝕂 +PASS XHTML1.1+MathML+SVG parsing 𝕜 +PASS XHTML1.1+MathML+SVG parsing 𝒦 +PASS XHTML1.1+MathML+SVG parsing 𝓀 +PASS XHTML1.1+MathML+SVG parsing ⇚ +PASS XHTML1.1+MathML+SVG parsing Ĺ +PASS XHTML1.1+MathML+SVG parsing ĺ +PASS XHTML1.1+MathML+SVG parsing ⦴ +PASS XHTML1.1+MathML+SVG parsing ℒ +PASS XHTML1.1+MathML+SVG parsing Λ +PASS XHTML1.1+MathML+SVG parsing λ +PASS XHTML1.1+MathML+SVG parsing ⟨ +PASS XHTML1.1+MathML+SVG parsing ⟪ +PASS XHTML1.1+MathML+SVG parsing ⦑ +PASS XHTML1.1+MathML+SVG parsing ⟨ +PASS XHTML1.1+MathML+SVG parsing ⪅ +PASS XHTML1.1+MathML+SVG parsing ℒ +PASS XHTML1.1+MathML+SVG parsing « +PASS XHTML1.1+MathML+SVG parsing ⇤ +PASS XHTML1.1+MathML+SVG parsing ⤟ +PASS XHTML1.1+MathML+SVG parsing ← +PASS XHTML1.1+MathML+SVG parsing ↞ +PASS XHTML1.1+MathML+SVG parsing ⇐ +PASS XHTML1.1+MathML+SVG parsing ⤝ +PASS XHTML1.1+MathML+SVG parsing ↩ +PASS XHTML1.1+MathML+SVG parsing ↫ +PASS XHTML1.1+MathML+SVG parsing ⤹ +PASS XHTML1.1+MathML+SVG parsing ⥳ +PASS XHTML1.1+MathML+SVG parsing ↢ +PASS XHTML1.1+MathML+SVG parsing ⤙ +PASS XHTML1.1+MathML+SVG parsing ⤛ +PASS XHTML1.1+MathML+SVG parsing ⪫ +PASS XHTML1.1+MathML+SVG parsing ⪭ +PASS XHTML1.1+MathML+SVG parsing ⪭︀ +PASS XHTML1.1+MathML+SVG parsing ⤌ +PASS XHTML1.1+MathML+SVG parsing ⤎ +PASS XHTML1.1+MathML+SVG parsing ❲ +PASS XHTML1.1+MathML+SVG parsing { +PASS XHTML1.1+MathML+SVG parsing [ +PASS XHTML1.1+MathML+SVG parsing ⦋ +PASS XHTML1.1+MathML+SVG parsing ⦏ +PASS XHTML1.1+MathML+SVG parsing ⦍ +PASS XHTML1.1+MathML+SVG parsing Ľ +PASS XHTML1.1+MathML+SVG parsing ľ +PASS XHTML1.1+MathML+SVG parsing Ļ +PASS XHTML1.1+MathML+SVG parsing ļ +PASS XHTML1.1+MathML+SVG parsing ⌈ +PASS XHTML1.1+MathML+SVG parsing { +PASS XHTML1.1+MathML+SVG parsing Л +PASS XHTML1.1+MathML+SVG parsing л +PASS XHTML1.1+MathML+SVG parsing ⤶ +PASS XHTML1.1+MathML+SVG parsing “ +PASS XHTML1.1+MathML+SVG parsing „ +PASS XHTML1.1+MathML+SVG parsing ⥧ +PASS XHTML1.1+MathML+SVG parsing ⥋ +PASS XHTML1.1+MathML+SVG parsing ↲ +PASS XHTML1.1+MathML+SVG parsing ≤ +PASS XHTML1.1+MathML+SVG parsing ≦ +PASS XHTML1.1+MathML+SVG parsing ⟨ +PASS XHTML1.1+MathML+SVG parsing ⇤ +PASS XHTML1.1+MathML+SVG parsing ← +PASS XHTML1.1+MathML+SVG parsing ← +PASS XHTML1.1+MathML+SVG parsing ⇐ +PASS XHTML1.1+MathML+SVG parsing ⇆ +PASS XHTML1.1+MathML+SVG parsing ↢ +PASS XHTML1.1+MathML+SVG parsing ⌈ +PASS XHTML1.1+MathML+SVG parsing ⟦ +PASS XHTML1.1+MathML+SVG parsing ⥡ +PASS XHTML1.1+MathML+SVG parsing ⥙ +PASS XHTML1.1+MathML+SVG parsing ⇃ +PASS XHTML1.1+MathML+SVG parsing ⌊ +PASS XHTML1.1+MathML+SVG parsing ↽ +PASS XHTML1.1+MathML+SVG parsing ↼ +PASS XHTML1.1+MathML+SVG parsing ⇇ +PASS XHTML1.1+MathML+SVG parsing ↔ +PASS XHTML1.1+MathML+SVG parsing ↔ +PASS XHTML1.1+MathML+SVG parsing ⇔ +PASS XHTML1.1+MathML+SVG parsing ⇆ +PASS XHTML1.1+MathML+SVG parsing ⇋ +PASS XHTML1.1+MathML+SVG parsing ↭ +PASS XHTML1.1+MathML+SVG parsing ⥎ +PASS XHTML1.1+MathML+SVG parsing ↤ +PASS XHTML1.1+MathML+SVG parsing ⊣ +PASS XHTML1.1+MathML+SVG parsing ⥚ +PASS XHTML1.1+MathML+SVG parsing ⋋ +PASS XHTML1.1+MathML+SVG parsing ⧏ +PASS XHTML1.1+MathML+SVG parsing ⊲ +PASS XHTML1.1+MathML+SVG parsing ⊴ +PASS XHTML1.1+MathML+SVG parsing ⥑ +PASS XHTML1.1+MathML+SVG parsing ⥠ +PASS XHTML1.1+MathML+SVG parsing ⥘ +PASS XHTML1.1+MathML+SVG parsing ↿ +PASS XHTML1.1+MathML+SVG parsing ⥒ +PASS XHTML1.1+MathML+SVG parsing ↼ +PASS XHTML1.1+MathML+SVG parsing ⪋ +PASS XHTML1.1+MathML+SVG parsing ⋚ +PASS XHTML1.1+MathML+SVG parsing ≤ +PASS XHTML1.1+MathML+SVG parsing ≦ +PASS XHTML1.1+MathML+SVG parsing ⩽ +PASS XHTML1.1+MathML+SVG parsing ⪨ +PASS XHTML1.1+MathML+SVG parsing ⩽ +PASS XHTML1.1+MathML+SVG parsing ⩿ +PASS XHTML1.1+MathML+SVG parsing ⪁ +PASS XHTML1.1+MathML+SVG parsing ⪃ +PASS XHTML1.1+MathML+SVG parsing ⋚︀ +PASS XHTML1.1+MathML+SVG parsing ⪓ +PASS XHTML1.1+MathML+SVG parsing ⪅ +PASS XHTML1.1+MathML+SVG parsing ⋖ +PASS XHTML1.1+MathML+SVG parsing ⋚ +PASS XHTML1.1+MathML+SVG parsing ⪋ +PASS XHTML1.1+MathML+SVG parsing ⋚ +PASS XHTML1.1+MathML+SVG parsing ≦ +PASS XHTML1.1+MathML+SVG parsing ≶ +PASS XHTML1.1+MathML+SVG parsing ≶ +PASS XHTML1.1+MathML+SVG parsing ⪡ +PASS XHTML1.1+MathML+SVG parsing ≲ +PASS XHTML1.1+MathML+SVG parsing ⩽ +PASS XHTML1.1+MathML+SVG parsing ≲ +PASS XHTML1.1+MathML+SVG parsing ⥼ +PASS XHTML1.1+MathML+SVG parsing ⌊ +PASS XHTML1.1+MathML+SVG parsing 𝔏 +PASS XHTML1.1+MathML+SVG parsing 𝔩 +PASS XHTML1.1+MathML+SVG parsing ≶ +PASS XHTML1.1+MathML+SVG parsing ⪑ +PASS XHTML1.1+MathML+SVG parsing ⥢ +PASS XHTML1.1+MathML+SVG parsing ↽ +PASS XHTML1.1+MathML+SVG parsing ↼ +PASS XHTML1.1+MathML+SVG parsing ⥪ +PASS XHTML1.1+MathML+SVG parsing ▄ +PASS XHTML1.1+MathML+SVG parsing Љ +PASS XHTML1.1+MathML+SVG parsing љ +PASS XHTML1.1+MathML+SVG parsing ⇇ +PASS XHTML1.1+MathML+SVG parsing ≪ +PASS XHTML1.1+MathML+SVG parsing ⋘ +PASS XHTML1.1+MathML+SVG parsing ⌞ +PASS XHTML1.1+MathML+SVG parsing ⇚ +PASS XHTML1.1+MathML+SVG parsing ⥫ +PASS XHTML1.1+MathML+SVG parsing ◺ +PASS XHTML1.1+MathML+SVG parsing Ŀ +PASS XHTML1.1+MathML+SVG parsing ŀ +PASS XHTML1.1+MathML+SVG parsing ⎰ +PASS XHTML1.1+MathML+SVG parsing ⎰ +PASS XHTML1.1+MathML+SVG parsing ⪉ +PASS XHTML1.1+MathML+SVG parsing ⪉ +PASS XHTML1.1+MathML+SVG parsing ⪇ +PASS XHTML1.1+MathML+SVG parsing ≨ +PASS XHTML1.1+MathML+SVG parsing ⪇ +PASS XHTML1.1+MathML+SVG parsing ≨ +PASS XHTML1.1+MathML+SVG parsing ⋦ +PASS XHTML1.1+MathML+SVG parsing ⟬ +PASS XHTML1.1+MathML+SVG parsing ⇽ +PASS XHTML1.1+MathML+SVG parsing ⟦ +PASS XHTML1.1+MathML+SVG parsing ⟵ +PASS XHTML1.1+MathML+SVG parsing ⟵ +PASS XHTML1.1+MathML+SVG parsing ⟸ +PASS XHTML1.1+MathML+SVG parsing ⟷ +PASS XHTML1.1+MathML+SVG parsing ⟷ +PASS XHTML1.1+MathML+SVG parsing ⟺ +PASS XHTML1.1+MathML+SVG parsing ⟼ +PASS XHTML1.1+MathML+SVG parsing ⟶ +PASS XHTML1.1+MathML+SVG parsing ⟶ +PASS XHTML1.1+MathML+SVG parsing ⟹ +PASS XHTML1.1+MathML+SVG parsing ↫ +PASS XHTML1.1+MathML+SVG parsing ↬ +PASS XHTML1.1+MathML+SVG parsing ⦅ +PASS XHTML1.1+MathML+SVG parsing 𝕃 +PASS XHTML1.1+MathML+SVG parsing 𝕝 +PASS XHTML1.1+MathML+SVG parsing ⨭ +PASS XHTML1.1+MathML+SVG parsing ⨴ +PASS XHTML1.1+MathML+SVG parsing ∗ +PASS XHTML1.1+MathML+SVG parsing _ +PASS XHTML1.1+MathML+SVG parsing ↙ +PASS XHTML1.1+MathML+SVG parsing ↘ +PASS XHTML1.1+MathML+SVG parsing ◊ +PASS XHTML1.1+MathML+SVG parsing ◊ +PASS XHTML1.1+MathML+SVG parsing ⧫ +PASS XHTML1.1+MathML+SVG parsing ( +PASS XHTML1.1+MathML+SVG parsing ⦓ +PASS XHTML1.1+MathML+SVG parsing ⇆ +PASS XHTML1.1+MathML+SVG parsing ⌟ +PASS XHTML1.1+MathML+SVG parsing ⇋ +PASS XHTML1.1+MathML+SVG parsing ⥭ +PASS XHTML1.1+MathML+SVG parsing ‎ +PASS XHTML1.1+MathML+SVG parsing ⊿ +PASS XHTML1.1+MathML+SVG parsing ‹ +PASS XHTML1.1+MathML+SVG parsing 𝓁 +PASS XHTML1.1+MathML+SVG parsing ℒ +PASS XHTML1.1+MathML+SVG parsing ↰ +PASS XHTML1.1+MathML+SVG parsing ↰ +PASS XHTML1.1+MathML+SVG parsing ≲ +PASS XHTML1.1+MathML+SVG parsing ⪍ +PASS XHTML1.1+MathML+SVG parsing ⪏ +PASS XHTML1.1+MathML+SVG parsing [ +PASS XHTML1.1+MathML+SVG parsing ‘ +PASS XHTML1.1+MathML+SVG parsing ‚ +PASS XHTML1.1+MathML+SVG parsing Ł +PASS XHTML1.1+MathML+SVG parsing ł +PASS XHTML1.1+MathML+SVG parsing ⪦ +PASS XHTML1.1+MathML+SVG parsing ⩹ +PASS XHTML1.1+MathML+SVG parsing < +FAIL XHTML1.1+MathML+SVG parsing < assert_true: expected true got false +PASS XHTML1.1+MathML+SVG parsing ≪ +PASS XHTML1.1+MathML+SVG parsing ⋖ +PASS XHTML1.1+MathML+SVG parsing ⋋ +PASS XHTML1.1+MathML+SVG parsing ⋉ +PASS XHTML1.1+MathML+SVG parsing ⥶ +PASS XHTML1.1+MathML+SVG parsing ⩻ +PASS XHTML1.1+MathML+SVG parsing ◃ +PASS XHTML1.1+MathML+SVG parsing ⊴ +PASS XHTML1.1+MathML+SVG parsing ◂ +PASS XHTML1.1+MathML+SVG parsing ⦖ +PASS XHTML1.1+MathML+SVG parsing ⥊ +PASS XHTML1.1+MathML+SVG parsing ⥦ +PASS XHTML1.1+MathML+SVG parsing ≨︀ +PASS XHTML1.1+MathML+SVG parsing ≨︀ +PASS XHTML1.1+MathML+SVG parsing ¯ +PASS XHTML1.1+MathML+SVG parsing ♂ +PASS XHTML1.1+MathML+SVG parsing ✠ +PASS XHTML1.1+MathML+SVG parsing ✠ +PASS XHTML1.1+MathML+SVG parsing ⤅ +PASS XHTML1.1+MathML+SVG parsing ↦ +PASS XHTML1.1+MathML+SVG parsing ↦ +PASS XHTML1.1+MathML+SVG parsing ↧ +PASS XHTML1.1+MathML+SVG parsing ↤ +PASS XHTML1.1+MathML+SVG parsing ↥ +PASS XHTML1.1+MathML+SVG parsing ▮ +PASS XHTML1.1+MathML+SVG parsing ⨩ +PASS XHTML1.1+MathML+SVG parsing М +PASS XHTML1.1+MathML+SVG parsing м +PASS XHTML1.1+MathML+SVG parsing — +PASS XHTML1.1+MathML+SVG parsing ∺ +PASS XHTML1.1+MathML+SVG parsing ∡ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing ℳ +PASS XHTML1.1+MathML+SVG parsing 𝔐 +PASS XHTML1.1+MathML+SVG parsing 𝔪 +PASS XHTML1.1+MathML+SVG parsing ℧ +PASS XHTML1.1+MathML+SVG parsing µ +PASS XHTML1.1+MathML+SVG parsing * +PASS XHTML1.1+MathML+SVG parsing ⫰ +PASS XHTML1.1+MathML+SVG parsing ∣ +PASS XHTML1.1+MathML+SVG parsing · +PASS XHTML1.1+MathML+SVG parsing ⊟ +PASS XHTML1.1+MathML+SVG parsing − +PASS XHTML1.1+MathML+SVG parsing ∸ +PASS XHTML1.1+MathML+SVG parsing ⨪ +PASS XHTML1.1+MathML+SVG parsing ∓ +PASS XHTML1.1+MathML+SVG parsing ⫛ +PASS XHTML1.1+MathML+SVG parsing … +PASS XHTML1.1+MathML+SVG parsing ∓ +PASS XHTML1.1+MathML+SVG parsing ⊧ +PASS XHTML1.1+MathML+SVG parsing 𝕄 +PASS XHTML1.1+MathML+SVG parsing 𝕞 +PASS XHTML1.1+MathML+SVG parsing ∓ +PASS XHTML1.1+MathML+SVG parsing 𝓂 +PASS XHTML1.1+MathML+SVG parsing ℳ +PASS XHTML1.1+MathML+SVG parsing ∾ +PASS XHTML1.1+MathML+SVG parsing Μ +PASS XHTML1.1+MathML+SVG parsing μ +PASS XHTML1.1+MathML+SVG parsing ⊸ +PASS XHTML1.1+MathML+SVG parsing ⊸ +PASS XHTML1.1+MathML+SVG parsing ∇ +PASS XHTML1.1+MathML+SVG parsing Ń +PASS XHTML1.1+MathML+SVG parsing ń +PASS XHTML1.1+MathML+SVG parsing ∠⃒ +PASS XHTML1.1+MathML+SVG parsing ≉ +PASS XHTML1.1+MathML+SVG parsing ⩰̸ +PASS XHTML1.1+MathML+SVG parsing ≋̸ +PASS XHTML1.1+MathML+SVG parsing ʼn +PASS XHTML1.1+MathML+SVG parsing ≉ +PASS XHTML1.1+MathML+SVG parsing ♮ +PASS XHTML1.1+MathML+SVG parsing ℕ +PASS XHTML1.1+MathML+SVG parsing ♮ +PASS XHTML1.1+MathML+SVG parsing +PASS XHTML1.1+MathML+SVG parsing ≎̸ +PASS XHTML1.1+MathML+SVG parsing ≏̸ +PASS XHTML1.1+MathML+SVG parsing ⩃ +PASS XHTML1.1+MathML+SVG parsing Ň +PASS XHTML1.1+MathML+SVG parsing ň +PASS XHTML1.1+MathML+SVG parsing Ņ +PASS XHTML1.1+MathML+SVG parsing ņ +PASS XHTML1.1+MathML+SVG parsing ≇ +PASS XHTML1.1+MathML+SVG parsing ⩭̸ +PASS XHTML1.1+MathML+SVG parsing ⩂ +PASS XHTML1.1+MathML+SVG parsing Н +PASS XHTML1.1+MathML+SVG parsing н +PASS XHTML1.1+MathML+SVG parsing – +PASS XHTML1.1+MathML+SVG parsing ⤤ +PASS XHTML1.1+MathML+SVG parsing ↗ +PASS XHTML1.1+MathML+SVG parsing ⇗ +PASS XHTML1.1+MathML+SVG parsing ↗ +PASS XHTML1.1+MathML+SVG parsing ≠ +PASS XHTML1.1+MathML+SVG parsing ≐̸ +PASS XHTML1.1+MathML+SVG parsing ​ +PASS XHTML1.1+MathML+SVG parsing ​ +PASS XHTML1.1+MathML+SVG parsing ​ +PASS XHTML1.1+MathML+SVG parsing ​ +PASS XHTML1.1+MathML+SVG parsing ≢ +PASS XHTML1.1+MathML+SVG parsing ⤨ +PASS XHTML1.1+MathML+SVG parsing ≂̸ +PASS XHTML1.1+MathML+SVG parsing ≫ +PASS XHTML1.1+MathML+SVG parsing ≪ +PASS XHTML1.1+MathML+SVG parsing 
 +PASS XHTML1.1+MathML+SVG parsing ∄ +PASS XHTML1.1+MathML+SVG parsing ∄ +PASS XHTML1.1+MathML+SVG parsing 𝔑 +PASS XHTML1.1+MathML+SVG parsing 𝔫 +PASS XHTML1.1+MathML+SVG parsing ≧̸ +PASS XHTML1.1+MathML+SVG parsing ≱ +PASS XHTML1.1+MathML+SVG parsing ≱ +PASS XHTML1.1+MathML+SVG parsing ≧̸ +PASS XHTML1.1+MathML+SVG parsing ⩾̸ +PASS XHTML1.1+MathML+SVG parsing ⩾̸ +PASS XHTML1.1+MathML+SVG parsing ⋙̸ +PASS XHTML1.1+MathML+SVG parsing ≵ +PASS XHTML1.1+MathML+SVG parsing ≫⃒ +PASS XHTML1.1+MathML+SVG parsing ≯ +PASS XHTML1.1+MathML+SVG parsing ≯ +PASS XHTML1.1+MathML+SVG parsing ≫̸ +PASS XHTML1.1+MathML+SVG parsing ↮ +PASS XHTML1.1+MathML+SVG parsing ⇎ +PASS XHTML1.1+MathML+SVG parsing ⫲ +PASS XHTML1.1+MathML+SVG parsing ∋ +PASS XHTML1.1+MathML+SVG parsing ⋼ +PASS XHTML1.1+MathML+SVG parsing ⋺ +PASS XHTML1.1+MathML+SVG parsing ∋ +PASS XHTML1.1+MathML+SVG parsing Њ +PASS XHTML1.1+MathML+SVG parsing њ +PASS XHTML1.1+MathML+SVG parsing ↚ +PASS XHTML1.1+MathML+SVG parsing ⇍ +PASS XHTML1.1+MathML+SVG parsing ‥ +PASS XHTML1.1+MathML+SVG parsing ≦̸ +PASS XHTML1.1+MathML+SVG parsing ≰ +PASS XHTML1.1+MathML+SVG parsing ↚ +PASS XHTML1.1+MathML+SVG parsing ⇍ +PASS XHTML1.1+MathML+SVG parsing ↮ +PASS XHTML1.1+MathML+SVG parsing ⇎ +PASS XHTML1.1+MathML+SVG parsing ≰ +PASS XHTML1.1+MathML+SVG parsing ≦̸ +PASS XHTML1.1+MathML+SVG parsing ⩽̸ +PASS XHTML1.1+MathML+SVG parsing ⩽̸ +PASS XHTML1.1+MathML+SVG parsing ≮ +PASS XHTML1.1+MathML+SVG parsing ⋘̸ +PASS XHTML1.1+MathML+SVG parsing ≴ +PASS XHTML1.1+MathML+SVG parsing ≪⃒ +PASS XHTML1.1+MathML+SVG parsing ≮ +PASS XHTML1.1+MathML+SVG parsing ⋪ +PASS XHTML1.1+MathML+SVG parsing ⋬ +PASS XHTML1.1+MathML+SVG parsing ≪̸ +PASS XHTML1.1+MathML+SVG parsing ∤ +PASS XHTML1.1+MathML+SVG parsing ⁠ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing 𝕟 +PASS XHTML1.1+MathML+SVG parsing ℕ +PASS XHTML1.1+MathML+SVG parsing ⫬ +PASS XHTML1.1+MathML+SVG parsing ¬ +PASS XHTML1.1+MathML+SVG parsing ≢ +PASS XHTML1.1+MathML+SVG parsing ≭ +PASS XHTML1.1+MathML+SVG parsing ∦ +PASS XHTML1.1+MathML+SVG parsing ∉ +PASS XHTML1.1+MathML+SVG parsing ≠ +PASS XHTML1.1+MathML+SVG parsing ≂̸ +PASS XHTML1.1+MathML+SVG parsing ∄ +PASS XHTML1.1+MathML+SVG parsing ≯ +PASS XHTML1.1+MathML+SVG parsing ≱ +PASS XHTML1.1+MathML+SVG parsing ≧̸ +PASS XHTML1.1+MathML+SVG parsing ≫̸ +PASS XHTML1.1+MathML+SVG parsing ≹ +PASS XHTML1.1+MathML+SVG parsing ⩾̸ +PASS XHTML1.1+MathML+SVG parsing ≵ +PASS XHTML1.1+MathML+SVG parsing ≎̸ +PASS XHTML1.1+MathML+SVG parsing ≏̸ +PASS XHTML1.1+MathML+SVG parsing ∉ +PASS XHTML1.1+MathML+SVG parsing ⋵̸ +PASS XHTML1.1+MathML+SVG parsing ⋹̸ +PASS XHTML1.1+MathML+SVG parsing ∉ +PASS XHTML1.1+MathML+SVG parsing ⋷ +PASS XHTML1.1+MathML+SVG parsing ⋶ +PASS XHTML1.1+MathML+SVG parsing ⧏̸ +PASS XHTML1.1+MathML+SVG parsing ⋪ +PASS XHTML1.1+MathML+SVG parsing ⋬ +PASS XHTML1.1+MathML+SVG parsing ≮ +PASS XHTML1.1+MathML+SVG parsing ≰ +PASS XHTML1.1+MathML+SVG parsing ≸ +PASS XHTML1.1+MathML+SVG parsing ≪̸ +PASS XHTML1.1+MathML+SVG parsing ⩽̸ +PASS XHTML1.1+MathML+SVG parsing ≴ +PASS XHTML1.1+MathML+SVG parsing ⪢̸ +PASS XHTML1.1+MathML+SVG parsing ⪡̸ +PASS XHTML1.1+MathML+SVG parsing ∌ +PASS XHTML1.1+MathML+SVG parsing ∌ +PASS XHTML1.1+MathML+SVG parsing ⋾ +PASS XHTML1.1+MathML+SVG parsing ⋽ +PASS XHTML1.1+MathML+SVG parsing ⊀ +PASS XHTML1.1+MathML+SVG parsing ⪯̸ +PASS XHTML1.1+MathML+SVG parsing ⋠ +PASS XHTML1.1+MathML+SVG parsing ∌ +PASS XHTML1.1+MathML+SVG parsing ⧐̸ +PASS XHTML1.1+MathML+SVG parsing ⋫ +PASS XHTML1.1+MathML+SVG parsing ⋭ +PASS XHTML1.1+MathML+SVG parsing ⊏̸ +PASS XHTML1.1+MathML+SVG parsing ⋢ +PASS XHTML1.1+MathML+SVG parsing ⊐̸ +PASS XHTML1.1+MathML+SVG parsing ⋣ +PASS XHTML1.1+MathML+SVG parsing ⊂⃒ +PASS XHTML1.1+MathML+SVG parsing ⊈ +PASS XHTML1.1+MathML+SVG parsing ⊁ +PASS XHTML1.1+MathML+SVG parsing ⪰̸ +PASS XHTML1.1+MathML+SVG parsing ⋡ +PASS XHTML1.1+MathML+SVG parsing ≿̸ +PASS XHTML1.1+MathML+SVG parsing ⊃⃒ +PASS XHTML1.1+MathML+SVG parsing ⊉ +PASS XHTML1.1+MathML+SVG parsing ≁ +PASS XHTML1.1+MathML+SVG parsing ≄ +PASS XHTML1.1+MathML+SVG parsing ≇ +PASS XHTML1.1+MathML+SVG parsing ≉ +PASS XHTML1.1+MathML+SVG parsing ∤ +PASS XHTML1.1+MathML+SVG parsing ∦ +PASS XHTML1.1+MathML+SVG parsing ∦ +PASS XHTML1.1+MathML+SVG parsing ⫽⃥ +PASS XHTML1.1+MathML+SVG parsing ∂̸ +PASS XHTML1.1+MathML+SVG parsing ⨔ +PASS XHTML1.1+MathML+SVG parsing ⊀ +PASS XHTML1.1+MathML+SVG parsing ⋠ +PASS XHTML1.1+MathML+SVG parsing ⊀ +PASS XHTML1.1+MathML+SVG parsing ⪯̸ +PASS XHTML1.1+MathML+SVG parsing ⪯̸ +PASS XHTML1.1+MathML+SVG parsing ⤳̸ +PASS XHTML1.1+MathML+SVG parsing ↛ +PASS XHTML1.1+MathML+SVG parsing ⇏ +PASS XHTML1.1+MathML+SVG parsing ↝̸ +PASS XHTML1.1+MathML+SVG parsing ↛ +PASS XHTML1.1+MathML+SVG parsing ⇏ +PASS XHTML1.1+MathML+SVG parsing ⋫ +PASS XHTML1.1+MathML+SVG parsing ⋭ +PASS XHTML1.1+MathML+SVG parsing ⊁ +PASS XHTML1.1+MathML+SVG parsing ⋡ +PASS XHTML1.1+MathML+SVG parsing ⪰̸ +PASS XHTML1.1+MathML+SVG parsing 𝒩 +PASS XHTML1.1+MathML+SVG parsing 𝓃 +PASS XHTML1.1+MathML+SVG parsing ∤ +PASS XHTML1.1+MathML+SVG parsing ∦ +PASS XHTML1.1+MathML+SVG parsing ≁ +PASS XHTML1.1+MathML+SVG parsing ≄ +PASS XHTML1.1+MathML+SVG parsing ≄ +PASS XHTML1.1+MathML+SVG parsing ∤ +PASS XHTML1.1+MathML+SVG parsing ∦ +PASS XHTML1.1+MathML+SVG parsing ⋢ +PASS XHTML1.1+MathML+SVG parsing ⋣ +PASS XHTML1.1+MathML+SVG parsing ⊄ +PASS XHTML1.1+MathML+SVG parsing ⫅̸ +PASS XHTML1.1+MathML+SVG parsing ⊈ +PASS XHTML1.1+MathML+SVG parsing ⊂⃒ +PASS XHTML1.1+MathML+SVG parsing ⊈ +PASS XHTML1.1+MathML+SVG parsing ⫅̸ +PASS XHTML1.1+MathML+SVG parsing ⊁ +PASS XHTML1.1+MathML+SVG parsing ⪰̸ +PASS XHTML1.1+MathML+SVG parsing ⊅ +PASS XHTML1.1+MathML+SVG parsing ⫆̸ +PASS XHTML1.1+MathML+SVG parsing ⊉ +PASS XHTML1.1+MathML+SVG parsing ⊃⃒ +PASS XHTML1.1+MathML+SVG parsing ⊉ +PASS XHTML1.1+MathML+SVG parsing ⫆̸ +PASS XHTML1.1+MathML+SVG parsing ≹ +PASS XHTML1.1+MathML+SVG parsing Ñ +PASS XHTML1.1+MathML+SVG parsing ñ +PASS XHTML1.1+MathML+SVG parsing ≸ +PASS XHTML1.1+MathML+SVG parsing ⋪ +PASS XHTML1.1+MathML+SVG parsing ⋬ +PASS XHTML1.1+MathML+SVG parsing ⋫ +PASS XHTML1.1+MathML+SVG parsing ⋭ +PASS XHTML1.1+MathML+SVG parsing Ν +PASS XHTML1.1+MathML+SVG parsing ν +PASS XHTML1.1+MathML+SVG parsing # +PASS XHTML1.1+MathML+SVG parsing № +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing ≍⃒ +PASS XHTML1.1+MathML+SVG parsing ⊬ +PASS XHTML1.1+MathML+SVG parsing ⊭ +PASS XHTML1.1+MathML+SVG parsing ⊮ +PASS XHTML1.1+MathML+SVG parsing ⊯ +PASS XHTML1.1+MathML+SVG parsing ≥⃒ +PASS XHTML1.1+MathML+SVG parsing >⃒ +PASS XHTML1.1+MathML+SVG parsing ⤄ +PASS XHTML1.1+MathML+SVG parsing ⧞ +PASS XHTML1.1+MathML+SVG parsing ⤂ +PASS XHTML1.1+MathML+SVG parsing ≤⃒ +FAIL XHTML1.1+MathML+SVG parsing <⃒ assert_equals: XHTML1.1+MathML+SVG parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML1.1+MathML+SVG parsing ⊴⃒ +PASS XHTML1.1+MathML+SVG parsing ⤃ +PASS XHTML1.1+MathML+SVG parsing ⊵⃒ +PASS XHTML1.1+MathML+SVG parsing ∼⃒ +PASS XHTML1.1+MathML+SVG parsing ⤣ +PASS XHTML1.1+MathML+SVG parsing ↖ +PASS XHTML1.1+MathML+SVG parsing ⇖ +PASS XHTML1.1+MathML+SVG parsing ↖ +PASS XHTML1.1+MathML+SVG parsing ⤧ +PASS XHTML1.1+MathML+SVG parsing Ó +PASS XHTML1.1+MathML+SVG parsing ó +PASS XHTML1.1+MathML+SVG parsing ⊛ +PASS XHTML1.1+MathML+SVG parsing Ô +PASS XHTML1.1+MathML+SVG parsing ô +PASS XHTML1.1+MathML+SVG parsing ⊚ +PASS XHTML1.1+MathML+SVG parsing О +PASS XHTML1.1+MathML+SVG parsing о +PASS XHTML1.1+MathML+SVG parsing ⊝ +PASS XHTML1.1+MathML+SVG parsing Ő +PASS XHTML1.1+MathML+SVG parsing ő +PASS XHTML1.1+MathML+SVG parsing ⨸ +PASS XHTML1.1+MathML+SVG parsing ⊙ +PASS XHTML1.1+MathML+SVG parsing ⦼ +PASS XHTML1.1+MathML+SVG parsing Œ +PASS XHTML1.1+MathML+SVG parsing œ +PASS XHTML1.1+MathML+SVG parsing ⦿ +PASS XHTML1.1+MathML+SVG parsing 𝔒 +PASS XHTML1.1+MathML+SVG parsing 𝔬 +PASS XHTML1.1+MathML+SVG parsing ˛ +PASS XHTML1.1+MathML+SVG parsing Ò +PASS XHTML1.1+MathML+SVG parsing ò +PASS XHTML1.1+MathML+SVG parsing ⧁ +PASS XHTML1.1+MathML+SVG parsing ⦵ +PASS XHTML1.1+MathML+SVG parsing Ω +PASS XHTML1.1+MathML+SVG parsing ∮ +PASS XHTML1.1+MathML+SVG parsing ↺ +PASS XHTML1.1+MathML+SVG parsing ⦾ +PASS XHTML1.1+MathML+SVG parsing ⦻ +PASS XHTML1.1+MathML+SVG parsing ‾ +PASS XHTML1.1+MathML+SVG parsing ⧀ +PASS XHTML1.1+MathML+SVG parsing Ō +PASS XHTML1.1+MathML+SVG parsing ō +PASS XHTML1.1+MathML+SVG parsing Ω +PASS XHTML1.1+MathML+SVG parsing ω +PASS XHTML1.1+MathML+SVG parsing Ο +PASS XHTML1.1+MathML+SVG parsing ο +PASS XHTML1.1+MathML+SVG parsing ⦶ +PASS XHTML1.1+MathML+SVG parsing ⊖ +PASS XHTML1.1+MathML+SVG parsing 𝕆 +PASS XHTML1.1+MathML+SVG parsing 𝕠 +PASS XHTML1.1+MathML+SVG parsing ⦷ +PASS XHTML1.1+MathML+SVG parsing “ +PASS XHTML1.1+MathML+SVG parsing ‘ +PASS XHTML1.1+MathML+SVG parsing ⦹ +PASS XHTML1.1+MathML+SVG parsing ⊕ +PASS XHTML1.1+MathML+SVG parsing ↻ +PASS XHTML1.1+MathML+SVG parsing ⩔ +PASS XHTML1.1+MathML+SVG parsing ∨ +PASS XHTML1.1+MathML+SVG parsing ⩝ +PASS XHTML1.1+MathML+SVG parsing ℴ +PASS XHTML1.1+MathML+SVG parsing ℴ +PASS XHTML1.1+MathML+SVG parsing ª +PASS XHTML1.1+MathML+SVG parsing º +PASS XHTML1.1+MathML+SVG parsing ⊶ +PASS XHTML1.1+MathML+SVG parsing ⩖ +PASS XHTML1.1+MathML+SVG parsing ⩗ +PASS XHTML1.1+MathML+SVG parsing ⩛ +PASS XHTML1.1+MathML+SVG parsing Ⓢ +PASS XHTML1.1+MathML+SVG parsing 𝒪 +PASS XHTML1.1+MathML+SVG parsing ℴ +PASS XHTML1.1+MathML+SVG parsing Ø +PASS XHTML1.1+MathML+SVG parsing ø +PASS XHTML1.1+MathML+SVG parsing ⊘ +PASS XHTML1.1+MathML+SVG parsing Õ +PASS XHTML1.1+MathML+SVG parsing õ +PASS XHTML1.1+MathML+SVG parsing ⨶ +PASS XHTML1.1+MathML+SVG parsing ⨷ +PASS XHTML1.1+MathML+SVG parsing ⊗ +PASS XHTML1.1+MathML+SVG parsing Ö +PASS XHTML1.1+MathML+SVG parsing ö +PASS XHTML1.1+MathML+SVG parsing ⌽ +PASS XHTML1.1+MathML+SVG parsing ‾ +PASS XHTML1.1+MathML+SVG parsing ⏞ +PASS XHTML1.1+MathML+SVG parsing ⎴ +PASS XHTML1.1+MathML+SVG parsing ⏜ +PASS XHTML1.1+MathML+SVG parsing ¶ +PASS XHTML1.1+MathML+SVG parsing ∥ +PASS XHTML1.1+MathML+SVG parsing ∥ +PASS XHTML1.1+MathML+SVG parsing ⫳ +PASS XHTML1.1+MathML+SVG parsing ⫽ +PASS XHTML1.1+MathML+SVG parsing ∂ +PASS XHTML1.1+MathML+SVG parsing ∂ +PASS XHTML1.1+MathML+SVG parsing П +PASS XHTML1.1+MathML+SVG parsing п +PASS XHTML1.1+MathML+SVG parsing % +PASS XHTML1.1+MathML+SVG parsing . +PASS XHTML1.1+MathML+SVG parsing ‰ +PASS XHTML1.1+MathML+SVG parsing ⊥ +PASS XHTML1.1+MathML+SVG parsing ‱ +PASS XHTML1.1+MathML+SVG parsing 𝔓 +PASS XHTML1.1+MathML+SVG parsing 𝔭 +PASS XHTML1.1+MathML+SVG parsing Φ +PASS XHTML1.1+MathML+SVG parsing φ +PASS XHTML1.1+MathML+SVG parsing ϕ +PASS XHTML1.1+MathML+SVG parsing ℳ +PASS XHTML1.1+MathML+SVG parsing ☎ +PASS XHTML1.1+MathML+SVG parsing Π +PASS XHTML1.1+MathML+SVG parsing π +PASS XHTML1.1+MathML+SVG parsing ⋔ +PASS XHTML1.1+MathML+SVG parsing ϖ +PASS XHTML1.1+MathML+SVG parsing ℏ +PASS XHTML1.1+MathML+SVG parsing ℎ +PASS XHTML1.1+MathML+SVG parsing ℏ +PASS XHTML1.1+MathML+SVG parsing ⨣ +PASS XHTML1.1+MathML+SVG parsing ⊞ +PASS XHTML1.1+MathML+SVG parsing ⨢ +PASS XHTML1.1+MathML+SVG parsing + +PASS XHTML1.1+MathML+SVG parsing ∔ +PASS XHTML1.1+MathML+SVG parsing ⨥ +PASS XHTML1.1+MathML+SVG parsing ⩲ +PASS XHTML1.1+MathML+SVG parsing ± +PASS XHTML1.1+MathML+SVG parsing ± +PASS XHTML1.1+MathML+SVG parsing ⨦ +PASS XHTML1.1+MathML+SVG parsing ⨧ +PASS XHTML1.1+MathML+SVG parsing ± +PASS XHTML1.1+MathML+SVG parsing ℌ +PASS XHTML1.1+MathML+SVG parsing ⨕ +PASS XHTML1.1+MathML+SVG parsing 𝕡 +PASS XHTML1.1+MathML+SVG parsing ℙ +PASS XHTML1.1+MathML+SVG parsing £ +PASS XHTML1.1+MathML+SVG parsing ⪷ +PASS XHTML1.1+MathML+SVG parsing ⪻ +PASS XHTML1.1+MathML+SVG parsing ≺ +PASS XHTML1.1+MathML+SVG parsing ≼ +PASS XHTML1.1+MathML+SVG parsing ⪷ +PASS XHTML1.1+MathML+SVG parsing ≺ +PASS XHTML1.1+MathML+SVG parsing ≼ +PASS XHTML1.1+MathML+SVG parsing ≺ +PASS XHTML1.1+MathML+SVG parsing ⪯ +PASS XHTML1.1+MathML+SVG parsing ≼ +PASS XHTML1.1+MathML+SVG parsing ≾ +PASS XHTML1.1+MathML+SVG parsing ⪯ +PASS XHTML1.1+MathML+SVG parsing ⪹ +PASS XHTML1.1+MathML+SVG parsing ⪵ +PASS XHTML1.1+MathML+SVG parsing ⋨ +PASS XHTML1.1+MathML+SVG parsing ⪯ +PASS XHTML1.1+MathML+SVG parsing ⪳ +PASS XHTML1.1+MathML+SVG parsing ≾ +PASS XHTML1.1+MathML+SVG parsing ′ +PASS XHTML1.1+MathML+SVG parsing ″ +PASS XHTML1.1+MathML+SVG parsing ℙ +PASS XHTML1.1+MathML+SVG parsing ⪹ +PASS XHTML1.1+MathML+SVG parsing ⪵ +PASS XHTML1.1+MathML+SVG parsing ⋨ +PASS XHTML1.1+MathML+SVG parsing ∏ +PASS XHTML1.1+MathML+SVG parsing ∏ +PASS XHTML1.1+MathML+SVG parsing ⌮ +PASS XHTML1.1+MathML+SVG parsing ⌒ +PASS XHTML1.1+MathML+SVG parsing ⌓ +PASS XHTML1.1+MathML+SVG parsing ∝ +PASS XHTML1.1+MathML+SVG parsing ∝ +PASS XHTML1.1+MathML+SVG parsing ∷ +PASS XHTML1.1+MathML+SVG parsing ∝ +PASS XHTML1.1+MathML+SVG parsing ≾ +PASS XHTML1.1+MathML+SVG parsing ⊰ +PASS XHTML1.1+MathML+SVG parsing 𝒫 +PASS XHTML1.1+MathML+SVG parsing 𝓅 +PASS XHTML1.1+MathML+SVG parsing Ψ +PASS XHTML1.1+MathML+SVG parsing ψ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing 𝔔 +PASS XHTML1.1+MathML+SVG parsing 𝔮 +PASS XHTML1.1+MathML+SVG parsing ⨌ +PASS XHTML1.1+MathML+SVG parsing 𝕢 +PASS XHTML1.1+MathML+SVG parsing ℚ +PASS XHTML1.1+MathML+SVG parsing ⁗ +PASS XHTML1.1+MathML+SVG parsing 𝒬 +PASS XHTML1.1+MathML+SVG parsing 𝓆 +PASS XHTML1.1+MathML+SVG parsing ℍ +PASS XHTML1.1+MathML+SVG parsing ⨖ +PASS XHTML1.1+MathML+SVG parsing ? +PASS XHTML1.1+MathML+SVG parsing ≟ +PASS XHTML1.1+MathML+SVG parsing " +PASS XHTML1.1+MathML+SVG parsing " +PASS XHTML1.1+MathML+SVG parsing ⇛ +PASS XHTML1.1+MathML+SVG parsing ∽̱ +PASS XHTML1.1+MathML+SVG parsing Ŕ +PASS XHTML1.1+MathML+SVG parsing ŕ +PASS XHTML1.1+MathML+SVG parsing √ +PASS XHTML1.1+MathML+SVG parsing ⦳ +PASS XHTML1.1+MathML+SVG parsing ⟩ +PASS XHTML1.1+MathML+SVG parsing ⟫ +PASS XHTML1.1+MathML+SVG parsing ⦒ +PASS XHTML1.1+MathML+SVG parsing ⦥ +PASS XHTML1.1+MathML+SVG parsing ⟩ +PASS XHTML1.1+MathML+SVG parsing » +PASS XHTML1.1+MathML+SVG parsing ⥵ +PASS XHTML1.1+MathML+SVG parsing ⇥ +PASS XHTML1.1+MathML+SVG parsing ⤠ +PASS XHTML1.1+MathML+SVG parsing ⤳ +PASS XHTML1.1+MathML+SVG parsing → +PASS XHTML1.1+MathML+SVG parsing ↠ +PASS XHTML1.1+MathML+SVG parsing ⇒ +PASS XHTML1.1+MathML+SVG parsing ⤞ +PASS XHTML1.1+MathML+SVG parsing ↪ +PASS XHTML1.1+MathML+SVG parsing ↬ +PASS XHTML1.1+MathML+SVG parsing ⥅ +PASS XHTML1.1+MathML+SVG parsing ⥴ +PASS XHTML1.1+MathML+SVG parsing ⤖ +PASS XHTML1.1+MathML+SVG parsing ↣ +PASS XHTML1.1+MathML+SVG parsing ↝ +PASS XHTML1.1+MathML+SVG parsing ⤚ +PASS XHTML1.1+MathML+SVG parsing ⤜ +PASS XHTML1.1+MathML+SVG parsing ∶ +PASS XHTML1.1+MathML+SVG parsing ℚ +PASS XHTML1.1+MathML+SVG parsing ⤍ +PASS XHTML1.1+MathML+SVG parsing ⤏ +PASS XHTML1.1+MathML+SVG parsing ⤐ +PASS XHTML1.1+MathML+SVG parsing ❳ +PASS XHTML1.1+MathML+SVG parsing } +PASS XHTML1.1+MathML+SVG parsing ] +PASS XHTML1.1+MathML+SVG parsing ⦌ +PASS XHTML1.1+MathML+SVG parsing ⦎ +PASS XHTML1.1+MathML+SVG parsing ⦐ +PASS XHTML1.1+MathML+SVG parsing Ř +PASS XHTML1.1+MathML+SVG parsing ř +PASS XHTML1.1+MathML+SVG parsing Ŗ +PASS XHTML1.1+MathML+SVG parsing ŗ +PASS XHTML1.1+MathML+SVG parsing ⌉ +PASS XHTML1.1+MathML+SVG parsing } +PASS XHTML1.1+MathML+SVG parsing Р +PASS XHTML1.1+MathML+SVG parsing р +PASS XHTML1.1+MathML+SVG parsing ⤷ +PASS XHTML1.1+MathML+SVG parsing ⥩ +PASS XHTML1.1+MathML+SVG parsing ” +PASS XHTML1.1+MathML+SVG parsing ” +PASS XHTML1.1+MathML+SVG parsing ↳ +PASS XHTML1.1+MathML+SVG parsing ℜ +PASS XHTML1.1+MathML+SVG parsing ℛ +PASS XHTML1.1+MathML+SVG parsing ℜ +PASS XHTML1.1+MathML+SVG parsing ℝ +PASS XHTML1.1+MathML+SVG parsing ℜ +PASS XHTML1.1+MathML+SVG parsing ▭ +PASS XHTML1.1+MathML+SVG parsing ® +PASS XHTML1.1+MathML+SVG parsing ® +PASS XHTML1.1+MathML+SVG parsing ∋ +PASS XHTML1.1+MathML+SVG parsing ⇋ +PASS XHTML1.1+MathML+SVG parsing ⥯ +PASS XHTML1.1+MathML+SVG parsing ⥽ +PASS XHTML1.1+MathML+SVG parsing ⌋ +PASS XHTML1.1+MathML+SVG parsing 𝔯 +PASS XHTML1.1+MathML+SVG parsing ℜ +PASS XHTML1.1+MathML+SVG parsing ⥤ +PASS XHTML1.1+MathML+SVG parsing ⇁ +PASS XHTML1.1+MathML+SVG parsing ⇀ +PASS XHTML1.1+MathML+SVG parsing ⥬ +PASS XHTML1.1+MathML+SVG parsing Ρ +PASS XHTML1.1+MathML+SVG parsing ρ +PASS XHTML1.1+MathML+SVG parsing ϱ +PASS XHTML1.1+MathML+SVG parsing ⟩ +PASS XHTML1.1+MathML+SVG parsing ⇥ +PASS XHTML1.1+MathML+SVG parsing → +PASS XHTML1.1+MathML+SVG parsing → +PASS XHTML1.1+MathML+SVG parsing ⇒ +PASS XHTML1.1+MathML+SVG parsing ⇄ +PASS XHTML1.1+MathML+SVG parsing ↣ +PASS XHTML1.1+MathML+SVG parsing ⌉ +PASS XHTML1.1+MathML+SVG parsing ⟧ +PASS XHTML1.1+MathML+SVG parsing ⥝ +PASS XHTML1.1+MathML+SVG parsing ⥕ +PASS XHTML1.1+MathML+SVG parsing ⇂ +PASS XHTML1.1+MathML+SVG parsing ⌋ +PASS XHTML1.1+MathML+SVG parsing ⇁ +PASS XHTML1.1+MathML+SVG parsing ⇀ +PASS XHTML1.1+MathML+SVG parsing ⇄ +PASS XHTML1.1+MathML+SVG parsing ⇌ +PASS XHTML1.1+MathML+SVG parsing ⇉ +PASS XHTML1.1+MathML+SVG parsing ↝ +PASS XHTML1.1+MathML+SVG parsing ↦ +PASS XHTML1.1+MathML+SVG parsing ⊢ +PASS XHTML1.1+MathML+SVG parsing ⥛ +PASS XHTML1.1+MathML+SVG parsing ⋌ +PASS XHTML1.1+MathML+SVG parsing ⧐ +PASS XHTML1.1+MathML+SVG parsing ⊳ +PASS XHTML1.1+MathML+SVG parsing ⊵ +PASS XHTML1.1+MathML+SVG parsing ⥏ +PASS XHTML1.1+MathML+SVG parsing ⥜ +PASS XHTML1.1+MathML+SVG parsing ⥔ +PASS XHTML1.1+MathML+SVG parsing ↾ +PASS XHTML1.1+MathML+SVG parsing ⥓ +PASS XHTML1.1+MathML+SVG parsing ⇀ +PASS XHTML1.1+MathML+SVG parsing ˚ +PASS XHTML1.1+MathML+SVG parsing ≓ +PASS XHTML1.1+MathML+SVG parsing ⇄ +PASS XHTML1.1+MathML+SVG parsing ⇌ +PASS XHTML1.1+MathML+SVG parsing ‏ +PASS XHTML1.1+MathML+SVG parsing ⎱ +PASS XHTML1.1+MathML+SVG parsing ⎱ +PASS XHTML1.1+MathML+SVG parsing ⫮ +PASS XHTML1.1+MathML+SVG parsing ⟭ +PASS XHTML1.1+MathML+SVG parsing ⇾ +PASS XHTML1.1+MathML+SVG parsing ⟧ +PASS XHTML1.1+MathML+SVG parsing ⦆ +PASS XHTML1.1+MathML+SVG parsing 𝕣 +PASS XHTML1.1+MathML+SVG parsing ℝ +PASS XHTML1.1+MathML+SVG parsing ⨮ +PASS XHTML1.1+MathML+SVG parsing ⨵ +PASS XHTML1.1+MathML+SVG parsing ⥰ +PASS XHTML1.1+MathML+SVG parsing ) +PASS XHTML1.1+MathML+SVG parsing ⦔ +PASS XHTML1.1+MathML+SVG parsing ⨒ +PASS XHTML1.1+MathML+SVG parsing ⇉ +PASS XHTML1.1+MathML+SVG parsing ⇛ +PASS XHTML1.1+MathML+SVG parsing › +PASS XHTML1.1+MathML+SVG parsing 𝓇 +PASS XHTML1.1+MathML+SVG parsing ℛ +PASS XHTML1.1+MathML+SVG parsing ↱ +PASS XHTML1.1+MathML+SVG parsing ↱ +PASS XHTML1.1+MathML+SVG parsing ] +PASS XHTML1.1+MathML+SVG parsing ’ +PASS XHTML1.1+MathML+SVG parsing ’ +PASS XHTML1.1+MathML+SVG parsing ⋌ +PASS XHTML1.1+MathML+SVG parsing ⋊ +PASS XHTML1.1+MathML+SVG parsing ▹ +PASS XHTML1.1+MathML+SVG parsing ⊵ +PASS XHTML1.1+MathML+SVG parsing ▸ +PASS XHTML1.1+MathML+SVG parsing ⧎ +PASS XHTML1.1+MathML+SVG parsing ⧴ +PASS XHTML1.1+MathML+SVG parsing ⥨ +PASS XHTML1.1+MathML+SVG parsing ℞ +PASS XHTML1.1+MathML+SVG parsing Ś +PASS XHTML1.1+MathML+SVG parsing ś +PASS XHTML1.1+MathML+SVG parsing ‚ +PASS XHTML1.1+MathML+SVG parsing ⪸ +PASS XHTML1.1+MathML+SVG parsing Š +PASS XHTML1.1+MathML+SVG parsing š +PASS XHTML1.1+MathML+SVG parsing ⪼ +PASS XHTML1.1+MathML+SVG parsing ≻ +PASS XHTML1.1+MathML+SVG parsing ≽ +PASS XHTML1.1+MathML+SVG parsing ⪰ +PASS XHTML1.1+MathML+SVG parsing ⪴ +PASS XHTML1.1+MathML+SVG parsing Ş +PASS XHTML1.1+MathML+SVG parsing ş +PASS XHTML1.1+MathML+SVG parsing Ŝ +PASS XHTML1.1+MathML+SVG parsing ŝ +PASS XHTML1.1+MathML+SVG parsing ⪺ +PASS XHTML1.1+MathML+SVG parsing ⪶ +PASS XHTML1.1+MathML+SVG parsing ⋩ +PASS XHTML1.1+MathML+SVG parsing ⨓ +PASS XHTML1.1+MathML+SVG parsing ≿ +PASS XHTML1.1+MathML+SVG parsing С +PASS XHTML1.1+MathML+SVG parsing с +PASS XHTML1.1+MathML+SVG parsing ⊡ +PASS XHTML1.1+MathML+SVG parsing ⋅ +PASS XHTML1.1+MathML+SVG parsing ⩦ +PASS XHTML1.1+MathML+SVG parsing ⤥ +PASS XHTML1.1+MathML+SVG parsing ↘ +PASS XHTML1.1+MathML+SVG parsing ⇘ +PASS XHTML1.1+MathML+SVG parsing ↘ +PASS XHTML1.1+MathML+SVG parsing § +PASS XHTML1.1+MathML+SVG parsing ; +PASS XHTML1.1+MathML+SVG parsing ⤩ +PASS XHTML1.1+MathML+SVG parsing ∖ +PASS XHTML1.1+MathML+SVG parsing ∖ +PASS XHTML1.1+MathML+SVG parsing ✶ +PASS XHTML1.1+MathML+SVG parsing 𝔖 +PASS XHTML1.1+MathML+SVG parsing 𝔰 +PASS XHTML1.1+MathML+SVG parsing ⌢ +PASS XHTML1.1+MathML+SVG parsing ♯ +PASS XHTML1.1+MathML+SVG parsing Щ +PASS XHTML1.1+MathML+SVG parsing щ +PASS XHTML1.1+MathML+SVG parsing Ш +PASS XHTML1.1+MathML+SVG parsing ш +PASS XHTML1.1+MathML+SVG parsing ↓ +PASS XHTML1.1+MathML+SVG parsing ← +PASS XHTML1.1+MathML+SVG parsing ∣ +PASS XHTML1.1+MathML+SVG parsing ∥ +PASS XHTML1.1+MathML+SVG parsing → +PASS XHTML1.1+MathML+SVG parsing ↑ +PASS XHTML1.1+MathML+SVG parsing ­ +PASS XHTML1.1+MathML+SVG parsing Σ +PASS XHTML1.1+MathML+SVG parsing σ +PASS XHTML1.1+MathML+SVG parsing ς +PASS XHTML1.1+MathML+SVG parsing ς +PASS XHTML1.1+MathML+SVG parsing ∼ +PASS XHTML1.1+MathML+SVG parsing ⩪ +PASS XHTML1.1+MathML+SVG parsing ≃ +PASS XHTML1.1+MathML+SVG parsing ≃ +PASS XHTML1.1+MathML+SVG parsing ⪞ +PASS XHTML1.1+MathML+SVG parsing ⪠ +PASS XHTML1.1+MathML+SVG parsing ⪝ +PASS XHTML1.1+MathML+SVG parsing ⪟ +PASS XHTML1.1+MathML+SVG parsing ≆ +PASS XHTML1.1+MathML+SVG parsing ⨤ +PASS XHTML1.1+MathML+SVG parsing ⥲ +PASS XHTML1.1+MathML+SVG parsing ← +PASS XHTML1.1+MathML+SVG parsing ∘ +PASS XHTML1.1+MathML+SVG parsing ∖ +PASS XHTML1.1+MathML+SVG parsing ⨳ +PASS XHTML1.1+MathML+SVG parsing ⧤ +PASS XHTML1.1+MathML+SVG parsing ∣ +PASS XHTML1.1+MathML+SVG parsing ⌣ +PASS XHTML1.1+MathML+SVG parsing ⪪ +PASS XHTML1.1+MathML+SVG parsing ⪬ +PASS XHTML1.1+MathML+SVG parsing ⪬︀ +PASS XHTML1.1+MathML+SVG parsing Ь +PASS XHTML1.1+MathML+SVG parsing ь +PASS XHTML1.1+MathML+SVG parsing ⌿ +PASS XHTML1.1+MathML+SVG parsing ⧄ +PASS XHTML1.1+MathML+SVG parsing / +PASS XHTML1.1+MathML+SVG parsing 𝕊 +PASS XHTML1.1+MathML+SVG parsing 𝕤 +PASS XHTML1.1+MathML+SVG parsing ♠ +PASS XHTML1.1+MathML+SVG parsing ♠ +PASS XHTML1.1+MathML+SVG parsing ∥ +PASS XHTML1.1+MathML+SVG parsing ⊓ +PASS XHTML1.1+MathML+SVG parsing ⊓︀ +PASS XHTML1.1+MathML+SVG parsing ⊔ +PASS XHTML1.1+MathML+SVG parsing ⊔︀ +PASS XHTML1.1+MathML+SVG parsing √ +PASS XHTML1.1+MathML+SVG parsing ⊏ +PASS XHTML1.1+MathML+SVG parsing ⊑ +PASS XHTML1.1+MathML+SVG parsing ⊏ +PASS XHTML1.1+MathML+SVG parsing ⊑ +PASS XHTML1.1+MathML+SVG parsing ⊐ +PASS XHTML1.1+MathML+SVG parsing ⊒ +PASS XHTML1.1+MathML+SVG parsing ⊐ +PASS XHTML1.1+MathML+SVG parsing ⊒ +PASS XHTML1.1+MathML+SVG parsing □ +PASS XHTML1.1+MathML+SVG parsing □ +PASS XHTML1.1+MathML+SVG parsing ⊓ +PASS XHTML1.1+MathML+SVG parsing ⊏ +PASS XHTML1.1+MathML+SVG parsing ⊑ +PASS XHTML1.1+MathML+SVG parsing ⊐ +PASS XHTML1.1+MathML+SVG parsing ⊒ +PASS XHTML1.1+MathML+SVG parsing ⊔ +PASS XHTML1.1+MathML+SVG parsing ▪ +PASS XHTML1.1+MathML+SVG parsing □ +PASS XHTML1.1+MathML+SVG parsing ▪ +PASS XHTML1.1+MathML+SVG parsing → +PASS XHTML1.1+MathML+SVG parsing 𝒮 +PASS XHTML1.1+MathML+SVG parsing 𝓈 +PASS XHTML1.1+MathML+SVG parsing ∖ +PASS XHTML1.1+MathML+SVG parsing ⌣ +PASS XHTML1.1+MathML+SVG parsing ⋆ +PASS XHTML1.1+MathML+SVG parsing ⋆ +PASS XHTML1.1+MathML+SVG parsing ☆ +PASS XHTML1.1+MathML+SVG parsing ★ +PASS XHTML1.1+MathML+SVG parsing ϵ +PASS XHTML1.1+MathML+SVG parsing ϕ +PASS XHTML1.1+MathML+SVG parsing ¯ +PASS XHTML1.1+MathML+SVG parsing ⊂ +PASS XHTML1.1+MathML+SVG parsing ⋐ +PASS XHTML1.1+MathML+SVG parsing ⪽ +PASS XHTML1.1+MathML+SVG parsing ⫅ +PASS XHTML1.1+MathML+SVG parsing ⊆ +PASS XHTML1.1+MathML+SVG parsing ⫃ +PASS XHTML1.1+MathML+SVG parsing ⫁ +PASS XHTML1.1+MathML+SVG parsing ⫋ +PASS XHTML1.1+MathML+SVG parsing ⊊ +PASS XHTML1.1+MathML+SVG parsing ⪿ +PASS XHTML1.1+MathML+SVG parsing ⥹ +PASS XHTML1.1+MathML+SVG parsing ⊂ +PASS XHTML1.1+MathML+SVG parsing ⋐ +PASS XHTML1.1+MathML+SVG parsing ⊆ +PASS XHTML1.1+MathML+SVG parsing ⫅ +PASS XHTML1.1+MathML+SVG parsing ⊆ +PASS XHTML1.1+MathML+SVG parsing ⊊ +PASS XHTML1.1+MathML+SVG parsing ⫋ +PASS XHTML1.1+MathML+SVG parsing ⫇ +PASS XHTML1.1+MathML+SVG parsing ⫕ +PASS XHTML1.1+MathML+SVG parsing ⫓ +PASS XHTML1.1+MathML+SVG parsing ⪸ +PASS XHTML1.1+MathML+SVG parsing ≻ +PASS XHTML1.1+MathML+SVG parsing ≽ +PASS XHTML1.1+MathML+SVG parsing ≻ +PASS XHTML1.1+MathML+SVG parsing ⪰ +PASS XHTML1.1+MathML+SVG parsing ≽ +PASS XHTML1.1+MathML+SVG parsing ≿ +PASS XHTML1.1+MathML+SVG parsing ⪰ +PASS XHTML1.1+MathML+SVG parsing ⪺ +PASS XHTML1.1+MathML+SVG parsing ⪶ +PASS XHTML1.1+MathML+SVG parsing ⋩ +PASS XHTML1.1+MathML+SVG parsing ≿ +PASS XHTML1.1+MathML+SVG parsing ∋ +PASS XHTML1.1+MathML+SVG parsing ∑ +PASS XHTML1.1+MathML+SVG parsing ∑ +PASS XHTML1.1+MathML+SVG parsing ♪ +PASS XHTML1.1+MathML+SVG parsing ¹ +PASS XHTML1.1+MathML+SVG parsing ² +PASS XHTML1.1+MathML+SVG parsing ³ +PASS XHTML1.1+MathML+SVG parsing ⊃ +PASS XHTML1.1+MathML+SVG parsing ⋑ +PASS XHTML1.1+MathML+SVG parsing ⪾ +PASS XHTML1.1+MathML+SVG parsing ⫘ +PASS XHTML1.1+MathML+SVG parsing ⫆ +PASS XHTML1.1+MathML+SVG parsing ⊇ +PASS XHTML1.1+MathML+SVG parsing ⫄ +PASS XHTML1.1+MathML+SVG parsing ⊃ +PASS XHTML1.1+MathML+SVG parsing ⊇ +PASS XHTML1.1+MathML+SVG parsing ⟉ +PASS XHTML1.1+MathML+SVG parsing ⫗ +PASS XHTML1.1+MathML+SVG parsing ⥻ +PASS XHTML1.1+MathML+SVG parsing ⫂ +PASS XHTML1.1+MathML+SVG parsing ⫌ +PASS XHTML1.1+MathML+SVG parsing ⊋ +PASS XHTML1.1+MathML+SVG parsing ⫀ +PASS XHTML1.1+MathML+SVG parsing ⊃ +PASS XHTML1.1+MathML+SVG parsing ⋑ +PASS XHTML1.1+MathML+SVG parsing ⊇ +PASS XHTML1.1+MathML+SVG parsing ⫆ +PASS XHTML1.1+MathML+SVG parsing ⊋ +PASS XHTML1.1+MathML+SVG parsing ⫌ +PASS XHTML1.1+MathML+SVG parsing ⫈ +PASS XHTML1.1+MathML+SVG parsing ⫔ +PASS XHTML1.1+MathML+SVG parsing ⫖ +PASS XHTML1.1+MathML+SVG parsing ⤦ +PASS XHTML1.1+MathML+SVG parsing ↙ +PASS XHTML1.1+MathML+SVG parsing ⇙ +PASS XHTML1.1+MathML+SVG parsing ↙ +PASS XHTML1.1+MathML+SVG parsing ⤪ +PASS XHTML1.1+MathML+SVG parsing ß +PASS XHTML1.1+MathML+SVG parsing 	 +PASS XHTML1.1+MathML+SVG parsing ⌖ +PASS XHTML1.1+MathML+SVG parsing Τ +PASS XHTML1.1+MathML+SVG parsing τ +PASS XHTML1.1+MathML+SVG parsing ⎴ +PASS XHTML1.1+MathML+SVG parsing Ť +PASS XHTML1.1+MathML+SVG parsing ť +PASS XHTML1.1+MathML+SVG parsing Ţ +PASS XHTML1.1+MathML+SVG parsing ţ +PASS XHTML1.1+MathML+SVG parsing Т +PASS XHTML1.1+MathML+SVG parsing т +PASS XHTML1.1+MathML+SVG parsing ⃛ +PASS XHTML1.1+MathML+SVG parsing ⌕ +PASS XHTML1.1+MathML+SVG parsing 𝔗 +PASS XHTML1.1+MathML+SVG parsing 𝔱 +PASS XHTML1.1+MathML+SVG parsing ∴ +PASS XHTML1.1+MathML+SVG parsing ∴ +PASS XHTML1.1+MathML+SVG parsing ∴ +PASS XHTML1.1+MathML+SVG parsing Θ +PASS XHTML1.1+MathML+SVG parsing θ +PASS XHTML1.1+MathML+SVG parsing ϑ +PASS XHTML1.1+MathML+SVG parsing ϑ +PASS XHTML1.1+MathML+SVG parsing ≈ +PASS XHTML1.1+MathML+SVG parsing ∼ +PASS XHTML1.1+MathML+SVG parsing    +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing ≈ +PASS XHTML1.1+MathML+SVG parsing ∼ +PASS XHTML1.1+MathML+SVG parsing Þ +PASS XHTML1.1+MathML+SVG parsing þ +PASS XHTML1.1+MathML+SVG parsing ˜ +PASS XHTML1.1+MathML+SVG parsing ∼ +PASS XHTML1.1+MathML+SVG parsing ≃ +PASS XHTML1.1+MathML+SVG parsing ≅ +PASS XHTML1.1+MathML+SVG parsing ≈ +PASS XHTML1.1+MathML+SVG parsing ⨱ +PASS XHTML1.1+MathML+SVG parsing ⊠ +PASS XHTML1.1+MathML+SVG parsing × +PASS XHTML1.1+MathML+SVG parsing ⨰ +PASS XHTML1.1+MathML+SVG parsing ∭ +PASS XHTML1.1+MathML+SVG parsing ⤨ +PASS XHTML1.1+MathML+SVG parsing ⌶ +PASS XHTML1.1+MathML+SVG parsing ⫱ +PASS XHTML1.1+MathML+SVG parsing ⊤ +PASS XHTML1.1+MathML+SVG parsing 𝕋 +PASS XHTML1.1+MathML+SVG parsing 𝕥 +PASS XHTML1.1+MathML+SVG parsing ⫚ +PASS XHTML1.1+MathML+SVG parsing ⤩ +PASS XHTML1.1+MathML+SVG parsing ‴ +PASS XHTML1.1+MathML+SVG parsing ™ +PASS XHTML1.1+MathML+SVG parsing ™ +PASS XHTML1.1+MathML+SVG parsing ▵ +PASS XHTML1.1+MathML+SVG parsing ▿ +PASS XHTML1.1+MathML+SVG parsing ◃ +PASS XHTML1.1+MathML+SVG parsing ⊴ +PASS XHTML1.1+MathML+SVG parsing ≜ +PASS XHTML1.1+MathML+SVG parsing ▹ +PASS XHTML1.1+MathML+SVG parsing ⊵ +PASS XHTML1.1+MathML+SVG parsing ◬ +PASS XHTML1.1+MathML+SVG parsing ≜ +PASS XHTML1.1+MathML+SVG parsing ⨺ +PASS XHTML1.1+MathML+SVG parsing ⃛ +PASS XHTML1.1+MathML+SVG parsing ⨹ +PASS XHTML1.1+MathML+SVG parsing ⧍ +PASS XHTML1.1+MathML+SVG parsing ⨻ +PASS XHTML1.1+MathML+SVG parsing ⏢ +PASS XHTML1.1+MathML+SVG parsing 𝒯 +PASS XHTML1.1+MathML+SVG parsing 𝓉 +PASS XHTML1.1+MathML+SVG parsing Ц +PASS XHTML1.1+MathML+SVG parsing ц +PASS XHTML1.1+MathML+SVG parsing Ћ +PASS XHTML1.1+MathML+SVG parsing ћ +PASS XHTML1.1+MathML+SVG parsing Ŧ +PASS XHTML1.1+MathML+SVG parsing ŧ +PASS XHTML1.1+MathML+SVG parsing ≬ +PASS XHTML1.1+MathML+SVG parsing ↞ +PASS XHTML1.1+MathML+SVG parsing ↠ +PASS XHTML1.1+MathML+SVG parsing Ú +PASS XHTML1.1+MathML+SVG parsing ú +PASS XHTML1.1+MathML+SVG parsing ↑ +PASS XHTML1.1+MathML+SVG parsing ↟ +PASS XHTML1.1+MathML+SVG parsing ⇑ +PASS XHTML1.1+MathML+SVG parsing ⥉ +PASS XHTML1.1+MathML+SVG parsing Ў +PASS XHTML1.1+MathML+SVG parsing ў +PASS XHTML1.1+MathML+SVG parsing Ŭ +PASS XHTML1.1+MathML+SVG parsing ŭ +PASS XHTML1.1+MathML+SVG parsing Û +PASS XHTML1.1+MathML+SVG parsing û +PASS XHTML1.1+MathML+SVG parsing У +PASS XHTML1.1+MathML+SVG parsing у +PASS XHTML1.1+MathML+SVG parsing ⇅ +PASS XHTML1.1+MathML+SVG parsing Ű +PASS XHTML1.1+MathML+SVG parsing ű +PASS XHTML1.1+MathML+SVG parsing ⥮ +PASS XHTML1.1+MathML+SVG parsing ⥾ +PASS XHTML1.1+MathML+SVG parsing 𝔘 +PASS XHTML1.1+MathML+SVG parsing 𝔲 +PASS XHTML1.1+MathML+SVG parsing Ù +PASS XHTML1.1+MathML+SVG parsing ù +PASS XHTML1.1+MathML+SVG parsing ⥣ +PASS XHTML1.1+MathML+SVG parsing ↿ +PASS XHTML1.1+MathML+SVG parsing ↾ +PASS XHTML1.1+MathML+SVG parsing ▀ +PASS XHTML1.1+MathML+SVG parsing ⌜ +PASS XHTML1.1+MathML+SVG parsing ⌜ +PASS XHTML1.1+MathML+SVG parsing ⌏ +PASS XHTML1.1+MathML+SVG parsing ◸ +PASS XHTML1.1+MathML+SVG parsing Ū +PASS XHTML1.1+MathML+SVG parsing ū +PASS XHTML1.1+MathML+SVG parsing ¨ +PASS XHTML1.1+MathML+SVG parsing _ +PASS XHTML1.1+MathML+SVG parsing ⏟ +PASS XHTML1.1+MathML+SVG parsing ⎵ +PASS XHTML1.1+MathML+SVG parsing ⏝ +PASS XHTML1.1+MathML+SVG parsing ⋃ +PASS XHTML1.1+MathML+SVG parsing ⊎ +PASS XHTML1.1+MathML+SVG parsing Ų +PASS XHTML1.1+MathML+SVG parsing ų +PASS XHTML1.1+MathML+SVG parsing 𝕌 +PASS XHTML1.1+MathML+SVG parsing 𝕦 +PASS XHTML1.1+MathML+SVG parsing ⤒ +PASS XHTML1.1+MathML+SVG parsing ↑ +PASS XHTML1.1+MathML+SVG parsing ↑ +PASS XHTML1.1+MathML+SVG parsing ⇑ +PASS XHTML1.1+MathML+SVG parsing ⇅ +PASS XHTML1.1+MathML+SVG parsing ↕ +PASS XHTML1.1+MathML+SVG parsing ↕ +PASS XHTML1.1+MathML+SVG parsing ⇕ +PASS XHTML1.1+MathML+SVG parsing ⥮ +PASS XHTML1.1+MathML+SVG parsing ↿ +PASS XHTML1.1+MathML+SVG parsing ↾ +PASS XHTML1.1+MathML+SVG parsing ⊎ +PASS XHTML1.1+MathML+SVG parsing ↖ +PASS XHTML1.1+MathML+SVG parsing ↗ +PASS XHTML1.1+MathML+SVG parsing υ +PASS XHTML1.1+MathML+SVG parsing ϒ +PASS XHTML1.1+MathML+SVG parsing ϒ +PASS XHTML1.1+MathML+SVG parsing Υ +PASS XHTML1.1+MathML+SVG parsing υ +PASS XHTML1.1+MathML+SVG parsing ↥ +PASS XHTML1.1+MathML+SVG parsing ⊥ +PASS XHTML1.1+MathML+SVG parsing ⇈ +PASS XHTML1.1+MathML+SVG parsing ⌝ +PASS XHTML1.1+MathML+SVG parsing ⌝ +PASS XHTML1.1+MathML+SVG parsing ⌎ +PASS XHTML1.1+MathML+SVG parsing Ů +PASS XHTML1.1+MathML+SVG parsing ů +PASS XHTML1.1+MathML+SVG parsing ◹ +PASS XHTML1.1+MathML+SVG parsing 𝒰 +PASS XHTML1.1+MathML+SVG parsing 𝓊 +PASS XHTML1.1+MathML+SVG parsing ⋰ +PASS XHTML1.1+MathML+SVG parsing Ũ +PASS XHTML1.1+MathML+SVG parsing ũ +PASS XHTML1.1+MathML+SVG parsing ▵ +PASS XHTML1.1+MathML+SVG parsing ▴ +PASS XHTML1.1+MathML+SVG parsing ⇈ +PASS XHTML1.1+MathML+SVG parsing Ü +PASS XHTML1.1+MathML+SVG parsing ü +PASS XHTML1.1+MathML+SVG parsing ⦧ +PASS XHTML1.1+MathML+SVG parsing ⦜ +PASS XHTML1.1+MathML+SVG parsing ϵ +PASS XHTML1.1+MathML+SVG parsing ϰ +PASS XHTML1.1+MathML+SVG parsing ∅ +PASS XHTML1.1+MathML+SVG parsing ϕ +PASS XHTML1.1+MathML+SVG parsing ϖ +PASS XHTML1.1+MathML+SVG parsing ∝ +PASS XHTML1.1+MathML+SVG parsing ↕ +PASS XHTML1.1+MathML+SVG parsing ⇕ +PASS XHTML1.1+MathML+SVG parsing ϱ +PASS XHTML1.1+MathML+SVG parsing ς +PASS XHTML1.1+MathML+SVG parsing ⊊︀ +PASS XHTML1.1+MathML+SVG parsing ⫋︀ +PASS XHTML1.1+MathML+SVG parsing ⊋︀ +PASS XHTML1.1+MathML+SVG parsing ⫌︀ +PASS XHTML1.1+MathML+SVG parsing ϑ +PASS XHTML1.1+MathML+SVG parsing ⊲ +PASS XHTML1.1+MathML+SVG parsing ⊳ +PASS XHTML1.1+MathML+SVG parsing ⫨ +PASS XHTML1.1+MathML+SVG parsing ⫫ +PASS XHTML1.1+MathML+SVG parsing ⫩ +PASS XHTML1.1+MathML+SVG parsing В +PASS XHTML1.1+MathML+SVG parsing в +PASS XHTML1.1+MathML+SVG parsing ⊢ +PASS XHTML1.1+MathML+SVG parsing ⊨ +PASS XHTML1.1+MathML+SVG parsing ⊩ +PASS XHTML1.1+MathML+SVG parsing ⊫ +PASS XHTML1.1+MathML+SVG parsing ⫦ +PASS XHTML1.1+MathML+SVG parsing ⊻ +PASS XHTML1.1+MathML+SVG parsing ∨ +PASS XHTML1.1+MathML+SVG parsing ⋁ +PASS XHTML1.1+MathML+SVG parsing ≚ +PASS XHTML1.1+MathML+SVG parsing ⋮ +PASS XHTML1.1+MathML+SVG parsing | +PASS XHTML1.1+MathML+SVG parsing ‖ +PASS XHTML1.1+MathML+SVG parsing | +PASS XHTML1.1+MathML+SVG parsing ‖ +PASS XHTML1.1+MathML+SVG parsing ∣ +PASS XHTML1.1+MathML+SVG parsing | +PASS XHTML1.1+MathML+SVG parsing ❘ +PASS XHTML1.1+MathML+SVG parsing ≀ +PASS XHTML1.1+MathML+SVG parsing   +PASS XHTML1.1+MathML+SVG parsing 𝔙 +PASS XHTML1.1+MathML+SVG parsing 𝔳 +PASS XHTML1.1+MathML+SVG parsing ⊲ +PASS XHTML1.1+MathML+SVG parsing ⊂⃒ +PASS XHTML1.1+MathML+SVG parsing ⊃⃒ +PASS XHTML1.1+MathML+SVG parsing 𝕍 +PASS XHTML1.1+MathML+SVG parsing 𝕧 +PASS XHTML1.1+MathML+SVG parsing ∝ +PASS XHTML1.1+MathML+SVG parsing ⊳ +PASS XHTML1.1+MathML+SVG parsing 𝒱 +PASS XHTML1.1+MathML+SVG parsing 𝓋 +PASS XHTML1.1+MathML+SVG parsing ⫋︀ +PASS XHTML1.1+MathML+SVG parsing ⊊︀ +PASS XHTML1.1+MathML+SVG parsing ⫌︀ +PASS XHTML1.1+MathML+SVG parsing ⊋︀ +PASS XHTML1.1+MathML+SVG parsing ⊪ +PASS XHTML1.1+MathML+SVG parsing ⦚ +PASS XHTML1.1+MathML+SVG parsing Ŵ +PASS XHTML1.1+MathML+SVG parsing ŵ +PASS XHTML1.1+MathML+SVG parsing ⩟ +PASS XHTML1.1+MathML+SVG parsing ∧ +PASS XHTML1.1+MathML+SVG parsing ⋀ +PASS XHTML1.1+MathML+SVG parsing ≙ +PASS XHTML1.1+MathML+SVG parsing ℘ +PASS XHTML1.1+MathML+SVG parsing 𝔚 +PASS XHTML1.1+MathML+SVG parsing 𝔴 +PASS XHTML1.1+MathML+SVG parsing 𝕎 +PASS XHTML1.1+MathML+SVG parsing 𝕨 +PASS XHTML1.1+MathML+SVG parsing ℘ +PASS XHTML1.1+MathML+SVG parsing ≀ +PASS XHTML1.1+MathML+SVG parsing ≀ +PASS XHTML1.1+MathML+SVG parsing 𝒲 +PASS XHTML1.1+MathML+SVG parsing 𝓌 +PASS XHTML1.1+MathML+SVG parsing ⋂ +PASS XHTML1.1+MathML+SVG parsing ◯ +PASS XHTML1.1+MathML+SVG parsing ⋃ +PASS XHTML1.1+MathML+SVG parsing ▽ +PASS XHTML1.1+MathML+SVG parsing 𝔛 +PASS XHTML1.1+MathML+SVG parsing 𝔵 +PASS XHTML1.1+MathML+SVG parsing ⟷ +PASS XHTML1.1+MathML+SVG parsing ⟺ +PASS XHTML1.1+MathML+SVG parsing Ξ +PASS XHTML1.1+MathML+SVG parsing ξ +PASS XHTML1.1+MathML+SVG parsing ⟵ +PASS XHTML1.1+MathML+SVG parsing ⟸ +PASS XHTML1.1+MathML+SVG parsing ⟼ +PASS XHTML1.1+MathML+SVG parsing ⋻ +PASS XHTML1.1+MathML+SVG parsing ⨀ +PASS XHTML1.1+MathML+SVG parsing 𝕏 +PASS XHTML1.1+MathML+SVG parsing 𝕩 +PASS XHTML1.1+MathML+SVG parsing ⨁ +PASS XHTML1.1+MathML+SVG parsing ⨂ +PASS XHTML1.1+MathML+SVG parsing ⟶ +PASS XHTML1.1+MathML+SVG parsing ⟹ +PASS XHTML1.1+MathML+SVG parsing 𝒳 +PASS XHTML1.1+MathML+SVG parsing 𝓍 +PASS XHTML1.1+MathML+SVG parsing ⨆ +PASS XHTML1.1+MathML+SVG parsing ⨄ +PASS XHTML1.1+MathML+SVG parsing △ +PASS XHTML1.1+MathML+SVG parsing ⋁ +PASS XHTML1.1+MathML+SVG parsing ⋀ +PASS XHTML1.1+MathML+SVG parsing Ý +PASS XHTML1.1+MathML+SVG parsing ý +PASS XHTML1.1+MathML+SVG parsing Я +PASS XHTML1.1+MathML+SVG parsing я +PASS XHTML1.1+MathML+SVG parsing Ŷ +PASS XHTML1.1+MathML+SVG parsing ŷ +PASS XHTML1.1+MathML+SVG parsing Ы +PASS XHTML1.1+MathML+SVG parsing ы +PASS XHTML1.1+MathML+SVG parsing ¥ +PASS XHTML1.1+MathML+SVG parsing 𝔜 +PASS XHTML1.1+MathML+SVG parsing 𝔶 +PASS XHTML1.1+MathML+SVG parsing Ї +PASS XHTML1.1+MathML+SVG parsing ї +PASS XHTML1.1+MathML+SVG parsing 𝕐 +PASS XHTML1.1+MathML+SVG parsing 𝕪 +PASS XHTML1.1+MathML+SVG parsing 𝒴 +PASS XHTML1.1+MathML+SVG parsing 𝓎 +PASS XHTML1.1+MathML+SVG parsing Ю +PASS XHTML1.1+MathML+SVG parsing ю +PASS XHTML1.1+MathML+SVG parsing ÿ +PASS XHTML1.1+MathML+SVG parsing Ÿ +PASS XHTML1.1+MathML+SVG parsing Ź +PASS XHTML1.1+MathML+SVG parsing ź +PASS XHTML1.1+MathML+SVG parsing Ž +PASS XHTML1.1+MathML+SVG parsing ž +PASS XHTML1.1+MathML+SVG parsing З +PASS XHTML1.1+MathML+SVG parsing з +PASS XHTML1.1+MathML+SVG parsing Ż +PASS XHTML1.1+MathML+SVG parsing ż +PASS XHTML1.1+MathML+SVG parsing ℨ +PASS XHTML1.1+MathML+SVG parsing ​ +PASS XHTML1.1+MathML+SVG parsing Ζ +PASS XHTML1.1+MathML+SVG parsing ζ +PASS XHTML1.1+MathML+SVG parsing 𝔷 +PASS XHTML1.1+MathML+SVG parsing ℨ +PASS XHTML1.1+MathML+SVG parsing Ж +PASS XHTML1.1+MathML+SVG parsing ж +PASS XHTML1.1+MathML+SVG parsing ⇝ +PASS XHTML1.1+MathML+SVG parsing 𝕫 +PASS XHTML1.1+MathML+SVG parsing ℤ +PASS XHTML1.1+MathML+SVG parsing 𝒵 +PASS XHTML1.1+MathML+SVG parsing 𝓏 +PASS XHTML1.1+MathML+SVG parsing ‍ +PASS XHTML1.1+MathML+SVG parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm new file mode 100644 index 0000000..dc821d8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN", "foo", "XHTML1.1+MathML+SVG"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8-expected.txt new file mode 100644 index 0000000..dd61a87e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 5 PASS, 2120 FAIL, 0 TIMEOUT, 0 NOTRUN. +FAIL MathML parsing Á assert_true: expected true got false +FAIL MathML parsing á assert_true: expected true got false +FAIL MathML parsing Ă assert_true: expected true got false +FAIL MathML parsing ă assert_true: expected true got false +FAIL MathML parsing ∾ assert_true: expected true got false +FAIL MathML parsing ∿ assert_true: expected true got false +FAIL MathML parsing ∾̳ assert_true: expected true got false +FAIL MathML parsing  assert_true: expected true got false +FAIL MathML parsing â assert_true: expected true got false +FAIL MathML parsing ´ assert_true: expected true got false +FAIL MathML parsing А assert_true: expected true got false +FAIL MathML parsing а assert_true: expected true got false +FAIL MathML parsing Æ assert_true: expected true got false +FAIL MathML parsing æ assert_true: expected true got false +FAIL MathML parsing ⁡ assert_true: expected true got false +FAIL MathML parsing 𝔄 assert_true: expected true got false +FAIL MathML parsing 𝔞 assert_true: expected true got false +FAIL MathML parsing À assert_true: expected true got false +FAIL MathML parsing à assert_true: expected true got false +FAIL MathML parsing ℵ assert_true: expected true got false +FAIL MathML parsing ℵ assert_true: expected true got false +FAIL MathML parsing Α assert_true: expected true got false +FAIL MathML parsing α assert_true: expected true got false +FAIL MathML parsing Ā assert_true: expected true got false +FAIL MathML parsing ā assert_true: expected true got false +FAIL MathML parsing ⨿ assert_true: expected true got false +PASS MathML parsing & +FAIL MathML parsing & assert_true: expected true got false +FAIL MathML parsing ⩕ assert_true: expected true got false +FAIL MathML parsing ⩓ assert_true: expected true got false +FAIL MathML parsing ∧ assert_true: expected true got false +FAIL MathML parsing ⩜ assert_true: expected true got false +FAIL MathML parsing ⩘ assert_true: expected true got false +FAIL MathML parsing ⩚ assert_true: expected true got false +FAIL MathML parsing ∠ assert_true: expected true got false +FAIL MathML parsing ⦤ assert_true: expected true got false +FAIL MathML parsing ∠ assert_true: expected true got false +FAIL MathML parsing ⦨ assert_true: expected true got false +FAIL MathML parsing ⦩ assert_true: expected true got false +FAIL MathML parsing ⦪ assert_true: expected true got false +FAIL MathML parsing ⦫ assert_true: expected true got false +FAIL MathML parsing ⦬ assert_true: expected true got false +FAIL MathML parsing ⦭ assert_true: expected true got false +FAIL MathML parsing ⦮ assert_true: expected true got false +FAIL MathML parsing ⦯ assert_true: expected true got false +FAIL MathML parsing ∡ assert_true: expected true got false +FAIL MathML parsing ∟ assert_true: expected true got false +FAIL MathML parsing ⊾ assert_true: expected true got false +FAIL MathML parsing ⦝ assert_true: expected true got false +FAIL MathML parsing ∢ assert_true: expected true got false +FAIL MathML parsing Å assert_true: expected true got false +FAIL MathML parsing ⍼ assert_true: expected true got false +FAIL MathML parsing Ą assert_true: expected true got false +FAIL MathML parsing ą assert_true: expected true got false +FAIL MathML parsing 𝔸 assert_true: expected true got false +FAIL MathML parsing 𝕒 assert_true: expected true got false +FAIL MathML parsing ⩯ assert_true: expected true got false +FAIL MathML parsing ≈ assert_true: expected true got false +FAIL MathML parsing ⩰ assert_true: expected true got false +FAIL MathML parsing ≊ assert_true: expected true got false +FAIL MathML parsing ≋ assert_true: expected true got false +PASS MathML parsing ' +FAIL MathML parsing ⁡ assert_true: expected true got false +FAIL MathML parsing ≈ assert_true: expected true got false +FAIL MathML parsing ≊ assert_true: expected true got false +FAIL MathML parsing Å assert_true: expected true got false +FAIL MathML parsing å assert_true: expected true got false +FAIL MathML parsing 𝒜 assert_true: expected true got false +FAIL MathML parsing 𝒶 assert_true: expected true got false +FAIL MathML parsing ≔ assert_true: expected true got false +FAIL MathML parsing * assert_true: expected true got false +FAIL MathML parsing ≈ assert_true: expected true got false +FAIL MathML parsing ≍ assert_true: expected true got false +FAIL MathML parsing à assert_true: expected true got false +FAIL MathML parsing ã assert_true: expected true got false +FAIL MathML parsing Ä assert_true: expected true got false +FAIL MathML parsing ä assert_true: expected true got false +FAIL MathML parsing ∳ assert_true: expected true got false +FAIL MathML parsing ⨑ assert_true: expected true got false +FAIL MathML parsing ≌ assert_true: expected true got false +FAIL MathML parsing ϶ assert_true: expected true got false +FAIL MathML parsing ‵ assert_true: expected true got false +FAIL MathML parsing ∽ assert_true: expected true got false +FAIL MathML parsing ⋍ assert_true: expected true got false +FAIL MathML parsing ∖ assert_true: expected true got false +FAIL MathML parsing ⫧ assert_true: expected true got false +FAIL MathML parsing ⊽ assert_true: expected true got false +FAIL MathML parsing ⌅ assert_true: expected true got false +FAIL MathML parsing ⌆ assert_true: expected true got false +FAIL MathML parsing ⌅ assert_true: expected true got false +FAIL MathML parsing ⎵ assert_true: expected true got false +FAIL MathML parsing ⎶ assert_true: expected true got false +FAIL MathML parsing ≌ assert_true: expected true got false +FAIL MathML parsing Б assert_true: expected true got false +FAIL MathML parsing б assert_true: expected true got false +FAIL MathML parsing „ assert_true: expected true got false +FAIL MathML parsing ∵ assert_true: expected true got false +FAIL MathML parsing ∵ assert_true: expected true got false +FAIL MathML parsing ∵ assert_true: expected true got false +FAIL MathML parsing ⦰ assert_true: expected true got false +FAIL MathML parsing ϶ assert_true: expected true got false +FAIL MathML parsing ℬ assert_true: expected true got false +FAIL MathML parsing ℬ assert_true: expected true got false +FAIL MathML parsing Β assert_true: expected true got false +FAIL MathML parsing β assert_true: expected true got false +FAIL MathML parsing ℶ assert_true: expected true got false +FAIL MathML parsing ≬ assert_true: expected true got false +FAIL MathML parsing 𝔅 assert_true: expected true got false +FAIL MathML parsing 𝔟 assert_true: expected true got false +FAIL MathML parsing ⋂ assert_true: expected true got false +FAIL MathML parsing ◯ assert_true: expected true got false +FAIL MathML parsing ⋃ assert_true: expected true got false +FAIL MathML parsing ⨀ assert_true: expected true got false +FAIL MathML parsing ⨁ assert_true: expected true got false +FAIL MathML parsing ⨂ assert_true: expected true got false +FAIL MathML parsing ⨆ assert_true: expected true got false +FAIL MathML parsing ★ assert_true: expected true got false +FAIL MathML parsing ▽ assert_true: expected true got false +FAIL MathML parsing △ assert_true: expected true got false +FAIL MathML parsing ⨄ assert_true: expected true got false +FAIL MathML parsing ⋁ assert_true: expected true got false +FAIL MathML parsing ⋀ assert_true: expected true got false +FAIL MathML parsing ⤍ assert_true: expected true got false +FAIL MathML parsing ⧫ assert_true: expected true got false +FAIL MathML parsing ▪ assert_true: expected true got false +FAIL MathML parsing ▴ assert_true: expected true got false +FAIL MathML parsing ▾ assert_true: expected true got false +FAIL MathML parsing ◂ assert_true: expected true got false +FAIL MathML parsing ▸ assert_true: expected true got false +FAIL MathML parsing ␣ assert_true: expected true got false +FAIL MathML parsing ▒ assert_true: expected true got false +FAIL MathML parsing ░ assert_true: expected true got false +FAIL MathML parsing ▓ assert_true: expected true got false +FAIL MathML parsing █ assert_true: expected true got false +FAIL MathML parsing =⃥ assert_true: expected true got false +FAIL MathML parsing ≡⃥ assert_true: expected true got false +FAIL MathML parsing ⫭ assert_true: expected true got false +FAIL MathML parsing ⌐ assert_true: expected true got false +FAIL MathML parsing 𝔹 assert_true: expected true got false +FAIL MathML parsing 𝕓 assert_true: expected true got false +FAIL MathML parsing ⊥ assert_true: expected true got false +FAIL MathML parsing ⊥ assert_true: expected true got false +FAIL MathML parsing ⋈ assert_true: expected true got false +FAIL MathML parsing ⧉ assert_true: expected true got false +FAIL MathML parsing ┐ assert_true: expected true got false +FAIL MathML parsing ╕ assert_true: expected true got false +FAIL MathML parsing ╖ assert_true: expected true got false +FAIL MathML parsing ╗ assert_true: expected true got false +FAIL MathML parsing ┌ assert_true: expected true got false +FAIL MathML parsing ╒ assert_true: expected true got false +FAIL MathML parsing ╓ assert_true: expected true got false +FAIL MathML parsing ╔ assert_true: expected true got false +FAIL MathML parsing ─ assert_true: expected true got false +FAIL MathML parsing ═ assert_true: expected true got false +FAIL MathML parsing ┬ assert_true: expected true got false +FAIL MathML parsing ╤ assert_true: expected true got false +FAIL MathML parsing ╥ assert_true: expected true got false +FAIL MathML parsing ╦ assert_true: expected true got false +FAIL MathML parsing ┴ assert_true: expected true got false +FAIL MathML parsing ╧ assert_true: expected true got false +FAIL MathML parsing ╨ assert_true: expected true got false +FAIL MathML parsing ╩ assert_true: expected true got false +FAIL MathML parsing ⊟ assert_true: expected true got false +FAIL MathML parsing ⊞ assert_true: expected true got false +FAIL MathML parsing ⊠ assert_true: expected true got false +FAIL MathML parsing ┘ assert_true: expected true got false +FAIL MathML parsing ╛ assert_true: expected true got false +FAIL MathML parsing ╜ assert_true: expected true got false +FAIL MathML parsing ╝ assert_true: expected true got false +FAIL MathML parsing └ assert_true: expected true got false +FAIL MathML parsing ╘ assert_true: expected true got false +FAIL MathML parsing ╙ assert_true: expected true got false +FAIL MathML parsing ╚ assert_true: expected true got false +FAIL MathML parsing │ assert_true: expected true got false +FAIL MathML parsing ║ assert_true: expected true got false +FAIL MathML parsing ┼ assert_true: expected true got false +FAIL MathML parsing ╪ assert_true: expected true got false +FAIL MathML parsing ╫ assert_true: expected true got false +FAIL MathML parsing ╬ assert_true: expected true got false +FAIL MathML parsing ┤ assert_true: expected true got false +FAIL MathML parsing ╡ assert_true: expected true got false +FAIL MathML parsing ╢ assert_true: expected true got false +FAIL MathML parsing ╣ assert_true: expected true got false +FAIL MathML parsing ├ assert_true: expected true got false +FAIL MathML parsing ╞ assert_true: expected true got false +FAIL MathML parsing ╟ assert_true: expected true got false +FAIL MathML parsing ╠ assert_true: expected true got false +FAIL MathML parsing ‵ assert_true: expected true got false +FAIL MathML parsing ˘ assert_true: expected true got false +FAIL MathML parsing ˘ assert_true: expected true got false +FAIL MathML parsing ¦ assert_true: expected true got false +FAIL MathML parsing 𝒷 assert_true: expected true got false +FAIL MathML parsing ℬ assert_true: expected true got false +FAIL MathML parsing ⁏ assert_true: expected true got false +FAIL MathML parsing ∽ assert_true: expected true got false +FAIL MathML parsing ⋍ assert_true: expected true got false +FAIL MathML parsing ⧅ assert_true: expected true got false +FAIL MathML parsing \ assert_true: expected true got false +FAIL MathML parsing ⟈ assert_true: expected true got false +FAIL MathML parsing • assert_true: expected true got false +FAIL MathML parsing • assert_true: expected true got false +FAIL MathML parsing ≎ assert_true: expected true got false +FAIL MathML parsing ⪮ assert_true: expected true got false +FAIL MathML parsing ≏ assert_true: expected true got false +FAIL MathML parsing ≎ assert_true: expected true got false +FAIL MathML parsing ≏ assert_true: expected true got false +FAIL MathML parsing Ć assert_true: expected true got false +FAIL MathML parsing ć assert_true: expected true got false +FAIL MathML parsing ⩄ assert_true: expected true got false +FAIL MathML parsing ⩉ assert_true: expected true got false +FAIL MathML parsing ⩋ assert_true: expected true got false +FAIL MathML parsing ∩ assert_true: expected true got false +FAIL MathML parsing ⋒ assert_true: expected true got false +FAIL MathML parsing ⩇ assert_true: expected true got false +FAIL MathML parsing ⩀ assert_true: expected true got false +FAIL MathML parsing ⅅ assert_true: expected true got false +FAIL MathML parsing ∩︀ assert_true: expected true got false +FAIL MathML parsing ⁁ assert_true: expected true got false +FAIL MathML parsing ˇ assert_true: expected true got false +FAIL MathML parsing ℭ assert_true: expected true got false +FAIL MathML parsing ⩍ assert_true: expected true got false +FAIL MathML parsing Č assert_true: expected true got false +FAIL MathML parsing č assert_true: expected true got false +FAIL MathML parsing Ç assert_true: expected true got false +FAIL MathML parsing ç assert_true: expected true got false +FAIL MathML parsing Ĉ assert_true: expected true got false +FAIL MathML parsing ĉ assert_true: expected true got false +FAIL MathML parsing ∰ assert_true: expected true got false +FAIL MathML parsing ⩌ assert_true: expected true got false +FAIL MathML parsing ⩐ assert_true: expected true got false +FAIL MathML parsing Ċ assert_true: expected true got false +FAIL MathML parsing ċ assert_true: expected true got false +FAIL MathML parsing ¸ assert_true: expected true got false +FAIL MathML parsing ¸ assert_true: expected true got false +FAIL MathML parsing ⦲ assert_true: expected true got false +FAIL MathML parsing ¢ assert_true: expected true got false +FAIL MathML parsing · assert_true: expected true got false +FAIL MathML parsing · assert_true: expected true got false +FAIL MathML parsing 𝔠 assert_true: expected true got false +FAIL MathML parsing ℭ assert_true: expected true got false +FAIL MathML parsing Ч assert_true: expected true got false +FAIL MathML parsing ч assert_true: expected true got false +FAIL MathML parsing ✓ assert_true: expected true got false +FAIL MathML parsing ✓ assert_true: expected true got false +FAIL MathML parsing Χ assert_true: expected true got false +FAIL MathML parsing χ assert_true: expected true got false +FAIL MathML parsing ˆ assert_true: expected true got false +FAIL MathML parsing ≗ assert_true: expected true got false +FAIL MathML parsing ↺ assert_true: expected true got false +FAIL MathML parsing ↻ assert_true: expected true got false +FAIL MathML parsing ⊛ assert_true: expected true got false +FAIL MathML parsing ⊚ assert_true: expected true got false +FAIL MathML parsing ⊝ assert_true: expected true got false +FAIL MathML parsing ⊙ assert_true: expected true got false +FAIL MathML parsing ® assert_true: expected true got false +FAIL MathML parsing Ⓢ assert_true: expected true got false +FAIL MathML parsing ⊖ assert_true: expected true got false +FAIL MathML parsing ⊕ assert_true: expected true got false +FAIL MathML parsing ⊗ assert_true: expected true got false +FAIL MathML parsing ○ assert_true: expected true got false +FAIL MathML parsing ⧃ assert_true: expected true got false +FAIL MathML parsing ≗ assert_true: expected true got false +FAIL MathML parsing ⨐ assert_true: expected true got false +FAIL MathML parsing ⫯ assert_true: expected true got false +FAIL MathML parsing ⧂ assert_true: expected true got false +FAIL MathML parsing ∲ assert_true: expected true got false +FAIL MathML parsing ” assert_true: expected true got false +FAIL MathML parsing ’ assert_true: expected true got false +FAIL MathML parsing ♣ assert_true: expected true got false +FAIL MathML parsing ♣ assert_true: expected true got false +FAIL MathML parsing : assert_true: expected true got false +FAIL MathML parsing ∷ assert_true: expected true got false +FAIL MathML parsing ⩴ assert_true: expected true got false +FAIL MathML parsing ≔ assert_true: expected true got false +FAIL MathML parsing ≔ assert_true: expected true got false +FAIL MathML parsing , assert_true: expected true got false +FAIL MathML parsing @ assert_true: expected true got false +FAIL MathML parsing ∁ assert_true: expected true got false +FAIL MathML parsing ∘ assert_true: expected true got false +FAIL MathML parsing ∁ assert_true: expected true got false +FAIL MathML parsing ℂ assert_true: expected true got false +FAIL MathML parsing ≅ assert_true: expected true got false +FAIL MathML parsing ⩭ assert_true: expected true got false +FAIL MathML parsing ≡ assert_true: expected true got false +FAIL MathML parsing ∮ assert_true: expected true got false +FAIL MathML parsing ∯ assert_true: expected true got false +FAIL MathML parsing ∮ assert_true: expected true got false +FAIL MathML parsing 𝕔 assert_true: expected true got false +FAIL MathML parsing ℂ assert_true: expected true got false +FAIL MathML parsing ∐ assert_true: expected true got false +FAIL MathML parsing ∐ assert_true: expected true got false +FAIL MathML parsing © assert_true: expected true got false +FAIL MathML parsing © assert_true: expected true got false +FAIL MathML parsing ℗ assert_true: expected true got false +FAIL MathML parsing ∳ assert_true: expected true got false +FAIL MathML parsing ↵ assert_true: expected true got false +FAIL MathML parsing ✗ assert_true: expected true got false +FAIL MathML parsing ⨯ assert_true: expected true got false +FAIL MathML parsing 𝒞 assert_true: expected true got false +FAIL MathML parsing 𝒸 assert_true: expected true got false +FAIL MathML parsing ⫏ assert_true: expected true got false +FAIL MathML parsing ⫑ assert_true: expected true got false +FAIL MathML parsing ⫐ assert_true: expected true got false +FAIL MathML parsing ⫒ assert_true: expected true got false +FAIL MathML parsing ⋯ assert_true: expected true got false +FAIL MathML parsing ⤸ assert_true: expected true got false +FAIL MathML parsing ⤵ assert_true: expected true got false +FAIL MathML parsing ⋞ assert_true: expected true got false +FAIL MathML parsing ⋟ assert_true: expected true got false +FAIL MathML parsing ↶ assert_true: expected true got false +FAIL MathML parsing ⤽ assert_true: expected true got false +FAIL MathML parsing ⩈ assert_true: expected true got false +FAIL MathML parsing ⩆ assert_true: expected true got false +FAIL MathML parsing ≍ assert_true: expected true got false +FAIL MathML parsing ∪ assert_true: expected true got false +FAIL MathML parsing ⋓ assert_true: expected true got false +FAIL MathML parsing ⩊ assert_true: expected true got false +FAIL MathML parsing ⊍ assert_true: expected true got false +FAIL MathML parsing ⩅ assert_true: expected true got false +FAIL MathML parsing ∪︀ assert_true: expected true got false +FAIL MathML parsing ↷ assert_true: expected true got false +FAIL MathML parsing ⤼ assert_true: expected true got false +FAIL MathML parsing ⋞ assert_true: expected true got false +FAIL MathML parsing ⋟ assert_true: expected true got false +FAIL MathML parsing ⋎ assert_true: expected true got false +FAIL MathML parsing ⋏ assert_true: expected true got false +FAIL MathML parsing ¤ assert_true: expected true got false +FAIL MathML parsing ↶ assert_true: expected true got false +FAIL MathML parsing ↷ assert_true: expected true got false +FAIL MathML parsing ⋎ assert_true: expected true got false +FAIL MathML parsing ⋏ assert_true: expected true got false +FAIL MathML parsing ∲ assert_true: expected true got false +FAIL MathML parsing ∱ assert_true: expected true got false +FAIL MathML parsing ⌭ assert_true: expected true got false +FAIL MathML parsing † assert_true: expected true got false +FAIL MathML parsing ‡ assert_true: expected true got false +FAIL MathML parsing ℸ assert_true: expected true got false +FAIL MathML parsing ↓ assert_true: expected true got false +FAIL MathML parsing ↡ assert_true: expected true got false +FAIL MathML parsing ⇓ assert_true: expected true got false +FAIL MathML parsing ‐ assert_true: expected true got false +FAIL MathML parsing ⫤ assert_true: expected true got false +FAIL MathML parsing ⊣ assert_true: expected true got false +FAIL MathML parsing ⤏ assert_true: expected true got false +FAIL MathML parsing ˝ assert_true: expected true got false +FAIL MathML parsing Ď assert_true: expected true got false +FAIL MathML parsing ď assert_true: expected true got false +FAIL MathML parsing Д assert_true: expected true got false +FAIL MathML parsing д assert_true: expected true got false +FAIL MathML parsing ‡ assert_true: expected true got false +FAIL MathML parsing ⇊ assert_true: expected true got false +FAIL MathML parsing ⅅ assert_true: expected true got false +FAIL MathML parsing ⅆ assert_true: expected true got false +FAIL MathML parsing ⤑ assert_true: expected true got false +FAIL MathML parsing ⩷ assert_true: expected true got false +FAIL MathML parsing ° assert_true: expected true got false +FAIL MathML parsing ∇ assert_true: expected true got false +FAIL MathML parsing Δ assert_true: expected true got false +FAIL MathML parsing δ assert_true: expected true got false +FAIL MathML parsing ⦱ assert_true: expected true got false +FAIL MathML parsing ⥿ assert_true: expected true got false +FAIL MathML parsing 𝔇 assert_true: expected true got false +FAIL MathML parsing 𝔡 assert_true: expected true got false +FAIL MathML parsing ⥥ assert_true: expected true got false +FAIL MathML parsing ⇃ assert_true: expected true got false +FAIL MathML parsing ⇂ assert_true: expected true got false +FAIL MathML parsing ´ assert_true: expected true got false +FAIL MathML parsing ˙ assert_true: expected true got false +FAIL MathML parsing ˝ assert_true: expected true got false +FAIL MathML parsing ` assert_true: expected true got false +FAIL MathML parsing ˜ assert_true: expected true got false +FAIL MathML parsing ⋄ assert_true: expected true got false +FAIL MathML parsing ⋄ assert_true: expected true got false +FAIL MathML parsing ⋄ assert_true: expected true got false +FAIL MathML parsing ♦ assert_true: expected true got false +FAIL MathML parsing ♦ assert_true: expected true got false +FAIL MathML parsing ¨ assert_true: expected true got false +FAIL MathML parsing ⅆ assert_true: expected true got false +FAIL MathML parsing ϝ assert_true: expected true got false +FAIL MathML parsing ⋲ assert_true: expected true got false +FAIL MathML parsing ÷ assert_true: expected true got false +FAIL MathML parsing ÷ assert_true: expected true got false +FAIL MathML parsing ⋇ assert_true: expected true got false +FAIL MathML parsing ⋇ assert_true: expected true got false +FAIL MathML parsing Ђ assert_true: expected true got false +FAIL MathML parsing ђ assert_true: expected true got false +FAIL MathML parsing ⌞ assert_true: expected true got false +FAIL MathML parsing ⌍ assert_true: expected true got false +FAIL MathML parsing $ assert_true: expected true got false +FAIL MathML parsing 𝔻 assert_true: expected true got false +FAIL MathML parsing 𝕕 assert_true: expected true got false +FAIL MathML parsing ¨ assert_true: expected true got false +FAIL MathML parsing ˙ assert_true: expected true got false +FAIL MathML parsing ⃜ assert_true: expected true got false +FAIL MathML parsing ≐ assert_true: expected true got false +FAIL MathML parsing ≑ assert_true: expected true got false +FAIL MathML parsing ≐ assert_true: expected true got false +FAIL MathML parsing ∸ assert_true: expected true got false +FAIL MathML parsing ∔ assert_true: expected true got false +FAIL MathML parsing ⊡ assert_true: expected true got false +FAIL MathML parsing ⌆ assert_true: expected true got false +FAIL MathML parsing ∯ assert_true: expected true got false +FAIL MathML parsing ¨ assert_true: expected true got false +FAIL MathML parsing ⇓ assert_true: expected true got false +FAIL MathML parsing ⇐ assert_true: expected true got false +FAIL MathML parsing ⇔ assert_true: expected true got false +FAIL MathML parsing ⫤ assert_true: expected true got false +FAIL MathML parsing ⟸ assert_true: expected true got false +FAIL MathML parsing ⟺ assert_true: expected true got false +FAIL MathML parsing ⟹ assert_true: expected true got false +FAIL MathML parsing ⇒ assert_true: expected true got false +FAIL MathML parsing ⊨ assert_true: expected true got false +FAIL MathML parsing ⇑ assert_true: expected true got false +FAIL MathML parsing ⇕ assert_true: expected true got false +FAIL MathML parsing ∥ assert_true: expected true got false +FAIL MathML parsing ⤓ assert_true: expected true got false +FAIL MathML parsing ↓ assert_true: expected true got false +FAIL MathML parsing ↓ assert_true: expected true got false +FAIL MathML parsing ⇓ assert_true: expected true got false +FAIL MathML parsing ⇵ assert_true: expected true got false +FAIL MathML parsing ̑ assert_true: expected true got false +FAIL MathML parsing ⇊ assert_true: expected true got false +FAIL MathML parsing ⇃ assert_true: expected true got false +FAIL MathML parsing ⇂ assert_true: expected true got false +FAIL MathML parsing ⥐ assert_true: expected true got false +FAIL MathML parsing ⥞ assert_true: expected true got false +FAIL MathML parsing ⥖ assert_true: expected true got false +FAIL MathML parsing ↽ assert_true: expected true got false +FAIL MathML parsing ⥟ assert_true: expected true got false +FAIL MathML parsing ⥗ assert_true: expected true got false +FAIL MathML parsing ⇁ assert_true: expected true got false +FAIL MathML parsing ↧ assert_true: expected true got false +FAIL MathML parsing ⊤ assert_true: expected true got false +FAIL MathML parsing ⤐ assert_true: expected true got false +FAIL MathML parsing ⌟ assert_true: expected true got false +FAIL MathML parsing ⌌ assert_true: expected true got false +FAIL MathML parsing 𝒟 assert_true: expected true got false +FAIL MathML parsing 𝒹 assert_true: expected true got false +FAIL MathML parsing Ѕ assert_true: expected true got false +FAIL MathML parsing ѕ assert_true: expected true got false +FAIL MathML parsing ⧶ assert_true: expected true got false +FAIL MathML parsing Đ assert_true: expected true got false +FAIL MathML parsing đ assert_true: expected true got false +FAIL MathML parsing ⋱ assert_true: expected true got false +FAIL MathML parsing ▿ assert_true: expected true got false +FAIL MathML parsing ▾ assert_true: expected true got false +FAIL MathML parsing ⇵ assert_true: expected true got false +FAIL MathML parsing ⥯ assert_true: expected true got false +FAIL MathML parsing ⦦ assert_true: expected true got false +FAIL MathML parsing Џ assert_true: expected true got false +FAIL MathML parsing џ assert_true: expected true got false +FAIL MathML parsing ⟿ assert_true: expected true got false +FAIL MathML parsing É assert_true: expected true got false +FAIL MathML parsing é assert_true: expected true got false +FAIL MathML parsing ⩮ assert_true: expected true got false +FAIL MathML parsing Ě assert_true: expected true got false +FAIL MathML parsing ě assert_true: expected true got false +FAIL MathML parsing Ê assert_true: expected true got false +FAIL MathML parsing ê assert_true: expected true got false +FAIL MathML parsing ≖ assert_true: expected true got false +FAIL MathML parsing ≕ assert_true: expected true got false +FAIL MathML parsing Э assert_true: expected true got false +FAIL MathML parsing э assert_true: expected true got false +FAIL MathML parsing ⩷ assert_true: expected true got false +FAIL MathML parsing Ė assert_true: expected true got false +FAIL MathML parsing ė assert_true: expected true got false +FAIL MathML parsing ≑ assert_true: expected true got false +FAIL MathML parsing ⅇ assert_true: expected true got false +FAIL MathML parsing ≒ assert_true: expected true got false +FAIL MathML parsing 𝔈 assert_true: expected true got false +FAIL MathML parsing 𝔢 assert_true: expected true got false +FAIL MathML parsing ⪚ assert_true: expected true got false +FAIL MathML parsing È assert_true: expected true got false +FAIL MathML parsing è assert_true: expected true got false +FAIL MathML parsing ⪖ assert_true: expected true got false +FAIL MathML parsing ⪘ assert_true: expected true got false +FAIL MathML parsing ⪙ assert_true: expected true got false +FAIL MathML parsing ∈ assert_true: expected true got false +FAIL MathML parsing ⏧ assert_true: expected true got false +FAIL MathML parsing ℓ assert_true: expected true got false +FAIL MathML parsing ⪕ assert_true: expected true got false +FAIL MathML parsing ⪗ assert_true: expected true got false +FAIL MathML parsing Ē assert_true: expected true got false +FAIL MathML parsing ē assert_true: expected true got false +FAIL MathML parsing ∅ assert_true: expected true got false +FAIL MathML parsing ∅ assert_true: expected true got false +FAIL MathML parsing ◻ assert_true: expected true got false +FAIL MathML parsing ∅ assert_true: expected true got false +FAIL MathML parsing ▫ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing Ŋ assert_true: expected true got false +FAIL MathML parsing ŋ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing Ę assert_true: expected true got false +FAIL MathML parsing ę assert_true: expected true got false +FAIL MathML parsing 𝔼 assert_true: expected true got false +FAIL MathML parsing 𝕖 assert_true: expected true got false +FAIL MathML parsing ⋕ assert_true: expected true got false +FAIL MathML parsing ⧣ assert_true: expected true got false +FAIL MathML parsing ⩱ assert_true: expected true got false +FAIL MathML parsing ε assert_true: expected true got false +FAIL MathML parsing Ε assert_true: expected true got false +FAIL MathML parsing ε assert_true: expected true got false +FAIL MathML parsing ϵ assert_true: expected true got false +FAIL MathML parsing ≖ assert_true: expected true got false +FAIL MathML parsing ≕ assert_true: expected true got false +FAIL MathML parsing ≂ assert_true: expected true got false +FAIL MathML parsing ⪖ assert_true: expected true got false +FAIL MathML parsing ⪕ assert_true: expected true got false +FAIL MathML parsing ⩵ assert_true: expected true got false +FAIL MathML parsing = assert_true: expected true got false +FAIL MathML parsing ≂ assert_true: expected true got false +FAIL MathML parsing ≟ assert_true: expected true got false +FAIL MathML parsing ⇌ assert_true: expected true got false +FAIL MathML parsing ≡ assert_true: expected true got false +FAIL MathML parsing ⩸ assert_true: expected true got false +FAIL MathML parsing ⧥ assert_true: expected true got false +FAIL MathML parsing ⥱ assert_true: expected true got false +FAIL MathML parsing ≓ assert_true: expected true got false +FAIL MathML parsing ℯ assert_true: expected true got false +FAIL MathML parsing ℰ assert_true: expected true got false +FAIL MathML parsing ≐ assert_true: expected true got false +FAIL MathML parsing ⩳ assert_true: expected true got false +FAIL MathML parsing ≂ assert_true: expected true got false +FAIL MathML parsing Η assert_true: expected true got false +FAIL MathML parsing η assert_true: expected true got false +FAIL MathML parsing Ð assert_true: expected true got false +FAIL MathML parsing ð assert_true: expected true got false +FAIL MathML parsing Ë assert_true: expected true got false +FAIL MathML parsing ë assert_true: expected true got false +FAIL MathML parsing € assert_true: expected true got false +FAIL MathML parsing ! assert_true: expected true got false +FAIL MathML parsing ∃ assert_true: expected true got false +FAIL MathML parsing ∃ assert_true: expected true got false +FAIL MathML parsing ℰ assert_true: expected true got false +FAIL MathML parsing ⅇ assert_true: expected true got false +FAIL MathML parsing ⅇ assert_true: expected true got false +FAIL MathML parsing ≒ assert_true: expected true got false +FAIL MathML parsing Ф assert_true: expected true got false +FAIL MathML parsing ф assert_true: expected true got false +FAIL MathML parsing ♀ assert_true: expected true got false +FAIL MathML parsing ffi assert_true: expected true got false +FAIL MathML parsing ff assert_true: expected true got false +FAIL MathML parsing ffl assert_true: expected true got false +FAIL MathML parsing 𝔉 assert_true: expected true got false +FAIL MathML parsing 𝔣 assert_true: expected true got false +FAIL MathML parsing fi assert_true: expected true got false +FAIL MathML parsing ◼ assert_true: expected true got false +FAIL MathML parsing ▪ assert_true: expected true got false +FAIL MathML parsing fj assert_true: expected true got false +FAIL MathML parsing ♭ assert_true: expected true got false +FAIL MathML parsing fl assert_true: expected true got false +FAIL MathML parsing ▱ assert_true: expected true got false +FAIL MathML parsing ƒ assert_true: expected true got false +FAIL MathML parsing 𝔽 assert_true: expected true got false +FAIL MathML parsing 𝕗 assert_true: expected true got false +FAIL MathML parsing ∀ assert_true: expected true got false +FAIL MathML parsing ∀ assert_true: expected true got false +FAIL MathML parsing ⋔ assert_true: expected true got false +FAIL MathML parsing ⫙ assert_true: expected true got false +FAIL MathML parsing ℱ assert_true: expected true got false +FAIL MathML parsing ⨍ assert_true: expected true got false +FAIL MathML parsing ½ assert_true: expected true got false +FAIL MathML parsing ⅓ assert_true: expected true got false +FAIL MathML parsing ¼ assert_true: expected true got false +FAIL MathML parsing ⅕ assert_true: expected true got false +FAIL MathML parsing ⅙ assert_true: expected true got false +FAIL MathML parsing ⅛ assert_true: expected true got false +FAIL MathML parsing ⅔ assert_true: expected true got false +FAIL MathML parsing ⅖ assert_true: expected true got false +FAIL MathML parsing ¾ assert_true: expected true got false +FAIL MathML parsing ⅗ assert_true: expected true got false +FAIL MathML parsing ⅜ assert_true: expected true got false +FAIL MathML parsing ⅘ assert_true: expected true got false +FAIL MathML parsing ⅚ assert_true: expected true got false +FAIL MathML parsing ⅝ assert_true: expected true got false +FAIL MathML parsing ⅞ assert_true: expected true got false +FAIL MathML parsing ⁄ assert_true: expected true got false +FAIL MathML parsing ⌢ assert_true: expected true got false +FAIL MathML parsing 𝒻 assert_true: expected true got false +FAIL MathML parsing ℱ assert_true: expected true got false +FAIL MathML parsing ǵ assert_true: expected true got false +FAIL MathML parsing Γ assert_true: expected true got false +FAIL MathML parsing γ assert_true: expected true got false +FAIL MathML parsing Ϝ assert_true: expected true got false +FAIL MathML parsing ϝ assert_true: expected true got false +FAIL MathML parsing ⪆ assert_true: expected true got false +FAIL MathML parsing Ğ assert_true: expected true got false +FAIL MathML parsing ğ assert_true: expected true got false +FAIL MathML parsing Ģ assert_true: expected true got false +FAIL MathML parsing Ĝ assert_true: expected true got false +FAIL MathML parsing ĝ assert_true: expected true got false +FAIL MathML parsing Г assert_true: expected true got false +FAIL MathML parsing г assert_true: expected true got false +FAIL MathML parsing Ġ assert_true: expected true got false +FAIL MathML parsing ġ assert_true: expected true got false +FAIL MathML parsing ≥ assert_true: expected true got false +FAIL MathML parsing ≧ assert_true: expected true got false +FAIL MathML parsing ⪌ assert_true: expected true got false +FAIL MathML parsing ⋛ assert_true: expected true got false +FAIL MathML parsing ≥ assert_true: expected true got false +FAIL MathML parsing ≧ assert_true: expected true got false +FAIL MathML parsing ⩾ assert_true: expected true got false +FAIL MathML parsing ⪩ assert_true: expected true got false +FAIL MathML parsing ⩾ assert_true: expected true got false +FAIL MathML parsing ⪀ assert_true: expected true got false +FAIL MathML parsing ⪂ assert_true: expected true got false +FAIL MathML parsing ⪄ assert_true: expected true got false +FAIL MathML parsing ⋛︀ assert_true: expected true got false +FAIL MathML parsing ⪔ assert_true: expected true got false +FAIL MathML parsing 𝔊 assert_true: expected true got false +FAIL MathML parsing 𝔤 assert_true: expected true got false +FAIL MathML parsing ≫ assert_true: expected true got false +FAIL MathML parsing ⋙ assert_true: expected true got false +FAIL MathML parsing ⋙ assert_true: expected true got false +FAIL MathML parsing ℷ assert_true: expected true got false +FAIL MathML parsing Ѓ assert_true: expected true got false +FAIL MathML parsing ѓ assert_true: expected true got false +FAIL MathML parsing ⪥ assert_true: expected true got false +FAIL MathML parsing ≷ assert_true: expected true got false +FAIL MathML parsing ⪒ assert_true: expected true got false +FAIL MathML parsing ⪤ assert_true: expected true got false +FAIL MathML parsing ⪊ assert_true: expected true got false +FAIL MathML parsing ⪊ assert_true: expected true got false +FAIL MathML parsing ⪈ assert_true: expected true got false +FAIL MathML parsing ≩ assert_true: expected true got false +FAIL MathML parsing ⪈ assert_true: expected true got false +FAIL MathML parsing ≩ assert_true: expected true got false +FAIL MathML parsing ⋧ assert_true: expected true got false +FAIL MathML parsing 𝔾 assert_true: expected true got false +FAIL MathML parsing 𝕘 assert_true: expected true got false +FAIL MathML parsing ` assert_true: expected true got false +FAIL MathML parsing ≥ assert_true: expected true got false +FAIL MathML parsing ⋛ assert_true: expected true got false +FAIL MathML parsing ≧ assert_true: expected true got false +FAIL MathML parsing ⪢ assert_true: expected true got false +FAIL MathML parsing ≷ assert_true: expected true got false +FAIL MathML parsing ⩾ assert_true: expected true got false +FAIL MathML parsing ≳ assert_true: expected true got false +FAIL MathML parsing 𝒢 assert_true: expected true got false +FAIL MathML parsing ℊ assert_true: expected true got false +FAIL MathML parsing ≳ assert_true: expected true got false +FAIL MathML parsing ⪎ assert_true: expected true got false +FAIL MathML parsing ⪐ assert_true: expected true got false +FAIL MathML parsing ⪧ assert_true: expected true got false +FAIL MathML parsing ⩺ assert_true: expected true got false +PASS MathML parsing > +FAIL MathML parsing > assert_true: expected true got false +FAIL MathML parsing ≫ assert_true: expected true got false +FAIL MathML parsing ⋗ assert_true: expected true got false +FAIL MathML parsing ⦕ assert_true: expected true got false +FAIL MathML parsing ⩼ assert_true: expected true got false +FAIL MathML parsing ⪆ assert_true: expected true got false +FAIL MathML parsing ⥸ assert_true: expected true got false +FAIL MathML parsing ⋗ assert_true: expected true got false +FAIL MathML parsing ⋛ assert_true: expected true got false +FAIL MathML parsing ⪌ assert_true: expected true got false +FAIL MathML parsing ≷ assert_true: expected true got false +FAIL MathML parsing ≳ assert_true: expected true got false +FAIL MathML parsing ≩︀ assert_true: expected true got false +FAIL MathML parsing ≩︀ assert_true: expected true got false +FAIL MathML parsing ˇ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing ½ assert_true: expected true got false +FAIL MathML parsing ℋ assert_true: expected true got false +FAIL MathML parsing Ъ assert_true: expected true got false +FAIL MathML parsing ъ assert_true: expected true got false +FAIL MathML parsing ⥈ assert_true: expected true got false +FAIL MathML parsing ↔ assert_true: expected true got false +FAIL MathML parsing ⇔ assert_true: expected true got false +FAIL MathML parsing ↭ assert_true: expected true got false +FAIL MathML parsing ^ assert_true: expected true got false +FAIL MathML parsing ℏ assert_true: expected true got false +FAIL MathML parsing Ĥ assert_true: expected true got false +FAIL MathML parsing ĥ assert_true: expected true got false +FAIL MathML parsing ♥ assert_true: expected true got false +FAIL MathML parsing ♥ assert_true: expected true got false +FAIL MathML parsing … assert_true: expected true got false +FAIL MathML parsing ⊹ assert_true: expected true got false +FAIL MathML parsing 𝔥 assert_true: expected true got false +FAIL MathML parsing ℌ assert_true: expected true got false +FAIL MathML parsing ℋ assert_true: expected true got false +FAIL MathML parsing ⤥ assert_true: expected true got false +FAIL MathML parsing ⤦ assert_true: expected true got false +FAIL MathML parsing ⇿ assert_true: expected true got false +FAIL MathML parsing ∻ assert_true: expected true got false +FAIL MathML parsing ↩ assert_true: expected true got false +FAIL MathML parsing ↪ assert_true: expected true got false +FAIL MathML parsing 𝕙 assert_true: expected true got false +FAIL MathML parsing ℍ assert_true: expected true got false +FAIL MathML parsing ― assert_true: expected true got false +FAIL MathML parsing ─ assert_true: expected true got false +FAIL MathML parsing 𝒽 assert_true: expected true got false +FAIL MathML parsing ℋ assert_true: expected true got false +FAIL MathML parsing ℏ assert_true: expected true got false +FAIL MathML parsing Ħ assert_true: expected true got false +FAIL MathML parsing ħ assert_true: expected true got false +FAIL MathML parsing ≎ assert_true: expected true got false +FAIL MathML parsing ≏ assert_true: expected true got false +FAIL MathML parsing ⁃ assert_true: expected true got false +FAIL MathML parsing ‐ assert_true: expected true got false +FAIL MathML parsing Í assert_true: expected true got false +FAIL MathML parsing í assert_true: expected true got false +FAIL MathML parsing ⁣ assert_true: expected true got false +FAIL MathML parsing Î assert_true: expected true got false +FAIL MathML parsing î assert_true: expected true got false +FAIL MathML parsing И assert_true: expected true got false +FAIL MathML parsing и assert_true: expected true got false +FAIL MathML parsing İ assert_true: expected true got false +FAIL MathML parsing Е assert_true: expected true got false +FAIL MathML parsing е assert_true: expected true got false +FAIL MathML parsing ¡ assert_true: expected true got false +FAIL MathML parsing ⇔ assert_true: expected true got false +FAIL MathML parsing 𝔦 assert_true: expected true got false +FAIL MathML parsing ℑ assert_true: expected true got false +FAIL MathML parsing Ì assert_true: expected true got false +FAIL MathML parsing ì assert_true: expected true got false +FAIL MathML parsing ⅈ assert_true: expected true got false +FAIL MathML parsing ⨌ assert_true: expected true got false +FAIL MathML parsing ∭ assert_true: expected true got false +FAIL MathML parsing ⧜ assert_true: expected true got false +FAIL MathML parsing ℩ assert_true: expected true got false +FAIL MathML parsing IJ assert_true: expected true got false +FAIL MathML parsing ij assert_true: expected true got false +FAIL MathML parsing Ī assert_true: expected true got false +FAIL MathML parsing ī assert_true: expected true got false +FAIL MathML parsing ℑ assert_true: expected true got false +FAIL MathML parsing ⅈ assert_true: expected true got false +FAIL MathML parsing ℐ assert_true: expected true got false +FAIL MathML parsing ℑ assert_true: expected true got false +FAIL MathML parsing ı assert_true: expected true got false +FAIL MathML parsing ℑ assert_true: expected true got false +FAIL MathML parsing ⊷ assert_true: expected true got false +FAIL MathML parsing Ƶ assert_true: expected true got false +FAIL MathML parsing ⇒ assert_true: expected true got false +FAIL MathML parsing ℅ assert_true: expected true got false +FAIL MathML parsing ∈ assert_true: expected true got false +FAIL MathML parsing ∞ assert_true: expected true got false +FAIL MathML parsing ⧝ assert_true: expected true got false +FAIL MathML parsing ı assert_true: expected true got false +FAIL MathML parsing ⊺ assert_true: expected true got false +FAIL MathML parsing ∫ assert_true: expected true got false +FAIL MathML parsing ∬ assert_true: expected true got false +FAIL MathML parsing ℤ assert_true: expected true got false +FAIL MathML parsing ∫ assert_true: expected true got false +FAIL MathML parsing ⊺ assert_true: expected true got false +FAIL MathML parsing ⋂ assert_true: expected true got false +FAIL MathML parsing ⨗ assert_true: expected true got false +FAIL MathML parsing ⨼ assert_true: expected true got false +FAIL MathML parsing ⁣ assert_true: expected true got false +FAIL MathML parsing ⁢ assert_true: expected true got false +FAIL MathML parsing Ё assert_true: expected true got false +FAIL MathML parsing ё assert_true: expected true got false +FAIL MathML parsing Į assert_true: expected true got false +FAIL MathML parsing į assert_true: expected true got false +FAIL MathML parsing 𝕀 assert_true: expected true got false +FAIL MathML parsing 𝕚 assert_true: expected true got false +FAIL MathML parsing Ι assert_true: expected true got false +FAIL MathML parsing ι assert_true: expected true got false +FAIL MathML parsing ⨼ assert_true: expected true got false +FAIL MathML parsing ¿ assert_true: expected true got false +FAIL MathML parsing 𝒾 assert_true: expected true got false +FAIL MathML parsing ℐ assert_true: expected true got false +FAIL MathML parsing ∈ assert_true: expected true got false +FAIL MathML parsing ⋵ assert_true: expected true got false +FAIL MathML parsing ⋹ assert_true: expected true got false +FAIL MathML parsing ⋴ assert_true: expected true got false +FAIL MathML parsing ⋳ assert_true: expected true got false +FAIL MathML parsing ∈ assert_true: expected true got false +FAIL MathML parsing ⁢ assert_true: expected true got false +FAIL MathML parsing Ĩ assert_true: expected true got false +FAIL MathML parsing ĩ assert_true: expected true got false +FAIL MathML parsing І assert_true: expected true got false +FAIL MathML parsing і assert_true: expected true got false +FAIL MathML parsing Ï assert_true: expected true got false +FAIL MathML parsing ï assert_true: expected true got false +FAIL MathML parsing Ĵ assert_true: expected true got false +FAIL MathML parsing ĵ assert_true: expected true got false +FAIL MathML parsing Й assert_true: expected true got false +FAIL MathML parsing й assert_true: expected true got false +FAIL MathML parsing 𝔍 assert_true: expected true got false +FAIL MathML parsing 𝔧 assert_true: expected true got false +FAIL MathML parsing ȷ assert_true: expected true got false +FAIL MathML parsing 𝕁 assert_true: expected true got false +FAIL MathML parsing 𝕛 assert_true: expected true got false +FAIL MathML parsing 𝒥 assert_true: expected true got false +FAIL MathML parsing 𝒿 assert_true: expected true got false +FAIL MathML parsing Ј assert_true: expected true got false +FAIL MathML parsing ј assert_true: expected true got false +FAIL MathML parsing Є assert_true: expected true got false +FAIL MathML parsing є assert_true: expected true got false +FAIL MathML parsing Κ assert_true: expected true got false +FAIL MathML parsing κ assert_true: expected true got false +FAIL MathML parsing ϰ assert_true: expected true got false +FAIL MathML parsing Ķ assert_true: expected true got false +FAIL MathML parsing ķ assert_true: expected true got false +FAIL MathML parsing К assert_true: expected true got false +FAIL MathML parsing к assert_true: expected true got false +FAIL MathML parsing 𝔎 assert_true: expected true got false +FAIL MathML parsing 𝔨 assert_true: expected true got false +FAIL MathML parsing ĸ assert_true: expected true got false +FAIL MathML parsing Х assert_true: expected true got false +FAIL MathML parsing х assert_true: expected true got false +FAIL MathML parsing Ќ assert_true: expected true got false +FAIL MathML parsing ќ assert_true: expected true got false +FAIL MathML parsing 𝕂 assert_true: expected true got false +FAIL MathML parsing 𝕜 assert_true: expected true got false +FAIL MathML parsing 𝒦 assert_true: expected true got false +FAIL MathML parsing 𝓀 assert_true: expected true got false +FAIL MathML parsing ⇚ assert_true: expected true got false +FAIL MathML parsing Ĺ assert_true: expected true got false +FAIL MathML parsing ĺ assert_true: expected true got false +FAIL MathML parsing ⦴ assert_true: expected true got false +FAIL MathML parsing ℒ assert_true: expected true got false +FAIL MathML parsing Λ assert_true: expected true got false +FAIL MathML parsing λ assert_true: expected true got false +FAIL MathML parsing ⟨ assert_true: expected true got false +FAIL MathML parsing ⟪ assert_true: expected true got false +FAIL MathML parsing ⦑ assert_true: expected true got false +FAIL MathML parsing ⟨ assert_true: expected true got false +FAIL MathML parsing ⪅ assert_true: expected true got false +FAIL MathML parsing ℒ assert_true: expected true got false +FAIL MathML parsing « assert_true: expected true got false +FAIL MathML parsing ⇤ assert_true: expected true got false +FAIL MathML parsing ⤟ assert_true: expected true got false +FAIL MathML parsing ← assert_true: expected true got false +FAIL MathML parsing ↞ assert_true: expected true got false +FAIL MathML parsing ⇐ assert_true: expected true got false +FAIL MathML parsing ⤝ assert_true: expected true got false +FAIL MathML parsing ↩ assert_true: expected true got false +FAIL MathML parsing ↫ assert_true: expected true got false +FAIL MathML parsing ⤹ assert_true: expected true got false +FAIL MathML parsing ⥳ assert_true: expected true got false +FAIL MathML parsing ↢ assert_true: expected true got false +FAIL MathML parsing ⤙ assert_true: expected true got false +FAIL MathML parsing ⤛ assert_true: expected true got false +FAIL MathML parsing ⪫ assert_true: expected true got false +FAIL MathML parsing ⪭ assert_true: expected true got false +FAIL MathML parsing ⪭︀ assert_true: expected true got false +FAIL MathML parsing ⤌ assert_true: expected true got false +FAIL MathML parsing ⤎ assert_true: expected true got false +FAIL MathML parsing ❲ assert_true: expected true got false +FAIL MathML parsing { assert_true: expected true got false +FAIL MathML parsing [ assert_true: expected true got false +FAIL MathML parsing ⦋ assert_true: expected true got false +FAIL MathML parsing ⦏ assert_true: expected true got false +FAIL MathML parsing ⦍ assert_true: expected true got false +FAIL MathML parsing Ľ assert_true: expected true got false +FAIL MathML parsing ľ assert_true: expected true got false +FAIL MathML parsing Ļ assert_true: expected true got false +FAIL MathML parsing ļ assert_true: expected true got false +FAIL MathML parsing ⌈ assert_true: expected true got false +FAIL MathML parsing { assert_true: expected true got false +FAIL MathML parsing Л assert_true: expected true got false +FAIL MathML parsing л assert_true: expected true got false +FAIL MathML parsing ⤶ assert_true: expected true got false +FAIL MathML parsing “ assert_true: expected true got false +FAIL MathML parsing „ assert_true: expected true got false +FAIL MathML parsing ⥧ assert_true: expected true got false +FAIL MathML parsing ⥋ assert_true: expected true got false +FAIL MathML parsing ↲ assert_true: expected true got false +FAIL MathML parsing ≤ assert_true: expected true got false +FAIL MathML parsing ≦ assert_true: expected true got false +FAIL MathML parsing ⟨ assert_true: expected true got false +FAIL MathML parsing ⇤ assert_true: expected true got false +FAIL MathML parsing ← assert_true: expected true got false +FAIL MathML parsing ← assert_true: expected true got false +FAIL MathML parsing ⇐ assert_true: expected true got false +FAIL MathML parsing ⇆ assert_true: expected true got false +FAIL MathML parsing ↢ assert_true: expected true got false +FAIL MathML parsing ⌈ assert_true: expected true got false +FAIL MathML parsing ⟦ assert_true: expected true got false +FAIL MathML parsing ⥡ assert_true: expected true got false +FAIL MathML parsing ⥙ assert_true: expected true got false +FAIL MathML parsing ⇃ assert_true: expected true got false +FAIL MathML parsing ⌊ assert_true: expected true got false +FAIL MathML parsing ↽ assert_true: expected true got false +FAIL MathML parsing ↼ assert_true: expected true got false +FAIL MathML parsing ⇇ assert_true: expected true got false +FAIL MathML parsing ↔ assert_true: expected true got false +FAIL MathML parsing ↔ assert_true: expected true got false +FAIL MathML parsing ⇔ assert_true: expected true got false +FAIL MathML parsing ⇆ assert_true: expected true got false +FAIL MathML parsing ⇋ assert_true: expected true got false +FAIL MathML parsing ↭ assert_true: expected true got false +FAIL MathML parsing ⥎ assert_true: expected true got false +FAIL MathML parsing ↤ assert_true: expected true got false +FAIL MathML parsing ⊣ assert_true: expected true got false +FAIL MathML parsing ⥚ assert_true: expected true got false +FAIL MathML parsing ⋋ assert_true: expected true got false +FAIL MathML parsing ⧏ assert_true: expected true got false +FAIL MathML parsing ⊲ assert_true: expected true got false +FAIL MathML parsing ⊴ assert_true: expected true got false +FAIL MathML parsing ⥑ assert_true: expected true got false +FAIL MathML parsing ⥠ assert_true: expected true got false +FAIL MathML parsing ⥘ assert_true: expected true got false +FAIL MathML parsing ↿ assert_true: expected true got false +FAIL MathML parsing ⥒ assert_true: expected true got false +FAIL MathML parsing ↼ assert_true: expected true got false +FAIL MathML parsing ⪋ assert_true: expected true got false +FAIL MathML parsing ⋚ assert_true: expected true got false +FAIL MathML parsing ≤ assert_true: expected true got false +FAIL MathML parsing ≦ assert_true: expected true got false +FAIL MathML parsing ⩽ assert_true: expected true got false +FAIL MathML parsing ⪨ assert_true: expected true got false +FAIL MathML parsing ⩽ assert_true: expected true got false +FAIL MathML parsing ⩿ assert_true: expected true got false +FAIL MathML parsing ⪁ assert_true: expected true got false +FAIL MathML parsing ⪃ assert_true: expected true got false +FAIL MathML parsing ⋚︀ assert_true: expected true got false +FAIL MathML parsing ⪓ assert_true: expected true got false +FAIL MathML parsing ⪅ assert_true: expected true got false +FAIL MathML parsing ⋖ assert_true: expected true got false +FAIL MathML parsing ⋚ assert_true: expected true got false +FAIL MathML parsing ⪋ assert_true: expected true got false +FAIL MathML parsing ⋚ assert_true: expected true got false +FAIL MathML parsing ≦ assert_true: expected true got false +FAIL MathML parsing ≶ assert_true: expected true got false +FAIL MathML parsing ≶ assert_true: expected true got false +FAIL MathML parsing ⪡ assert_true: expected true got false +FAIL MathML parsing ≲ assert_true: expected true got false +FAIL MathML parsing ⩽ assert_true: expected true got false +FAIL MathML parsing ≲ assert_true: expected true got false +FAIL MathML parsing ⥼ assert_true: expected true got false +FAIL MathML parsing ⌊ assert_true: expected true got false +FAIL MathML parsing 𝔏 assert_true: expected true got false +FAIL MathML parsing 𝔩 assert_true: expected true got false +FAIL MathML parsing ≶ assert_true: expected true got false +FAIL MathML parsing ⪑ assert_true: expected true got false +FAIL MathML parsing ⥢ assert_true: expected true got false +FAIL MathML parsing ↽ assert_true: expected true got false +FAIL MathML parsing ↼ assert_true: expected true got false +FAIL MathML parsing ⥪ assert_true: expected true got false +FAIL MathML parsing ▄ assert_true: expected true got false +FAIL MathML parsing Љ assert_true: expected true got false +FAIL MathML parsing љ assert_true: expected true got false +FAIL MathML parsing ⇇ assert_true: expected true got false +FAIL MathML parsing ≪ assert_true: expected true got false +FAIL MathML parsing ⋘ assert_true: expected true got false +FAIL MathML parsing ⌞ assert_true: expected true got false +FAIL MathML parsing ⇚ assert_true: expected true got false +FAIL MathML parsing ⥫ assert_true: expected true got false +FAIL MathML parsing ◺ assert_true: expected true got false +FAIL MathML parsing Ŀ assert_true: expected true got false +FAIL MathML parsing ŀ assert_true: expected true got false +FAIL MathML parsing ⎰ assert_true: expected true got false +FAIL MathML parsing ⎰ assert_true: expected true got false +FAIL MathML parsing ⪉ assert_true: expected true got false +FAIL MathML parsing ⪉ assert_true: expected true got false +FAIL MathML parsing ⪇ assert_true: expected true got false +FAIL MathML parsing ≨ assert_true: expected true got false +FAIL MathML parsing ⪇ assert_true: expected true got false +FAIL MathML parsing ≨ assert_true: expected true got false +FAIL MathML parsing ⋦ assert_true: expected true got false +FAIL MathML parsing ⟬ assert_true: expected true got false +FAIL MathML parsing ⇽ assert_true: expected true got false +FAIL MathML parsing ⟦ assert_true: expected true got false +FAIL MathML parsing ⟵ assert_true: expected true got false +FAIL MathML parsing ⟵ assert_true: expected true got false +FAIL MathML parsing ⟸ assert_true: expected true got false +FAIL MathML parsing ⟷ assert_true: expected true got false +FAIL MathML parsing ⟷ assert_true: expected true got false +FAIL MathML parsing ⟺ assert_true: expected true got false +FAIL MathML parsing ⟼ assert_true: expected true got false +FAIL MathML parsing ⟶ assert_true: expected true got false +FAIL MathML parsing ⟶ assert_true: expected true got false +FAIL MathML parsing ⟹ assert_true: expected true got false +FAIL MathML parsing ↫ assert_true: expected true got false +FAIL MathML parsing ↬ assert_true: expected true got false +FAIL MathML parsing ⦅ assert_true: expected true got false +FAIL MathML parsing 𝕃 assert_true: expected true got false +FAIL MathML parsing 𝕝 assert_true: expected true got false +FAIL MathML parsing ⨭ assert_true: expected true got false +FAIL MathML parsing ⨴ assert_true: expected true got false +FAIL MathML parsing ∗ assert_true: expected true got false +FAIL MathML parsing _ assert_true: expected true got false +FAIL MathML parsing ↙ assert_true: expected true got false +FAIL MathML parsing ↘ assert_true: expected true got false +FAIL MathML parsing ◊ assert_true: expected true got false +FAIL MathML parsing ◊ assert_true: expected true got false +FAIL MathML parsing ⧫ assert_true: expected true got false +FAIL MathML parsing ( assert_true: expected true got false +FAIL MathML parsing ⦓ assert_true: expected true got false +FAIL MathML parsing ⇆ assert_true: expected true got false +FAIL MathML parsing ⌟ assert_true: expected true got false +FAIL MathML parsing ⇋ assert_true: expected true got false +FAIL MathML parsing ⥭ assert_true: expected true got false +FAIL MathML parsing ‎ assert_true: expected true got false +FAIL MathML parsing ⊿ assert_true: expected true got false +FAIL MathML parsing ‹ assert_true: expected true got false +FAIL MathML parsing 𝓁 assert_true: expected true got false +FAIL MathML parsing ℒ assert_true: expected true got false +FAIL MathML parsing ↰ assert_true: expected true got false +FAIL MathML parsing ↰ assert_true: expected true got false +FAIL MathML parsing ≲ assert_true: expected true got false +FAIL MathML parsing ⪍ assert_true: expected true got false +FAIL MathML parsing ⪏ assert_true: expected true got false +FAIL MathML parsing [ assert_true: expected true got false +FAIL MathML parsing ‘ assert_true: expected true got false +FAIL MathML parsing ‚ assert_true: expected true got false +FAIL MathML parsing Ł assert_true: expected true got false +FAIL MathML parsing ł assert_true: expected true got false +FAIL MathML parsing ⪦ assert_true: expected true got false +FAIL MathML parsing ⩹ assert_true: expected true got false +PASS MathML parsing < +FAIL MathML parsing < assert_true: expected true got false +FAIL MathML parsing ≪ assert_true: expected true got false +FAIL MathML parsing ⋖ assert_true: expected true got false +FAIL MathML parsing ⋋ assert_true: expected true got false +FAIL MathML parsing ⋉ assert_true: expected true got false +FAIL MathML parsing ⥶ assert_true: expected true got false +FAIL MathML parsing ⩻ assert_true: expected true got false +FAIL MathML parsing ◃ assert_true: expected true got false +FAIL MathML parsing ⊴ assert_true: expected true got false +FAIL MathML parsing ◂ assert_true: expected true got false +FAIL MathML parsing ⦖ assert_true: expected true got false +FAIL MathML parsing ⥊ assert_true: expected true got false +FAIL MathML parsing ⥦ assert_true: expected true got false +FAIL MathML parsing ≨︀ assert_true: expected true got false +FAIL MathML parsing ≨︀ assert_true: expected true got false +FAIL MathML parsing ¯ assert_true: expected true got false +FAIL MathML parsing ♂ assert_true: expected true got false +FAIL MathML parsing ✠ assert_true: expected true got false +FAIL MathML parsing ✠ assert_true: expected true got false +FAIL MathML parsing ⤅ assert_true: expected true got false +FAIL MathML parsing ↦ assert_true: expected true got false +FAIL MathML parsing ↦ assert_true: expected true got false +FAIL MathML parsing ↧ assert_true: expected true got false +FAIL MathML parsing ↤ assert_true: expected true got false +FAIL MathML parsing ↥ assert_true: expected true got false +FAIL MathML parsing ▮ assert_true: expected true got false +FAIL MathML parsing ⨩ assert_true: expected true got false +FAIL MathML parsing М assert_true: expected true got false +FAIL MathML parsing м assert_true: expected true got false +FAIL MathML parsing — assert_true: expected true got false +FAIL MathML parsing ∺ assert_true: expected true got false +FAIL MathML parsing ∡ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing ℳ assert_true: expected true got false +FAIL MathML parsing 𝔐 assert_true: expected true got false +FAIL MathML parsing 𝔪 assert_true: expected true got false +FAIL MathML parsing ℧ assert_true: expected true got false +FAIL MathML parsing µ assert_true: expected true got false +FAIL MathML parsing * assert_true: expected true got false +FAIL MathML parsing ⫰ assert_true: expected true got false +FAIL MathML parsing ∣ assert_true: expected true got false +FAIL MathML parsing · assert_true: expected true got false +FAIL MathML parsing ⊟ assert_true: expected true got false +FAIL MathML parsing − assert_true: expected true got false +FAIL MathML parsing ∸ assert_true: expected true got false +FAIL MathML parsing ⨪ assert_true: expected true got false +FAIL MathML parsing ∓ assert_true: expected true got false +FAIL MathML parsing ⫛ assert_true: expected true got false +FAIL MathML parsing … assert_true: expected true got false +FAIL MathML parsing ∓ assert_true: expected true got false +FAIL MathML parsing ⊧ assert_true: expected true got false +FAIL MathML parsing 𝕄 assert_true: expected true got false +FAIL MathML parsing 𝕞 assert_true: expected true got false +FAIL MathML parsing ∓ assert_true: expected true got false +FAIL MathML parsing 𝓂 assert_true: expected true got false +FAIL MathML parsing ℳ assert_true: expected true got false +FAIL MathML parsing ∾ assert_true: expected true got false +FAIL MathML parsing Μ assert_true: expected true got false +FAIL MathML parsing μ assert_true: expected true got false +FAIL MathML parsing ⊸ assert_true: expected true got false +FAIL MathML parsing ⊸ assert_true: expected true got false +FAIL MathML parsing ∇ assert_true: expected true got false +FAIL MathML parsing Ń assert_true: expected true got false +FAIL MathML parsing ń assert_true: expected true got false +FAIL MathML parsing ∠⃒ assert_true: expected true got false +FAIL MathML parsing ≉ assert_true: expected true got false +FAIL MathML parsing ⩰̸ assert_true: expected true got false +FAIL MathML parsing ≋̸ assert_true: expected true got false +FAIL MathML parsing ʼn assert_true: expected true got false +FAIL MathML parsing ≉ assert_true: expected true got false +FAIL MathML parsing ♮ assert_true: expected true got false +FAIL MathML parsing ℕ assert_true: expected true got false +FAIL MathML parsing ♮ assert_true: expected true got false +FAIL MathML parsing assert_true: expected true got false +FAIL MathML parsing ≎̸ assert_true: expected true got false +FAIL MathML parsing ≏̸ assert_true: expected true got false +FAIL MathML parsing ⩃ assert_true: expected true got false +FAIL MathML parsing Ň assert_true: expected true got false +FAIL MathML parsing ň assert_true: expected true got false +FAIL MathML parsing Ņ assert_true: expected true got false +FAIL MathML parsing ņ assert_true: expected true got false +FAIL MathML parsing ≇ assert_true: expected true got false +FAIL MathML parsing ⩭̸ assert_true: expected true got false +FAIL MathML parsing ⩂ assert_true: expected true got false +FAIL MathML parsing Н assert_true: expected true got false +FAIL MathML parsing н assert_true: expected true got false +FAIL MathML parsing – assert_true: expected true got false +FAIL MathML parsing ⤤ assert_true: expected true got false +FAIL MathML parsing ↗ assert_true: expected true got false +FAIL MathML parsing ⇗ assert_true: expected true got false +FAIL MathML parsing ↗ assert_true: expected true got false +FAIL MathML parsing ≠ assert_true: expected true got false +FAIL MathML parsing ≐̸ assert_true: expected true got false +FAIL MathML parsing ​ assert_true: expected true got false +FAIL MathML parsing ​ assert_true: expected true got false +FAIL MathML parsing ​ assert_true: expected true got false +FAIL MathML parsing ​ assert_true: expected true got false +FAIL MathML parsing ≢ assert_true: expected true got false +FAIL MathML parsing ⤨ assert_true: expected true got false +FAIL MathML parsing ≂̸ assert_true: expected true got false +FAIL MathML parsing ≫ assert_true: expected true got false +FAIL MathML parsing ≪ assert_true: expected true got false +FAIL MathML parsing 
 assert_true: expected true got false +FAIL MathML parsing ∄ assert_true: expected true got false +FAIL MathML parsing ∄ assert_true: expected true got false +FAIL MathML parsing 𝔑 assert_true: expected true got false +FAIL MathML parsing 𝔫 assert_true: expected true got false +FAIL MathML parsing ≧̸ assert_true: expected true got false +FAIL MathML parsing ≱ assert_true: expected true got false +FAIL MathML parsing ≱ assert_true: expected true got false +FAIL MathML parsing ≧̸ assert_true: expected true got false +FAIL MathML parsing ⩾̸ assert_true: expected true got false +FAIL MathML parsing ⩾̸ assert_true: expected true got false +FAIL MathML parsing ⋙̸ assert_true: expected true got false +FAIL MathML parsing ≵ assert_true: expected true got false +FAIL MathML parsing ≫⃒ assert_true: expected true got false +FAIL MathML parsing ≯ assert_true: expected true got false +FAIL MathML parsing ≯ assert_true: expected true got false +FAIL MathML parsing ≫̸ assert_true: expected true got false +FAIL MathML parsing ↮ assert_true: expected true got false +FAIL MathML parsing ⇎ assert_true: expected true got false +FAIL MathML parsing ⫲ assert_true: expected true got false +FAIL MathML parsing ∋ assert_true: expected true got false +FAIL MathML parsing ⋼ assert_true: expected true got false +FAIL MathML parsing ⋺ assert_true: expected true got false +FAIL MathML parsing ∋ assert_true: expected true got false +FAIL MathML parsing Њ assert_true: expected true got false +FAIL MathML parsing њ assert_true: expected true got false +FAIL MathML parsing ↚ assert_true: expected true got false +FAIL MathML parsing ⇍ assert_true: expected true got false +FAIL MathML parsing ‥ assert_true: expected true got false +FAIL MathML parsing ≦̸ assert_true: expected true got false +FAIL MathML parsing ≰ assert_true: expected true got false +FAIL MathML parsing ↚ assert_true: expected true got false +FAIL MathML parsing ⇍ assert_true: expected true got false +FAIL MathML parsing ↮ assert_true: expected true got false +FAIL MathML parsing ⇎ assert_true: expected true got false +FAIL MathML parsing ≰ assert_true: expected true got false +FAIL MathML parsing ≦̸ assert_true: expected true got false +FAIL MathML parsing ⩽̸ assert_true: expected true got false +FAIL MathML parsing ⩽̸ assert_true: expected true got false +FAIL MathML parsing ≮ assert_true: expected true got false +FAIL MathML parsing ⋘̸ assert_true: expected true got false +FAIL MathML parsing ≴ assert_true: expected true got false +FAIL MathML parsing ≪⃒ assert_true: expected true got false +FAIL MathML parsing ≮ assert_true: expected true got false +FAIL MathML parsing ⋪ assert_true: expected true got false +FAIL MathML parsing ⋬ assert_true: expected true got false +FAIL MathML parsing ≪̸ assert_true: expected true got false +FAIL MathML parsing ∤ assert_true: expected true got false +FAIL MathML parsing ⁠ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing 𝕟 assert_true: expected true got false +FAIL MathML parsing ℕ assert_true: expected true got false +FAIL MathML parsing ⫬ assert_true: expected true got false +FAIL MathML parsing ¬ assert_true: expected true got false +FAIL MathML parsing ≢ assert_true: expected true got false +FAIL MathML parsing ≭ assert_true: expected true got false +FAIL MathML parsing ∦ assert_true: expected true got false +FAIL MathML parsing ∉ assert_true: expected true got false +FAIL MathML parsing ≠ assert_true: expected true got false +FAIL MathML parsing ≂̸ assert_true: expected true got false +FAIL MathML parsing ∄ assert_true: expected true got false +FAIL MathML parsing ≯ assert_true: expected true got false +FAIL MathML parsing ≱ assert_true: expected true got false +FAIL MathML parsing ≧̸ assert_true: expected true got false +FAIL MathML parsing ≫̸ assert_true: expected true got false +FAIL MathML parsing ≹ assert_true: expected true got false +FAIL MathML parsing ⩾̸ assert_true: expected true got false +FAIL MathML parsing ≵ assert_true: expected true got false +FAIL MathML parsing ≎̸ assert_true: expected true got false +FAIL MathML parsing ≏̸ assert_true: expected true got false +FAIL MathML parsing ∉ assert_true: expected true got false +FAIL MathML parsing ⋵̸ assert_true: expected true got false +FAIL MathML parsing ⋹̸ assert_true: expected true got false +FAIL MathML parsing ∉ assert_true: expected true got false +FAIL MathML parsing ⋷ assert_true: expected true got false +FAIL MathML parsing ⋶ assert_true: expected true got false +FAIL MathML parsing ⧏̸ assert_true: expected true got false +FAIL MathML parsing ⋪ assert_true: expected true got false +FAIL MathML parsing ⋬ assert_true: expected true got false +FAIL MathML parsing ≮ assert_true: expected true got false +FAIL MathML parsing ≰ assert_true: expected true got false +FAIL MathML parsing ≸ assert_true: expected true got false +FAIL MathML parsing ≪̸ assert_true: expected true got false +FAIL MathML parsing ⩽̸ assert_true: expected true got false +FAIL MathML parsing ≴ assert_true: expected true got false +FAIL MathML parsing ⪢̸ assert_true: expected true got false +FAIL MathML parsing ⪡̸ assert_true: expected true got false +FAIL MathML parsing ∌ assert_true: expected true got false +FAIL MathML parsing ∌ assert_true: expected true got false +FAIL MathML parsing ⋾ assert_true: expected true got false +FAIL MathML parsing ⋽ assert_true: expected true got false +FAIL MathML parsing ⊀ assert_true: expected true got false +FAIL MathML parsing ⪯̸ assert_true: expected true got false +FAIL MathML parsing ⋠ assert_true: expected true got false +FAIL MathML parsing ∌ assert_true: expected true got false +FAIL MathML parsing ⧐̸ assert_true: expected true got false +FAIL MathML parsing ⋫ assert_true: expected true got false +FAIL MathML parsing ⋭ assert_true: expected true got false +FAIL MathML parsing ⊏̸ assert_true: expected true got false +FAIL MathML parsing ⋢ assert_true: expected true got false +FAIL MathML parsing ⊐̸ assert_true: expected true got false +FAIL MathML parsing ⋣ assert_true: expected true got false +FAIL MathML parsing ⊂⃒ assert_true: expected true got false +FAIL MathML parsing ⊈ assert_true: expected true got false +FAIL MathML parsing ⊁ assert_true: expected true got false +FAIL MathML parsing ⪰̸ assert_true: expected true got false +FAIL MathML parsing ⋡ assert_true: expected true got false +FAIL MathML parsing ≿̸ assert_true: expected true got false +FAIL MathML parsing ⊃⃒ assert_true: expected true got false +FAIL MathML parsing ⊉ assert_true: expected true got false +FAIL MathML parsing ≁ assert_true: expected true got false +FAIL MathML parsing ≄ assert_true: expected true got false +FAIL MathML parsing ≇ assert_true: expected true got false +FAIL MathML parsing ≉ assert_true: expected true got false +FAIL MathML parsing ∤ assert_true: expected true got false +FAIL MathML parsing ∦ assert_true: expected true got false +FAIL MathML parsing ∦ assert_true: expected true got false +FAIL MathML parsing ⫽⃥ assert_true: expected true got false +FAIL MathML parsing ∂̸ assert_true: expected true got false +FAIL MathML parsing ⨔ assert_true: expected true got false +FAIL MathML parsing ⊀ assert_true: expected true got false +FAIL MathML parsing ⋠ assert_true: expected true got false +FAIL MathML parsing ⊀ assert_true: expected true got false +FAIL MathML parsing ⪯̸ assert_true: expected true got false +FAIL MathML parsing ⪯̸ assert_true: expected true got false +FAIL MathML parsing ⤳̸ assert_true: expected true got false +FAIL MathML parsing ↛ assert_true: expected true got false +FAIL MathML parsing ⇏ assert_true: expected true got false +FAIL MathML parsing ↝̸ assert_true: expected true got false +FAIL MathML parsing ↛ assert_true: expected true got false +FAIL MathML parsing ⇏ assert_true: expected true got false +FAIL MathML parsing ⋫ assert_true: expected true got false +FAIL MathML parsing ⋭ assert_true: expected true got false +FAIL MathML parsing ⊁ assert_true: expected true got false +FAIL MathML parsing ⋡ assert_true: expected true got false +FAIL MathML parsing ⪰̸ assert_true: expected true got false +FAIL MathML parsing 𝒩 assert_true: expected true got false +FAIL MathML parsing 𝓃 assert_true: expected true got false +FAIL MathML parsing ∤ assert_true: expected true got false +FAIL MathML parsing ∦ assert_true: expected true got false +FAIL MathML parsing ≁ assert_true: expected true got false +FAIL MathML parsing ≄ assert_true: expected true got false +FAIL MathML parsing ≄ assert_true: expected true got false +FAIL MathML parsing ∤ assert_true: expected true got false +FAIL MathML parsing ∦ assert_true: expected true got false +FAIL MathML parsing ⋢ assert_true: expected true got false +FAIL MathML parsing ⋣ assert_true: expected true got false +FAIL MathML parsing ⊄ assert_true: expected true got false +FAIL MathML parsing ⫅̸ assert_true: expected true got false +FAIL MathML parsing ⊈ assert_true: expected true got false +FAIL MathML parsing ⊂⃒ assert_true: expected true got false +FAIL MathML parsing ⊈ assert_true: expected true got false +FAIL MathML parsing ⫅̸ assert_true: expected true got false +FAIL MathML parsing ⊁ assert_true: expected true got false +FAIL MathML parsing ⪰̸ assert_true: expected true got false +FAIL MathML parsing ⊅ assert_true: expected true got false +FAIL MathML parsing ⫆̸ assert_true: expected true got false +FAIL MathML parsing ⊉ assert_true: expected true got false +FAIL MathML parsing ⊃⃒ assert_true: expected true got false +FAIL MathML parsing ⊉ assert_true: expected true got false +FAIL MathML parsing ⫆̸ assert_true: expected true got false +FAIL MathML parsing ≹ assert_true: expected true got false +FAIL MathML parsing Ñ assert_true: expected true got false +FAIL MathML parsing ñ assert_true: expected true got false +FAIL MathML parsing ≸ assert_true: expected true got false +FAIL MathML parsing ⋪ assert_true: expected true got false +FAIL MathML parsing ⋬ assert_true: expected true got false +FAIL MathML parsing ⋫ assert_true: expected true got false +FAIL MathML parsing ⋭ assert_true: expected true got false +FAIL MathML parsing Ν assert_true: expected true got false +FAIL MathML parsing ν assert_true: expected true got false +FAIL MathML parsing # assert_true: expected true got false +FAIL MathML parsing № assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing ≍⃒ assert_true: expected true got false +FAIL MathML parsing ⊬ assert_true: expected true got false +FAIL MathML parsing ⊭ assert_true: expected true got false +FAIL MathML parsing ⊮ assert_true: expected true got false +FAIL MathML parsing ⊯ assert_true: expected true got false +FAIL MathML parsing ≥⃒ assert_true: expected true got false +FAIL MathML parsing >⃒ assert_true: expected true got false +FAIL MathML parsing ⤄ assert_true: expected true got false +FAIL MathML parsing ⧞ assert_true: expected true got false +FAIL MathML parsing ⤂ assert_true: expected true got false +FAIL MathML parsing ≤⃒ assert_true: expected true got false +FAIL MathML parsing <⃒ assert_true: expected true got false +FAIL MathML parsing ⊴⃒ assert_true: expected true got false +FAIL MathML parsing ⤃ assert_true: expected true got false +FAIL MathML parsing ⊵⃒ assert_true: expected true got false +FAIL MathML parsing ∼⃒ assert_true: expected true got false +FAIL MathML parsing ⤣ assert_true: expected true got false +FAIL MathML parsing ↖ assert_true: expected true got false +FAIL MathML parsing ⇖ assert_true: expected true got false +FAIL MathML parsing ↖ assert_true: expected true got false +FAIL MathML parsing ⤧ assert_true: expected true got false +FAIL MathML parsing Ó assert_true: expected true got false +FAIL MathML parsing ó assert_true: expected true got false +FAIL MathML parsing ⊛ assert_true: expected true got false +FAIL MathML parsing Ô assert_true: expected true got false +FAIL MathML parsing ô assert_true: expected true got false +FAIL MathML parsing ⊚ assert_true: expected true got false +FAIL MathML parsing О assert_true: expected true got false +FAIL MathML parsing о assert_true: expected true got false +FAIL MathML parsing ⊝ assert_true: expected true got false +FAIL MathML parsing Ő assert_true: expected true got false +FAIL MathML parsing ő assert_true: expected true got false +FAIL MathML parsing ⨸ assert_true: expected true got false +FAIL MathML parsing ⊙ assert_true: expected true got false +FAIL MathML parsing ⦼ assert_true: expected true got false +FAIL MathML parsing Œ assert_true: expected true got false +FAIL MathML parsing œ assert_true: expected true got false +FAIL MathML parsing ⦿ assert_true: expected true got false +FAIL MathML parsing 𝔒 assert_true: expected true got false +FAIL MathML parsing 𝔬 assert_true: expected true got false +FAIL MathML parsing ˛ assert_true: expected true got false +FAIL MathML parsing Ò assert_true: expected true got false +FAIL MathML parsing ò assert_true: expected true got false +FAIL MathML parsing ⧁ assert_true: expected true got false +FAIL MathML parsing ⦵ assert_true: expected true got false +FAIL MathML parsing Ω assert_true: expected true got false +FAIL MathML parsing ∮ assert_true: expected true got false +FAIL MathML parsing ↺ assert_true: expected true got false +FAIL MathML parsing ⦾ assert_true: expected true got false +FAIL MathML parsing ⦻ assert_true: expected true got false +FAIL MathML parsing ‾ assert_true: expected true got false +FAIL MathML parsing ⧀ assert_true: expected true got false +FAIL MathML parsing Ō assert_true: expected true got false +FAIL MathML parsing ō assert_true: expected true got false +FAIL MathML parsing Ω assert_true: expected true got false +FAIL MathML parsing ω assert_true: expected true got false +FAIL MathML parsing Ο assert_true: expected true got false +FAIL MathML parsing ο assert_true: expected true got false +FAIL MathML parsing ⦶ assert_true: expected true got false +FAIL MathML parsing ⊖ assert_true: expected true got false +FAIL MathML parsing 𝕆 assert_true: expected true got false +FAIL MathML parsing 𝕠 assert_true: expected true got false +FAIL MathML parsing ⦷ assert_true: expected true got false +FAIL MathML parsing “ assert_true: expected true got false +FAIL MathML parsing ‘ assert_true: expected true got false +FAIL MathML parsing ⦹ assert_true: expected true got false +FAIL MathML parsing ⊕ assert_true: expected true got false +FAIL MathML parsing ↻ assert_true: expected true got false +FAIL MathML parsing ⩔ assert_true: expected true got false +FAIL MathML parsing ∨ assert_true: expected true got false +FAIL MathML parsing ⩝ assert_true: expected true got false +FAIL MathML parsing ℴ assert_true: expected true got false +FAIL MathML parsing ℴ assert_true: expected true got false +FAIL MathML parsing ª assert_true: expected true got false +FAIL MathML parsing º assert_true: expected true got false +FAIL MathML parsing ⊶ assert_true: expected true got false +FAIL MathML parsing ⩖ assert_true: expected true got false +FAIL MathML parsing ⩗ assert_true: expected true got false +FAIL MathML parsing ⩛ assert_true: expected true got false +FAIL MathML parsing Ⓢ assert_true: expected true got false +FAIL MathML parsing 𝒪 assert_true: expected true got false +FAIL MathML parsing ℴ assert_true: expected true got false +FAIL MathML parsing Ø assert_true: expected true got false +FAIL MathML parsing ø assert_true: expected true got false +FAIL MathML parsing ⊘ assert_true: expected true got false +FAIL MathML parsing Õ assert_true: expected true got false +FAIL MathML parsing õ assert_true: expected true got false +FAIL MathML parsing ⨶ assert_true: expected true got false +FAIL MathML parsing ⨷ assert_true: expected true got false +FAIL MathML parsing ⊗ assert_true: expected true got false +FAIL MathML parsing Ö assert_true: expected true got false +FAIL MathML parsing ö assert_true: expected true got false +FAIL MathML parsing ⌽ assert_true: expected true got false +FAIL MathML parsing ‾ assert_true: expected true got false +FAIL MathML parsing ⏞ assert_true: expected true got false +FAIL MathML parsing ⎴ assert_true: expected true got false +FAIL MathML parsing ⏜ assert_true: expected true got false +FAIL MathML parsing ¶ assert_true: expected true got false +FAIL MathML parsing ∥ assert_true: expected true got false +FAIL MathML parsing ∥ assert_true: expected true got false +FAIL MathML parsing ⫳ assert_true: expected true got false +FAIL MathML parsing ⫽ assert_true: expected true got false +FAIL MathML parsing ∂ assert_true: expected true got false +FAIL MathML parsing ∂ assert_true: expected true got false +FAIL MathML parsing П assert_true: expected true got false +FAIL MathML parsing п assert_true: expected true got false +FAIL MathML parsing % assert_true: expected true got false +FAIL MathML parsing . assert_true: expected true got false +FAIL MathML parsing ‰ assert_true: expected true got false +FAIL MathML parsing ⊥ assert_true: expected true got false +FAIL MathML parsing ‱ assert_true: expected true got false +FAIL MathML parsing 𝔓 assert_true: expected true got false +FAIL MathML parsing 𝔭 assert_true: expected true got false +FAIL MathML parsing Φ assert_true: expected true got false +FAIL MathML parsing φ assert_true: expected true got false +FAIL MathML parsing ϕ assert_true: expected true got false +FAIL MathML parsing ℳ assert_true: expected true got false +FAIL MathML parsing ☎ assert_true: expected true got false +FAIL MathML parsing Π assert_true: expected true got false +FAIL MathML parsing π assert_true: expected true got false +FAIL MathML parsing ⋔ assert_true: expected true got false +FAIL MathML parsing ϖ assert_true: expected true got false +FAIL MathML parsing ℏ assert_true: expected true got false +FAIL MathML parsing ℎ assert_true: expected true got false +FAIL MathML parsing ℏ assert_true: expected true got false +FAIL MathML parsing ⨣ assert_true: expected true got false +FAIL MathML parsing ⊞ assert_true: expected true got false +FAIL MathML parsing ⨢ assert_true: expected true got false +FAIL MathML parsing + assert_true: expected true got false +FAIL MathML parsing ∔ assert_true: expected true got false +FAIL MathML parsing ⨥ assert_true: expected true got false +FAIL MathML parsing ⩲ assert_true: expected true got false +FAIL MathML parsing ± assert_true: expected true got false +FAIL MathML parsing ± assert_true: expected true got false +FAIL MathML parsing ⨦ assert_true: expected true got false +FAIL MathML parsing ⨧ assert_true: expected true got false +FAIL MathML parsing ± assert_true: expected true got false +FAIL MathML parsing ℌ assert_true: expected true got false +FAIL MathML parsing ⨕ assert_true: expected true got false +FAIL MathML parsing 𝕡 assert_true: expected true got false +FAIL MathML parsing ℙ assert_true: expected true got false +FAIL MathML parsing £ assert_true: expected true got false +FAIL MathML parsing ⪷ assert_true: expected true got false +FAIL MathML parsing ⪻ assert_true: expected true got false +FAIL MathML parsing ≺ assert_true: expected true got false +FAIL MathML parsing ≼ assert_true: expected true got false +FAIL MathML parsing ⪷ assert_true: expected true got false +FAIL MathML parsing ≺ assert_true: expected true got false +FAIL MathML parsing ≼ assert_true: expected true got false +FAIL MathML parsing ≺ assert_true: expected true got false +FAIL MathML parsing ⪯ assert_true: expected true got false +FAIL MathML parsing ≼ assert_true: expected true got false +FAIL MathML parsing ≾ assert_true: expected true got false +FAIL MathML parsing ⪯ assert_true: expected true got false +FAIL MathML parsing ⪹ assert_true: expected true got false +FAIL MathML parsing ⪵ assert_true: expected true got false +FAIL MathML parsing ⋨ assert_true: expected true got false +FAIL MathML parsing ⪯ assert_true: expected true got false +FAIL MathML parsing ⪳ assert_true: expected true got false +FAIL MathML parsing ≾ assert_true: expected true got false +FAIL MathML parsing ′ assert_true: expected true got false +FAIL MathML parsing ″ assert_true: expected true got false +FAIL MathML parsing ℙ assert_true: expected true got false +FAIL MathML parsing ⪹ assert_true: expected true got false +FAIL MathML parsing ⪵ assert_true: expected true got false +FAIL MathML parsing ⋨ assert_true: expected true got false +FAIL MathML parsing ∏ assert_true: expected true got false +FAIL MathML parsing ∏ assert_true: expected true got false +FAIL MathML parsing ⌮ assert_true: expected true got false +FAIL MathML parsing ⌒ assert_true: expected true got false +FAIL MathML parsing ⌓ assert_true: expected true got false +FAIL MathML parsing ∝ assert_true: expected true got false +FAIL MathML parsing ∝ assert_true: expected true got false +FAIL MathML parsing ∷ assert_true: expected true got false +FAIL MathML parsing ∝ assert_true: expected true got false +FAIL MathML parsing ≾ assert_true: expected true got false +FAIL MathML parsing ⊰ assert_true: expected true got false +FAIL MathML parsing 𝒫 assert_true: expected true got false +FAIL MathML parsing 𝓅 assert_true: expected true got false +FAIL MathML parsing Ψ assert_true: expected true got false +FAIL MathML parsing ψ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing 𝔔 assert_true: expected true got false +FAIL MathML parsing 𝔮 assert_true: expected true got false +FAIL MathML parsing ⨌ assert_true: expected true got false +FAIL MathML parsing 𝕢 assert_true: expected true got false +FAIL MathML parsing ℚ assert_true: expected true got false +FAIL MathML parsing ⁗ assert_true: expected true got false +FAIL MathML parsing 𝒬 assert_true: expected true got false +FAIL MathML parsing 𝓆 assert_true: expected true got false +FAIL MathML parsing ℍ assert_true: expected true got false +FAIL MathML parsing ⨖ assert_true: expected true got false +FAIL MathML parsing ? assert_true: expected true got false +FAIL MathML parsing ≟ assert_true: expected true got false +PASS MathML parsing " +FAIL MathML parsing " assert_true: expected true got false +FAIL MathML parsing ⇛ assert_true: expected true got false +FAIL MathML parsing ∽̱ assert_true: expected true got false +FAIL MathML parsing Ŕ assert_true: expected true got false +FAIL MathML parsing ŕ assert_true: expected true got false +FAIL MathML parsing √ assert_true: expected true got false +FAIL MathML parsing ⦳ assert_true: expected true got false +FAIL MathML parsing ⟩ assert_true: expected true got false +FAIL MathML parsing ⟫ assert_true: expected true got false +FAIL MathML parsing ⦒ assert_true: expected true got false +FAIL MathML parsing ⦥ assert_true: expected true got false +FAIL MathML parsing ⟩ assert_true: expected true got false +FAIL MathML parsing » assert_true: expected true got false +FAIL MathML parsing ⥵ assert_true: expected true got false +FAIL MathML parsing ⇥ assert_true: expected true got false +FAIL MathML parsing ⤠ assert_true: expected true got false +FAIL MathML parsing ⤳ assert_true: expected true got false +FAIL MathML parsing → assert_true: expected true got false +FAIL MathML parsing ↠ assert_true: expected true got false +FAIL MathML parsing ⇒ assert_true: expected true got false +FAIL MathML parsing ⤞ assert_true: expected true got false +FAIL MathML parsing ↪ assert_true: expected true got false +FAIL MathML parsing ↬ assert_true: expected true got false +FAIL MathML parsing ⥅ assert_true: expected true got false +FAIL MathML parsing ⥴ assert_true: expected true got false +FAIL MathML parsing ⤖ assert_true: expected true got false +FAIL MathML parsing ↣ assert_true: expected true got false +FAIL MathML parsing ↝ assert_true: expected true got false +FAIL MathML parsing ⤚ assert_true: expected true got false +FAIL MathML parsing ⤜ assert_true: expected true got false +FAIL MathML parsing ∶ assert_true: expected true got false +FAIL MathML parsing ℚ assert_true: expected true got false +FAIL MathML parsing ⤍ assert_true: expected true got false +FAIL MathML parsing ⤏ assert_true: expected true got false +FAIL MathML parsing ⤐ assert_true: expected true got false +FAIL MathML parsing ❳ assert_true: expected true got false +FAIL MathML parsing } assert_true: expected true got false +FAIL MathML parsing ] assert_true: expected true got false +FAIL MathML parsing ⦌ assert_true: expected true got false +FAIL MathML parsing ⦎ assert_true: expected true got false +FAIL MathML parsing ⦐ assert_true: expected true got false +FAIL MathML parsing Ř assert_true: expected true got false +FAIL MathML parsing ř assert_true: expected true got false +FAIL MathML parsing Ŗ assert_true: expected true got false +FAIL MathML parsing ŗ assert_true: expected true got false +FAIL MathML parsing ⌉ assert_true: expected true got false +FAIL MathML parsing } assert_true: expected true got false +FAIL MathML parsing Р assert_true: expected true got false +FAIL MathML parsing р assert_true: expected true got false +FAIL MathML parsing ⤷ assert_true: expected true got false +FAIL MathML parsing ⥩ assert_true: expected true got false +FAIL MathML parsing ” assert_true: expected true got false +FAIL MathML parsing ” assert_true: expected true got false +FAIL MathML parsing ↳ assert_true: expected true got false +FAIL MathML parsing ℜ assert_true: expected true got false +FAIL MathML parsing ℛ assert_true: expected true got false +FAIL MathML parsing ℜ assert_true: expected true got false +FAIL MathML parsing ℝ assert_true: expected true got false +FAIL MathML parsing ℜ assert_true: expected true got false +FAIL MathML parsing ▭ assert_true: expected true got false +FAIL MathML parsing ® assert_true: expected true got false +FAIL MathML parsing ® assert_true: expected true got false +FAIL MathML parsing ∋ assert_true: expected true got false +FAIL MathML parsing ⇋ assert_true: expected true got false +FAIL MathML parsing ⥯ assert_true: expected true got false +FAIL MathML parsing ⥽ assert_true: expected true got false +FAIL MathML parsing ⌋ assert_true: expected true got false +FAIL MathML parsing 𝔯 assert_true: expected true got false +FAIL MathML parsing ℜ assert_true: expected true got false +FAIL MathML parsing ⥤ assert_true: expected true got false +FAIL MathML parsing ⇁ assert_true: expected true got false +FAIL MathML parsing ⇀ assert_true: expected true got false +FAIL MathML parsing ⥬ assert_true: expected true got false +FAIL MathML parsing Ρ assert_true: expected true got false +FAIL MathML parsing ρ assert_true: expected true got false +FAIL MathML parsing ϱ assert_true: expected true got false +FAIL MathML parsing ⟩ assert_true: expected true got false +FAIL MathML parsing ⇥ assert_true: expected true got false +FAIL MathML parsing → assert_true: expected true got false +FAIL MathML parsing → assert_true: expected true got false +FAIL MathML parsing ⇒ assert_true: expected true got false +FAIL MathML parsing ⇄ assert_true: expected true got false +FAIL MathML parsing ↣ assert_true: expected true got false +FAIL MathML parsing ⌉ assert_true: expected true got false +FAIL MathML parsing ⟧ assert_true: expected true got false +FAIL MathML parsing ⥝ assert_true: expected true got false +FAIL MathML parsing ⥕ assert_true: expected true got false +FAIL MathML parsing ⇂ assert_true: expected true got false +FAIL MathML parsing ⌋ assert_true: expected true got false +FAIL MathML parsing ⇁ assert_true: expected true got false +FAIL MathML parsing ⇀ assert_true: expected true got false +FAIL MathML parsing ⇄ assert_true: expected true got false +FAIL MathML parsing ⇌ assert_true: expected true got false +FAIL MathML parsing ⇉ assert_true: expected true got false +FAIL MathML parsing ↝ assert_true: expected true got false +FAIL MathML parsing ↦ assert_true: expected true got false +FAIL MathML parsing ⊢ assert_true: expected true got false +FAIL MathML parsing ⥛ assert_true: expected true got false +FAIL MathML parsing ⋌ assert_true: expected true got false +FAIL MathML parsing ⧐ assert_true: expected true got false +FAIL MathML parsing ⊳ assert_true: expected true got false +FAIL MathML parsing ⊵ assert_true: expected true got false +FAIL MathML parsing ⥏ assert_true: expected true got false +FAIL MathML parsing ⥜ assert_true: expected true got false +FAIL MathML parsing ⥔ assert_true: expected true got false +FAIL MathML parsing ↾ assert_true: expected true got false +FAIL MathML parsing ⥓ assert_true: expected true got false +FAIL MathML parsing ⇀ assert_true: expected true got false +FAIL MathML parsing ˚ assert_true: expected true got false +FAIL MathML parsing ≓ assert_true: expected true got false +FAIL MathML parsing ⇄ assert_true: expected true got false +FAIL MathML parsing ⇌ assert_true: expected true got false +FAIL MathML parsing ‏ assert_true: expected true got false +FAIL MathML parsing ⎱ assert_true: expected true got false +FAIL MathML parsing ⎱ assert_true: expected true got false +FAIL MathML parsing ⫮ assert_true: expected true got false +FAIL MathML parsing ⟭ assert_true: expected true got false +FAIL MathML parsing ⇾ assert_true: expected true got false +FAIL MathML parsing ⟧ assert_true: expected true got false +FAIL MathML parsing ⦆ assert_true: expected true got false +FAIL MathML parsing 𝕣 assert_true: expected true got false +FAIL MathML parsing ℝ assert_true: expected true got false +FAIL MathML parsing ⨮ assert_true: expected true got false +FAIL MathML parsing ⨵ assert_true: expected true got false +FAIL MathML parsing ⥰ assert_true: expected true got false +FAIL MathML parsing ) assert_true: expected true got false +FAIL MathML parsing ⦔ assert_true: expected true got false +FAIL MathML parsing ⨒ assert_true: expected true got false +FAIL MathML parsing ⇉ assert_true: expected true got false +FAIL MathML parsing ⇛ assert_true: expected true got false +FAIL MathML parsing › assert_true: expected true got false +FAIL MathML parsing 𝓇 assert_true: expected true got false +FAIL MathML parsing ℛ assert_true: expected true got false +FAIL MathML parsing ↱ assert_true: expected true got false +FAIL MathML parsing ↱ assert_true: expected true got false +FAIL MathML parsing ] assert_true: expected true got false +FAIL MathML parsing ’ assert_true: expected true got false +FAIL MathML parsing ’ assert_true: expected true got false +FAIL MathML parsing ⋌ assert_true: expected true got false +FAIL MathML parsing ⋊ assert_true: expected true got false +FAIL MathML parsing ▹ assert_true: expected true got false +FAIL MathML parsing ⊵ assert_true: expected true got false +FAIL MathML parsing ▸ assert_true: expected true got false +FAIL MathML parsing ⧎ assert_true: expected true got false +FAIL MathML parsing ⧴ assert_true: expected true got false +FAIL MathML parsing ⥨ assert_true: expected true got false +FAIL MathML parsing ℞ assert_true: expected true got false +FAIL MathML parsing Ś assert_true: expected true got false +FAIL MathML parsing ś assert_true: expected true got false +FAIL MathML parsing ‚ assert_true: expected true got false +FAIL MathML parsing ⪸ assert_true: expected true got false +FAIL MathML parsing Š assert_true: expected true got false +FAIL MathML parsing š assert_true: expected true got false +FAIL MathML parsing ⪼ assert_true: expected true got false +FAIL MathML parsing ≻ assert_true: expected true got false +FAIL MathML parsing ≽ assert_true: expected true got false +FAIL MathML parsing ⪰ assert_true: expected true got false +FAIL MathML parsing ⪴ assert_true: expected true got false +FAIL MathML parsing Ş assert_true: expected true got false +FAIL MathML parsing ş assert_true: expected true got false +FAIL MathML parsing Ŝ assert_true: expected true got false +FAIL MathML parsing ŝ assert_true: expected true got false +FAIL MathML parsing ⪺ assert_true: expected true got false +FAIL MathML parsing ⪶ assert_true: expected true got false +FAIL MathML parsing ⋩ assert_true: expected true got false +FAIL MathML parsing ⨓ assert_true: expected true got false +FAIL MathML parsing ≿ assert_true: expected true got false +FAIL MathML parsing С assert_true: expected true got false +FAIL MathML parsing с assert_true: expected true got false +FAIL MathML parsing ⊡ assert_true: expected true got false +FAIL MathML parsing ⋅ assert_true: expected true got false +FAIL MathML parsing ⩦ assert_true: expected true got false +FAIL MathML parsing ⤥ assert_true: expected true got false +FAIL MathML parsing ↘ assert_true: expected true got false +FAIL MathML parsing ⇘ assert_true: expected true got false +FAIL MathML parsing ↘ assert_true: expected true got false +FAIL MathML parsing § assert_true: expected true got false +FAIL MathML parsing ; assert_true: expected true got false +FAIL MathML parsing ⤩ assert_true: expected true got false +FAIL MathML parsing ∖ assert_true: expected true got false +FAIL MathML parsing ∖ assert_true: expected true got false +FAIL MathML parsing ✶ assert_true: expected true got false +FAIL MathML parsing 𝔖 assert_true: expected true got false +FAIL MathML parsing 𝔰 assert_true: expected true got false +FAIL MathML parsing ⌢ assert_true: expected true got false +FAIL MathML parsing ♯ assert_true: expected true got false +FAIL MathML parsing Щ assert_true: expected true got false +FAIL MathML parsing щ assert_true: expected true got false +FAIL MathML parsing Ш assert_true: expected true got false +FAIL MathML parsing ш assert_true: expected true got false +FAIL MathML parsing ↓ assert_true: expected true got false +FAIL MathML parsing ← assert_true: expected true got false +FAIL MathML parsing ∣ assert_true: expected true got false +FAIL MathML parsing ∥ assert_true: expected true got false +FAIL MathML parsing → assert_true: expected true got false +FAIL MathML parsing ↑ assert_true: expected true got false +FAIL MathML parsing ­ assert_true: expected true got false +FAIL MathML parsing Σ assert_true: expected true got false +FAIL MathML parsing σ assert_true: expected true got false +FAIL MathML parsing ς assert_true: expected true got false +FAIL MathML parsing ς assert_true: expected true got false +FAIL MathML parsing ∼ assert_true: expected true got false +FAIL MathML parsing ⩪ assert_true: expected true got false +FAIL MathML parsing ≃ assert_true: expected true got false +FAIL MathML parsing ≃ assert_true: expected true got false +FAIL MathML parsing ⪞ assert_true: expected true got false +FAIL MathML parsing ⪠ assert_true: expected true got false +FAIL MathML parsing ⪝ assert_true: expected true got false +FAIL MathML parsing ⪟ assert_true: expected true got false +FAIL MathML parsing ≆ assert_true: expected true got false +FAIL MathML parsing ⨤ assert_true: expected true got false +FAIL MathML parsing ⥲ assert_true: expected true got false +FAIL MathML parsing ← assert_true: expected true got false +FAIL MathML parsing ∘ assert_true: expected true got false +FAIL MathML parsing ∖ assert_true: expected true got false +FAIL MathML parsing ⨳ assert_true: expected true got false +FAIL MathML parsing ⧤ assert_true: expected true got false +FAIL MathML parsing ∣ assert_true: expected true got false +FAIL MathML parsing ⌣ assert_true: expected true got false +FAIL MathML parsing ⪪ assert_true: expected true got false +FAIL MathML parsing ⪬ assert_true: expected true got false +FAIL MathML parsing ⪬︀ assert_true: expected true got false +FAIL MathML parsing Ь assert_true: expected true got false +FAIL MathML parsing ь assert_true: expected true got false +FAIL MathML parsing ⌿ assert_true: expected true got false +FAIL MathML parsing ⧄ assert_true: expected true got false +FAIL MathML parsing / assert_true: expected true got false +FAIL MathML parsing 𝕊 assert_true: expected true got false +FAIL MathML parsing 𝕤 assert_true: expected true got false +FAIL MathML parsing ♠ assert_true: expected true got false +FAIL MathML parsing ♠ assert_true: expected true got false +FAIL MathML parsing ∥ assert_true: expected true got false +FAIL MathML parsing ⊓ assert_true: expected true got false +FAIL MathML parsing ⊓︀ assert_true: expected true got false +FAIL MathML parsing ⊔ assert_true: expected true got false +FAIL MathML parsing ⊔︀ assert_true: expected true got false +FAIL MathML parsing √ assert_true: expected true got false +FAIL MathML parsing ⊏ assert_true: expected true got false +FAIL MathML parsing ⊑ assert_true: expected true got false +FAIL MathML parsing ⊏ assert_true: expected true got false +FAIL MathML parsing ⊑ assert_true: expected true got false +FAIL MathML parsing ⊐ assert_true: expected true got false +FAIL MathML parsing ⊒ assert_true: expected true got false +FAIL MathML parsing ⊐ assert_true: expected true got false +FAIL MathML parsing ⊒ assert_true: expected true got false +FAIL MathML parsing □ assert_true: expected true got false +FAIL MathML parsing □ assert_true: expected true got false +FAIL MathML parsing ⊓ assert_true: expected true got false +FAIL MathML parsing ⊏ assert_true: expected true got false +FAIL MathML parsing ⊑ assert_true: expected true got false +FAIL MathML parsing ⊐ assert_true: expected true got false +FAIL MathML parsing ⊒ assert_true: expected true got false +FAIL MathML parsing ⊔ assert_true: expected true got false +FAIL MathML parsing ▪ assert_true: expected true got false +FAIL MathML parsing □ assert_true: expected true got false +FAIL MathML parsing ▪ assert_true: expected true got false +FAIL MathML parsing → assert_true: expected true got false +FAIL MathML parsing 𝒮 assert_true: expected true got false +FAIL MathML parsing 𝓈 assert_true: expected true got false +FAIL MathML parsing ∖ assert_true: expected true got false +FAIL MathML parsing ⌣ assert_true: expected true got false +FAIL MathML parsing ⋆ assert_true: expected true got false +FAIL MathML parsing ⋆ assert_true: expected true got false +FAIL MathML parsing ☆ assert_true: expected true got false +FAIL MathML parsing ★ assert_true: expected true got false +FAIL MathML parsing ϵ assert_true: expected true got false +FAIL MathML parsing ϕ assert_true: expected true got false +FAIL MathML parsing ¯ assert_true: expected true got false +FAIL MathML parsing ⊂ assert_true: expected true got false +FAIL MathML parsing ⋐ assert_true: expected true got false +FAIL MathML parsing ⪽ assert_true: expected true got false +FAIL MathML parsing ⫅ assert_true: expected true got false +FAIL MathML parsing ⊆ assert_true: expected true got false +FAIL MathML parsing ⫃ assert_true: expected true got false +FAIL MathML parsing ⫁ assert_true: expected true got false +FAIL MathML parsing ⫋ assert_true: expected true got false +FAIL MathML parsing ⊊ assert_true: expected true got false +FAIL MathML parsing ⪿ assert_true: expected true got false +FAIL MathML parsing ⥹ assert_true: expected true got false +FAIL MathML parsing ⊂ assert_true: expected true got false +FAIL MathML parsing ⋐ assert_true: expected true got false +FAIL MathML parsing ⊆ assert_true: expected true got false +FAIL MathML parsing ⫅ assert_true: expected true got false +FAIL MathML parsing ⊆ assert_true: expected true got false +FAIL MathML parsing ⊊ assert_true: expected true got false +FAIL MathML parsing ⫋ assert_true: expected true got false +FAIL MathML parsing ⫇ assert_true: expected true got false +FAIL MathML parsing ⫕ assert_true: expected true got false +FAIL MathML parsing ⫓ assert_true: expected true got false +FAIL MathML parsing ⪸ assert_true: expected true got false +FAIL MathML parsing ≻ assert_true: expected true got false +FAIL MathML parsing ≽ assert_true: expected true got false +FAIL MathML parsing ≻ assert_true: expected true got false +FAIL MathML parsing ⪰ assert_true: expected true got false +FAIL MathML parsing ≽ assert_true: expected true got false +FAIL MathML parsing ≿ assert_true: expected true got false +FAIL MathML parsing ⪰ assert_true: expected true got false +FAIL MathML parsing ⪺ assert_true: expected true got false +FAIL MathML parsing ⪶ assert_true: expected true got false +FAIL MathML parsing ⋩ assert_true: expected true got false +FAIL MathML parsing ≿ assert_true: expected true got false +FAIL MathML parsing ∋ assert_true: expected true got false +FAIL MathML parsing ∑ assert_true: expected true got false +FAIL MathML parsing ∑ assert_true: expected true got false +FAIL MathML parsing ♪ assert_true: expected true got false +FAIL MathML parsing ¹ assert_true: expected true got false +FAIL MathML parsing ² assert_true: expected true got false +FAIL MathML parsing ³ assert_true: expected true got false +FAIL MathML parsing ⊃ assert_true: expected true got false +FAIL MathML parsing ⋑ assert_true: expected true got false +FAIL MathML parsing ⪾ assert_true: expected true got false +FAIL MathML parsing ⫘ assert_true: expected true got false +FAIL MathML parsing ⫆ assert_true: expected true got false +FAIL MathML parsing ⊇ assert_true: expected true got false +FAIL MathML parsing ⫄ assert_true: expected true got false +FAIL MathML parsing ⊃ assert_true: expected true got false +FAIL MathML parsing ⊇ assert_true: expected true got false +FAIL MathML parsing ⟉ assert_true: expected true got false +FAIL MathML parsing ⫗ assert_true: expected true got false +FAIL MathML parsing ⥻ assert_true: expected true got false +FAIL MathML parsing ⫂ assert_true: expected true got false +FAIL MathML parsing ⫌ assert_true: expected true got false +FAIL MathML parsing ⊋ assert_true: expected true got false +FAIL MathML parsing ⫀ assert_true: expected true got false +FAIL MathML parsing ⊃ assert_true: expected true got false +FAIL MathML parsing ⋑ assert_true: expected true got false +FAIL MathML parsing ⊇ assert_true: expected true got false +FAIL MathML parsing ⫆ assert_true: expected true got false +FAIL MathML parsing ⊋ assert_true: expected true got false +FAIL MathML parsing ⫌ assert_true: expected true got false +FAIL MathML parsing ⫈ assert_true: expected true got false +FAIL MathML parsing ⫔ assert_true: expected true got false +FAIL MathML parsing ⫖ assert_true: expected true got false +FAIL MathML parsing ⤦ assert_true: expected true got false +FAIL MathML parsing ↙ assert_true: expected true got false +FAIL MathML parsing ⇙ assert_true: expected true got false +FAIL MathML parsing ↙ assert_true: expected true got false +FAIL MathML parsing ⤪ assert_true: expected true got false +FAIL MathML parsing ß assert_true: expected true got false +FAIL MathML parsing 	 assert_true: expected true got false +FAIL MathML parsing ⌖ assert_true: expected true got false +FAIL MathML parsing Τ assert_true: expected true got false +FAIL MathML parsing τ assert_true: expected true got false +FAIL MathML parsing ⎴ assert_true: expected true got false +FAIL MathML parsing Ť assert_true: expected true got false +FAIL MathML parsing ť assert_true: expected true got false +FAIL MathML parsing Ţ assert_true: expected true got false +FAIL MathML parsing ţ assert_true: expected true got false +FAIL MathML parsing Т assert_true: expected true got false +FAIL MathML parsing т assert_true: expected true got false +FAIL MathML parsing ⃛ assert_true: expected true got false +FAIL MathML parsing ⌕ assert_true: expected true got false +FAIL MathML parsing 𝔗 assert_true: expected true got false +FAIL MathML parsing 𝔱 assert_true: expected true got false +FAIL MathML parsing ∴ assert_true: expected true got false +FAIL MathML parsing ∴ assert_true: expected true got false +FAIL MathML parsing ∴ assert_true: expected true got false +FAIL MathML parsing Θ assert_true: expected true got false +FAIL MathML parsing θ assert_true: expected true got false +FAIL MathML parsing ϑ assert_true: expected true got false +FAIL MathML parsing ϑ assert_true: expected true got false +FAIL MathML parsing ≈ assert_true: expected true got false +FAIL MathML parsing ∼ assert_true: expected true got false +FAIL MathML parsing    assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing ≈ assert_true: expected true got false +FAIL MathML parsing ∼ assert_true: expected true got false +FAIL MathML parsing Þ assert_true: expected true got false +FAIL MathML parsing þ assert_true: expected true got false +FAIL MathML parsing ˜ assert_true: expected true got false +FAIL MathML parsing ∼ assert_true: expected true got false +FAIL MathML parsing ≃ assert_true: expected true got false +FAIL MathML parsing ≅ assert_true: expected true got false +FAIL MathML parsing ≈ assert_true: expected true got false +FAIL MathML parsing ⨱ assert_true: expected true got false +FAIL MathML parsing ⊠ assert_true: expected true got false +FAIL MathML parsing × assert_true: expected true got false +FAIL MathML parsing ⨰ assert_true: expected true got false +FAIL MathML parsing ∭ assert_true: expected true got false +FAIL MathML parsing ⤨ assert_true: expected true got false +FAIL MathML parsing ⌶ assert_true: expected true got false +FAIL MathML parsing ⫱ assert_true: expected true got false +FAIL MathML parsing ⊤ assert_true: expected true got false +FAIL MathML parsing 𝕋 assert_true: expected true got false +FAIL MathML parsing 𝕥 assert_true: expected true got false +FAIL MathML parsing ⫚ assert_true: expected true got false +FAIL MathML parsing ⤩ assert_true: expected true got false +FAIL MathML parsing ‴ assert_true: expected true got false +FAIL MathML parsing ™ assert_true: expected true got false +FAIL MathML parsing ™ assert_true: expected true got false +FAIL MathML parsing ▵ assert_true: expected true got false +FAIL MathML parsing ▿ assert_true: expected true got false +FAIL MathML parsing ◃ assert_true: expected true got false +FAIL MathML parsing ⊴ assert_true: expected true got false +FAIL MathML parsing ≜ assert_true: expected true got false +FAIL MathML parsing ▹ assert_true: expected true got false +FAIL MathML parsing ⊵ assert_true: expected true got false +FAIL MathML parsing ◬ assert_true: expected true got false +FAIL MathML parsing ≜ assert_true: expected true got false +FAIL MathML parsing ⨺ assert_true: expected true got false +FAIL MathML parsing ⃛ assert_true: expected true got false +FAIL MathML parsing ⨹ assert_true: expected true got false +FAIL MathML parsing ⧍ assert_true: expected true got false +FAIL MathML parsing ⨻ assert_true: expected true got false +FAIL MathML parsing ⏢ assert_true: expected true got false +FAIL MathML parsing 𝒯 assert_true: expected true got false +FAIL MathML parsing 𝓉 assert_true: expected true got false +FAIL MathML parsing Ц assert_true: expected true got false +FAIL MathML parsing ц assert_true: expected true got false +FAIL MathML parsing Ћ assert_true: expected true got false +FAIL MathML parsing ћ assert_true: expected true got false +FAIL MathML parsing Ŧ assert_true: expected true got false +FAIL MathML parsing ŧ assert_true: expected true got false +FAIL MathML parsing ≬ assert_true: expected true got false +FAIL MathML parsing ↞ assert_true: expected true got false +FAIL MathML parsing ↠ assert_true: expected true got false +FAIL MathML parsing Ú assert_true: expected true got false +FAIL MathML parsing ú assert_true: expected true got false +FAIL MathML parsing ↑ assert_true: expected true got false +FAIL MathML parsing ↟ assert_true: expected true got false +FAIL MathML parsing ⇑ assert_true: expected true got false +FAIL MathML parsing ⥉ assert_true: expected true got false +FAIL MathML parsing Ў assert_true: expected true got false +FAIL MathML parsing ў assert_true: expected true got false +FAIL MathML parsing Ŭ assert_true: expected true got false +FAIL MathML parsing ŭ assert_true: expected true got false +FAIL MathML parsing Û assert_true: expected true got false +FAIL MathML parsing û assert_true: expected true got false +FAIL MathML parsing У assert_true: expected true got false +FAIL MathML parsing у assert_true: expected true got false +FAIL MathML parsing ⇅ assert_true: expected true got false +FAIL MathML parsing Ű assert_true: expected true got false +FAIL MathML parsing ű assert_true: expected true got false +FAIL MathML parsing ⥮ assert_true: expected true got false +FAIL MathML parsing ⥾ assert_true: expected true got false +FAIL MathML parsing 𝔘 assert_true: expected true got false +FAIL MathML parsing 𝔲 assert_true: expected true got false +FAIL MathML parsing Ù assert_true: expected true got false +FAIL MathML parsing ù assert_true: expected true got false +FAIL MathML parsing ⥣ assert_true: expected true got false +FAIL MathML parsing ↿ assert_true: expected true got false +FAIL MathML parsing ↾ assert_true: expected true got false +FAIL MathML parsing ▀ assert_true: expected true got false +FAIL MathML parsing ⌜ assert_true: expected true got false +FAIL MathML parsing ⌜ assert_true: expected true got false +FAIL MathML parsing ⌏ assert_true: expected true got false +FAIL MathML parsing ◸ assert_true: expected true got false +FAIL MathML parsing Ū assert_true: expected true got false +FAIL MathML parsing ū assert_true: expected true got false +FAIL MathML parsing ¨ assert_true: expected true got false +FAIL MathML parsing _ assert_true: expected true got false +FAIL MathML parsing ⏟ assert_true: expected true got false +FAIL MathML parsing ⎵ assert_true: expected true got false +FAIL MathML parsing ⏝ assert_true: expected true got false +FAIL MathML parsing ⋃ assert_true: expected true got false +FAIL MathML parsing ⊎ assert_true: expected true got false +FAIL MathML parsing Ų assert_true: expected true got false +FAIL MathML parsing ų assert_true: expected true got false +FAIL MathML parsing 𝕌 assert_true: expected true got false +FAIL MathML parsing 𝕦 assert_true: expected true got false +FAIL MathML parsing ⤒ assert_true: expected true got false +FAIL MathML parsing ↑ assert_true: expected true got false +FAIL MathML parsing ↑ assert_true: expected true got false +FAIL MathML parsing ⇑ assert_true: expected true got false +FAIL MathML parsing ⇅ assert_true: expected true got false +FAIL MathML parsing ↕ assert_true: expected true got false +FAIL MathML parsing ↕ assert_true: expected true got false +FAIL MathML parsing ⇕ assert_true: expected true got false +FAIL MathML parsing ⥮ assert_true: expected true got false +FAIL MathML parsing ↿ assert_true: expected true got false +FAIL MathML parsing ↾ assert_true: expected true got false +FAIL MathML parsing ⊎ assert_true: expected true got false +FAIL MathML parsing ↖ assert_true: expected true got false +FAIL MathML parsing ↗ assert_true: expected true got false +FAIL MathML parsing υ assert_true: expected true got false +FAIL MathML parsing ϒ assert_true: expected true got false +FAIL MathML parsing ϒ assert_true: expected true got false +FAIL MathML parsing Υ assert_true: expected true got false +FAIL MathML parsing υ assert_true: expected true got false +FAIL MathML parsing ↥ assert_true: expected true got false +FAIL MathML parsing ⊥ assert_true: expected true got false +FAIL MathML parsing ⇈ assert_true: expected true got false +FAIL MathML parsing ⌝ assert_true: expected true got false +FAIL MathML parsing ⌝ assert_true: expected true got false +FAIL MathML parsing ⌎ assert_true: expected true got false +FAIL MathML parsing Ů assert_true: expected true got false +FAIL MathML parsing ů assert_true: expected true got false +FAIL MathML parsing ◹ assert_true: expected true got false +FAIL MathML parsing 𝒰 assert_true: expected true got false +FAIL MathML parsing 𝓊 assert_true: expected true got false +FAIL MathML parsing ⋰ assert_true: expected true got false +FAIL MathML parsing Ũ assert_true: expected true got false +FAIL MathML parsing ũ assert_true: expected true got false +FAIL MathML parsing ▵ assert_true: expected true got false +FAIL MathML parsing ▴ assert_true: expected true got false +FAIL MathML parsing ⇈ assert_true: expected true got false +FAIL MathML parsing Ü assert_true: expected true got false +FAIL MathML parsing ü assert_true: expected true got false +FAIL MathML parsing ⦧ assert_true: expected true got false +FAIL MathML parsing ⦜ assert_true: expected true got false +FAIL MathML parsing ϵ assert_true: expected true got false +FAIL MathML parsing ϰ assert_true: expected true got false +FAIL MathML parsing ∅ assert_true: expected true got false +FAIL MathML parsing ϕ assert_true: expected true got false +FAIL MathML parsing ϖ assert_true: expected true got false +FAIL MathML parsing ∝ assert_true: expected true got false +FAIL MathML parsing ↕ assert_true: expected true got false +FAIL MathML parsing ⇕ assert_true: expected true got false +FAIL MathML parsing ϱ assert_true: expected true got false +FAIL MathML parsing ς assert_true: expected true got false +FAIL MathML parsing ⊊︀ assert_true: expected true got false +FAIL MathML parsing ⫋︀ assert_true: expected true got false +FAIL MathML parsing ⊋︀ assert_true: expected true got false +FAIL MathML parsing ⫌︀ assert_true: expected true got false +FAIL MathML parsing ϑ assert_true: expected true got false +FAIL MathML parsing ⊲ assert_true: expected true got false +FAIL MathML parsing ⊳ assert_true: expected true got false +FAIL MathML parsing ⫨ assert_true: expected true got false +FAIL MathML parsing ⫫ assert_true: expected true got false +FAIL MathML parsing ⫩ assert_true: expected true got false +FAIL MathML parsing В assert_true: expected true got false +FAIL MathML parsing в assert_true: expected true got false +FAIL MathML parsing ⊢ assert_true: expected true got false +FAIL MathML parsing ⊨ assert_true: expected true got false +FAIL MathML parsing ⊩ assert_true: expected true got false +FAIL MathML parsing ⊫ assert_true: expected true got false +FAIL MathML parsing ⫦ assert_true: expected true got false +FAIL MathML parsing ⊻ assert_true: expected true got false +FAIL MathML parsing ∨ assert_true: expected true got false +FAIL MathML parsing ⋁ assert_true: expected true got false +FAIL MathML parsing ≚ assert_true: expected true got false +FAIL MathML parsing ⋮ assert_true: expected true got false +FAIL MathML parsing | assert_true: expected true got false +FAIL MathML parsing ‖ assert_true: expected true got false +FAIL MathML parsing | assert_true: expected true got false +FAIL MathML parsing ‖ assert_true: expected true got false +FAIL MathML parsing ∣ assert_true: expected true got false +FAIL MathML parsing | assert_true: expected true got false +FAIL MathML parsing ❘ assert_true: expected true got false +FAIL MathML parsing ≀ assert_true: expected true got false +FAIL MathML parsing   assert_true: expected true got false +FAIL MathML parsing 𝔙 assert_true: expected true got false +FAIL MathML parsing 𝔳 assert_true: expected true got false +FAIL MathML parsing ⊲ assert_true: expected true got false +FAIL MathML parsing ⊂⃒ assert_true: expected true got false +FAIL MathML parsing ⊃⃒ assert_true: expected true got false +FAIL MathML parsing 𝕍 assert_true: expected true got false +FAIL MathML parsing 𝕧 assert_true: expected true got false +FAIL MathML parsing ∝ assert_true: expected true got false +FAIL MathML parsing ⊳ assert_true: expected true got false +FAIL MathML parsing 𝒱 assert_true: expected true got false +FAIL MathML parsing 𝓋 assert_true: expected true got false +FAIL MathML parsing ⫋︀ assert_true: expected true got false +FAIL MathML parsing ⊊︀ assert_true: expected true got false +FAIL MathML parsing ⫌︀ assert_true: expected true got false +FAIL MathML parsing ⊋︀ assert_true: expected true got false +FAIL MathML parsing ⊪ assert_true: expected true got false +FAIL MathML parsing ⦚ assert_true: expected true got false +FAIL MathML parsing Ŵ assert_true: expected true got false +FAIL MathML parsing ŵ assert_true: expected true got false +FAIL MathML parsing ⩟ assert_true: expected true got false +FAIL MathML parsing ∧ assert_true: expected true got false +FAIL MathML parsing ⋀ assert_true: expected true got false +FAIL MathML parsing ≙ assert_true: expected true got false +FAIL MathML parsing ℘ assert_true: expected true got false +FAIL MathML parsing 𝔚 assert_true: expected true got false +FAIL MathML parsing 𝔴 assert_true: expected true got false +FAIL MathML parsing 𝕎 assert_true: expected true got false +FAIL MathML parsing 𝕨 assert_true: expected true got false +FAIL MathML parsing ℘ assert_true: expected true got false +FAIL MathML parsing ≀ assert_true: expected true got false +FAIL MathML parsing ≀ assert_true: expected true got false +FAIL MathML parsing 𝒲 assert_true: expected true got false +FAIL MathML parsing 𝓌 assert_true: expected true got false +FAIL MathML parsing ⋂ assert_true: expected true got false +FAIL MathML parsing ◯ assert_true: expected true got false +FAIL MathML parsing ⋃ assert_true: expected true got false +FAIL MathML parsing ▽ assert_true: expected true got false +FAIL MathML parsing 𝔛 assert_true: expected true got false +FAIL MathML parsing 𝔵 assert_true: expected true got false +FAIL MathML parsing ⟷ assert_true: expected true got false +FAIL MathML parsing ⟺ assert_true: expected true got false +FAIL MathML parsing Ξ assert_true: expected true got false +FAIL MathML parsing ξ assert_true: expected true got false +FAIL MathML parsing ⟵ assert_true: expected true got false +FAIL MathML parsing ⟸ assert_true: expected true got false +FAIL MathML parsing ⟼ assert_true: expected true got false +FAIL MathML parsing ⋻ assert_true: expected true got false +FAIL MathML parsing ⨀ assert_true: expected true got false +FAIL MathML parsing 𝕏 assert_true: expected true got false +FAIL MathML parsing 𝕩 assert_true: expected true got false +FAIL MathML parsing ⨁ assert_true: expected true got false +FAIL MathML parsing ⨂ assert_true: expected true got false +FAIL MathML parsing ⟶ assert_true: expected true got false +FAIL MathML parsing ⟹ assert_true: expected true got false +FAIL MathML parsing 𝒳 assert_true: expected true got false +FAIL MathML parsing 𝓍 assert_true: expected true got false +FAIL MathML parsing ⨆ assert_true: expected true got false +FAIL MathML parsing ⨄ assert_true: expected true got false +FAIL MathML parsing △ assert_true: expected true got false +FAIL MathML parsing ⋁ assert_true: expected true got false +FAIL MathML parsing ⋀ assert_true: expected true got false +FAIL MathML parsing Ý assert_true: expected true got false +FAIL MathML parsing ý assert_true: expected true got false +FAIL MathML parsing Я assert_true: expected true got false +FAIL MathML parsing я assert_true: expected true got false +FAIL MathML parsing Ŷ assert_true: expected true got false +FAIL MathML parsing ŷ assert_true: expected true got false +FAIL MathML parsing Ы assert_true: expected true got false +FAIL MathML parsing ы assert_true: expected true got false +FAIL MathML parsing ¥ assert_true: expected true got false +FAIL MathML parsing 𝔜 assert_true: expected true got false +FAIL MathML parsing 𝔶 assert_true: expected true got false +FAIL MathML parsing Ї assert_true: expected true got false +FAIL MathML parsing ї assert_true: expected true got false +FAIL MathML parsing 𝕐 assert_true: expected true got false +FAIL MathML parsing 𝕪 assert_true: expected true got false +FAIL MathML parsing 𝒴 assert_true: expected true got false +FAIL MathML parsing 𝓎 assert_true: expected true got false +FAIL MathML parsing Ю assert_true: expected true got false +FAIL MathML parsing ю assert_true: expected true got false +FAIL MathML parsing ÿ assert_true: expected true got false +FAIL MathML parsing Ÿ assert_true: expected true got false +FAIL MathML parsing Ź assert_true: expected true got false +FAIL MathML parsing ź assert_true: expected true got false +FAIL MathML parsing Ž assert_true: expected true got false +FAIL MathML parsing ž assert_true: expected true got false +FAIL MathML parsing З assert_true: expected true got false +FAIL MathML parsing з assert_true: expected true got false +FAIL MathML parsing Ż assert_true: expected true got false +FAIL MathML parsing ż assert_true: expected true got false +FAIL MathML parsing ℨ assert_true: expected true got false +FAIL MathML parsing ​ assert_true: expected true got false +FAIL MathML parsing Ζ assert_true: expected true got false +FAIL MathML parsing ζ assert_true: expected true got false +FAIL MathML parsing 𝔷 assert_true: expected true got false +FAIL MathML parsing ℨ assert_true: expected true got false +FAIL MathML parsing Ж assert_true: expected true got false +FAIL MathML parsing ж assert_true: expected true got false +FAIL MathML parsing ⇝ assert_true: expected true got false +FAIL MathML parsing 𝕫 assert_true: expected true got false +FAIL MathML parsing ℤ assert_true: expected true got false +FAIL MathML parsing 𝒵 assert_true: expected true got false +FAIL MathML parsing 𝓏 assert_true: expected true got false +FAIL MathML parsing ‍ assert_true: expected true got false +FAIL MathML parsing ‌ assert_true: expected true got false +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm new file mode 100644 index 0000000..b16011c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//W3C//DTD MathML 2.0//EN", "foo", "MathML"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9-expected.txt new file mode 100644 index 0000000..3f91a75 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9-expected.txt
@@ -0,0 +1,2129 @@ +This is a testharness.js-based test. +Found 2125 tests; 2122 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS XHTML Mobile parsing Á +PASS XHTML Mobile parsing á +PASS XHTML Mobile parsing Ă +PASS XHTML Mobile parsing ă +PASS XHTML Mobile parsing ∾ +PASS XHTML Mobile parsing ∿ +PASS XHTML Mobile parsing ∾̳ +PASS XHTML Mobile parsing  +PASS XHTML Mobile parsing â +PASS XHTML Mobile parsing ´ +PASS XHTML Mobile parsing А +PASS XHTML Mobile parsing а +PASS XHTML Mobile parsing Æ +PASS XHTML Mobile parsing æ +PASS XHTML Mobile parsing ⁡ +PASS XHTML Mobile parsing 𝔄 +PASS XHTML Mobile parsing 𝔞 +PASS XHTML Mobile parsing À +PASS XHTML Mobile parsing à +PASS XHTML Mobile parsing ℵ +PASS XHTML Mobile parsing ℵ +PASS XHTML Mobile parsing Α +PASS XHTML Mobile parsing α +PASS XHTML Mobile parsing Ā +PASS XHTML Mobile parsing ā +PASS XHTML Mobile parsing ⨿ +PASS XHTML Mobile parsing & +FAIL XHTML Mobile parsing & assert_true: expected true got false +PASS XHTML Mobile parsing ⩕ +PASS XHTML Mobile parsing ⩓ +PASS XHTML Mobile parsing ∧ +PASS XHTML Mobile parsing ⩜ +PASS XHTML Mobile parsing ⩘ +PASS XHTML Mobile parsing ⩚ +PASS XHTML Mobile parsing ∠ +PASS XHTML Mobile parsing ⦤ +PASS XHTML Mobile parsing ∠ +PASS XHTML Mobile parsing ⦨ +PASS XHTML Mobile parsing ⦩ +PASS XHTML Mobile parsing ⦪ +PASS XHTML Mobile parsing ⦫ +PASS XHTML Mobile parsing ⦬ +PASS XHTML Mobile parsing ⦭ +PASS XHTML Mobile parsing ⦮ +PASS XHTML Mobile parsing ⦯ +PASS XHTML Mobile parsing ∡ +PASS XHTML Mobile parsing ∟ +PASS XHTML Mobile parsing ⊾ +PASS XHTML Mobile parsing ⦝ +PASS XHTML Mobile parsing ∢ +PASS XHTML Mobile parsing Å +PASS XHTML Mobile parsing ⍼ +PASS XHTML Mobile parsing Ą +PASS XHTML Mobile parsing ą +PASS XHTML Mobile parsing 𝔸 +PASS XHTML Mobile parsing 𝕒 +PASS XHTML Mobile parsing ⩯ +PASS XHTML Mobile parsing ≈ +PASS XHTML Mobile parsing ⩰ +PASS XHTML Mobile parsing ≊ +PASS XHTML Mobile parsing ≋ +PASS XHTML Mobile parsing ' +PASS XHTML Mobile parsing ⁡ +PASS XHTML Mobile parsing ≈ +PASS XHTML Mobile parsing ≊ +PASS XHTML Mobile parsing Å +PASS XHTML Mobile parsing å +PASS XHTML Mobile parsing 𝒜 +PASS XHTML Mobile parsing 𝒶 +PASS XHTML Mobile parsing ≔ +PASS XHTML Mobile parsing * +PASS XHTML Mobile parsing ≈ +PASS XHTML Mobile parsing ≍ +PASS XHTML Mobile parsing à +PASS XHTML Mobile parsing ã +PASS XHTML Mobile parsing Ä +PASS XHTML Mobile parsing ä +PASS XHTML Mobile parsing ∳ +PASS XHTML Mobile parsing ⨑ +PASS XHTML Mobile parsing ≌ +PASS XHTML Mobile parsing ϶ +PASS XHTML Mobile parsing ‵ +PASS XHTML Mobile parsing ∽ +PASS XHTML Mobile parsing ⋍ +PASS XHTML Mobile parsing ∖ +PASS XHTML Mobile parsing ⫧ +PASS XHTML Mobile parsing ⊽ +PASS XHTML Mobile parsing ⌅ +PASS XHTML Mobile parsing ⌆ +PASS XHTML Mobile parsing ⌅ +PASS XHTML Mobile parsing ⎵ +PASS XHTML Mobile parsing ⎶ +PASS XHTML Mobile parsing ≌ +PASS XHTML Mobile parsing Б +PASS XHTML Mobile parsing б +PASS XHTML Mobile parsing „ +PASS XHTML Mobile parsing ∵ +PASS XHTML Mobile parsing ∵ +PASS XHTML Mobile parsing ∵ +PASS XHTML Mobile parsing ⦰ +PASS XHTML Mobile parsing ϶ +PASS XHTML Mobile parsing ℬ +PASS XHTML Mobile parsing ℬ +PASS XHTML Mobile parsing Β +PASS XHTML Mobile parsing β +PASS XHTML Mobile parsing ℶ +PASS XHTML Mobile parsing ≬ +PASS XHTML Mobile parsing 𝔅 +PASS XHTML Mobile parsing 𝔟 +PASS XHTML Mobile parsing ⋂ +PASS XHTML Mobile parsing ◯ +PASS XHTML Mobile parsing ⋃ +PASS XHTML Mobile parsing ⨀ +PASS XHTML Mobile parsing ⨁ +PASS XHTML Mobile parsing ⨂ +PASS XHTML Mobile parsing ⨆ +PASS XHTML Mobile parsing ★ +PASS XHTML Mobile parsing ▽ +PASS XHTML Mobile parsing △ +PASS XHTML Mobile parsing ⨄ +PASS XHTML Mobile parsing ⋁ +PASS XHTML Mobile parsing ⋀ +PASS XHTML Mobile parsing ⤍ +PASS XHTML Mobile parsing ⧫ +PASS XHTML Mobile parsing ▪ +PASS XHTML Mobile parsing ▴ +PASS XHTML Mobile parsing ▾ +PASS XHTML Mobile parsing ◂ +PASS XHTML Mobile parsing ▸ +PASS XHTML Mobile parsing ␣ +PASS XHTML Mobile parsing ▒ +PASS XHTML Mobile parsing ░ +PASS XHTML Mobile parsing ▓ +PASS XHTML Mobile parsing █ +PASS XHTML Mobile parsing =⃥ +PASS XHTML Mobile parsing ≡⃥ +PASS XHTML Mobile parsing ⫭ +PASS XHTML Mobile parsing ⌐ +PASS XHTML Mobile parsing 𝔹 +PASS XHTML Mobile parsing 𝕓 +PASS XHTML Mobile parsing ⊥ +PASS XHTML Mobile parsing ⊥ +PASS XHTML Mobile parsing ⋈ +PASS XHTML Mobile parsing ⧉ +PASS XHTML Mobile parsing ┐ +PASS XHTML Mobile parsing ╕ +PASS XHTML Mobile parsing ╖ +PASS XHTML Mobile parsing ╗ +PASS XHTML Mobile parsing ┌ +PASS XHTML Mobile parsing ╒ +PASS XHTML Mobile parsing ╓ +PASS XHTML Mobile parsing ╔ +PASS XHTML Mobile parsing ─ +PASS XHTML Mobile parsing ═ +PASS XHTML Mobile parsing ┬ +PASS XHTML Mobile parsing ╤ +PASS XHTML Mobile parsing ╥ +PASS XHTML Mobile parsing ╦ +PASS XHTML Mobile parsing ┴ +PASS XHTML Mobile parsing ╧ +PASS XHTML Mobile parsing ╨ +PASS XHTML Mobile parsing ╩ +PASS XHTML Mobile parsing ⊟ +PASS XHTML Mobile parsing ⊞ +PASS XHTML Mobile parsing ⊠ +PASS XHTML Mobile parsing ┘ +PASS XHTML Mobile parsing ╛ +PASS XHTML Mobile parsing ╜ +PASS XHTML Mobile parsing ╝ +PASS XHTML Mobile parsing └ +PASS XHTML Mobile parsing ╘ +PASS XHTML Mobile parsing ╙ +PASS XHTML Mobile parsing ╚ +PASS XHTML Mobile parsing │ +PASS XHTML Mobile parsing ║ +PASS XHTML Mobile parsing ┼ +PASS XHTML Mobile parsing ╪ +PASS XHTML Mobile parsing ╫ +PASS XHTML Mobile parsing ╬ +PASS XHTML Mobile parsing ┤ +PASS XHTML Mobile parsing ╡ +PASS XHTML Mobile parsing ╢ +PASS XHTML Mobile parsing ╣ +PASS XHTML Mobile parsing ├ +PASS XHTML Mobile parsing ╞ +PASS XHTML Mobile parsing ╟ +PASS XHTML Mobile parsing ╠ +PASS XHTML Mobile parsing ‵ +PASS XHTML Mobile parsing ˘ +PASS XHTML Mobile parsing ˘ +PASS XHTML Mobile parsing ¦ +PASS XHTML Mobile parsing 𝒷 +PASS XHTML Mobile parsing ℬ +PASS XHTML Mobile parsing ⁏ +PASS XHTML Mobile parsing ∽ +PASS XHTML Mobile parsing ⋍ +PASS XHTML Mobile parsing ⧅ +PASS XHTML Mobile parsing \ +PASS XHTML Mobile parsing ⟈ +PASS XHTML Mobile parsing • +PASS XHTML Mobile parsing • +PASS XHTML Mobile parsing ≎ +PASS XHTML Mobile parsing ⪮ +PASS XHTML Mobile parsing ≏ +PASS XHTML Mobile parsing ≎ +PASS XHTML Mobile parsing ≏ +PASS XHTML Mobile parsing Ć +PASS XHTML Mobile parsing ć +PASS XHTML Mobile parsing ⩄ +PASS XHTML Mobile parsing ⩉ +PASS XHTML Mobile parsing ⩋ +PASS XHTML Mobile parsing ∩ +PASS XHTML Mobile parsing ⋒ +PASS XHTML Mobile parsing ⩇ +PASS XHTML Mobile parsing ⩀ +PASS XHTML Mobile parsing ⅅ +PASS XHTML Mobile parsing ∩︀ +PASS XHTML Mobile parsing ⁁ +PASS XHTML Mobile parsing ˇ +PASS XHTML Mobile parsing ℭ +PASS XHTML Mobile parsing ⩍ +PASS XHTML Mobile parsing Č +PASS XHTML Mobile parsing č +PASS XHTML Mobile parsing Ç +PASS XHTML Mobile parsing ç +PASS XHTML Mobile parsing Ĉ +PASS XHTML Mobile parsing ĉ +PASS XHTML Mobile parsing ∰ +PASS XHTML Mobile parsing ⩌ +PASS XHTML Mobile parsing ⩐ +PASS XHTML Mobile parsing Ċ +PASS XHTML Mobile parsing ċ +PASS XHTML Mobile parsing ¸ +PASS XHTML Mobile parsing ¸ +PASS XHTML Mobile parsing ⦲ +PASS XHTML Mobile parsing ¢ +PASS XHTML Mobile parsing · +PASS XHTML Mobile parsing · +PASS XHTML Mobile parsing 𝔠 +PASS XHTML Mobile parsing ℭ +PASS XHTML Mobile parsing Ч +PASS XHTML Mobile parsing ч +PASS XHTML Mobile parsing ✓ +PASS XHTML Mobile parsing ✓ +PASS XHTML Mobile parsing Χ +PASS XHTML Mobile parsing χ +PASS XHTML Mobile parsing ˆ +PASS XHTML Mobile parsing ≗ +PASS XHTML Mobile parsing ↺ +PASS XHTML Mobile parsing ↻ +PASS XHTML Mobile parsing ⊛ +PASS XHTML Mobile parsing ⊚ +PASS XHTML Mobile parsing ⊝ +PASS XHTML Mobile parsing ⊙ +PASS XHTML Mobile parsing ® +PASS XHTML Mobile parsing Ⓢ +PASS XHTML Mobile parsing ⊖ +PASS XHTML Mobile parsing ⊕ +PASS XHTML Mobile parsing ⊗ +PASS XHTML Mobile parsing ○ +PASS XHTML Mobile parsing ⧃ +PASS XHTML Mobile parsing ≗ +PASS XHTML Mobile parsing ⨐ +PASS XHTML Mobile parsing ⫯ +PASS XHTML Mobile parsing ⧂ +PASS XHTML Mobile parsing ∲ +PASS XHTML Mobile parsing ” +PASS XHTML Mobile parsing ’ +PASS XHTML Mobile parsing ♣ +PASS XHTML Mobile parsing ♣ +PASS XHTML Mobile parsing : +PASS XHTML Mobile parsing ∷ +PASS XHTML Mobile parsing ⩴ +PASS XHTML Mobile parsing ≔ +PASS XHTML Mobile parsing ≔ +PASS XHTML Mobile parsing , +PASS XHTML Mobile parsing @ +PASS XHTML Mobile parsing ∁ +PASS XHTML Mobile parsing ∘ +PASS XHTML Mobile parsing ∁ +PASS XHTML Mobile parsing ℂ +PASS XHTML Mobile parsing ≅ +PASS XHTML Mobile parsing ⩭ +PASS XHTML Mobile parsing ≡ +PASS XHTML Mobile parsing ∮ +PASS XHTML Mobile parsing ∯ +PASS XHTML Mobile parsing ∮ +PASS XHTML Mobile parsing 𝕔 +PASS XHTML Mobile parsing ℂ +PASS XHTML Mobile parsing ∐ +PASS XHTML Mobile parsing ∐ +PASS XHTML Mobile parsing © +PASS XHTML Mobile parsing © +PASS XHTML Mobile parsing ℗ +PASS XHTML Mobile parsing ∳ +PASS XHTML Mobile parsing ↵ +PASS XHTML Mobile parsing ✗ +PASS XHTML Mobile parsing ⨯ +PASS XHTML Mobile parsing 𝒞 +PASS XHTML Mobile parsing 𝒸 +PASS XHTML Mobile parsing ⫏ +PASS XHTML Mobile parsing ⫑ +PASS XHTML Mobile parsing ⫐ +PASS XHTML Mobile parsing ⫒ +PASS XHTML Mobile parsing ⋯ +PASS XHTML Mobile parsing ⤸ +PASS XHTML Mobile parsing ⤵ +PASS XHTML Mobile parsing ⋞ +PASS XHTML Mobile parsing ⋟ +PASS XHTML Mobile parsing ↶ +PASS XHTML Mobile parsing ⤽ +PASS XHTML Mobile parsing ⩈ +PASS XHTML Mobile parsing ⩆ +PASS XHTML Mobile parsing ≍ +PASS XHTML Mobile parsing ∪ +PASS XHTML Mobile parsing ⋓ +PASS XHTML Mobile parsing ⩊ +PASS XHTML Mobile parsing ⊍ +PASS XHTML Mobile parsing ⩅ +PASS XHTML Mobile parsing ∪︀ +PASS XHTML Mobile parsing ↷ +PASS XHTML Mobile parsing ⤼ +PASS XHTML Mobile parsing ⋞ +PASS XHTML Mobile parsing ⋟ +PASS XHTML Mobile parsing ⋎ +PASS XHTML Mobile parsing ⋏ +PASS XHTML Mobile parsing ¤ +PASS XHTML Mobile parsing ↶ +PASS XHTML Mobile parsing ↷ +PASS XHTML Mobile parsing ⋎ +PASS XHTML Mobile parsing ⋏ +PASS XHTML Mobile parsing ∲ +PASS XHTML Mobile parsing ∱ +PASS XHTML Mobile parsing ⌭ +PASS XHTML Mobile parsing † +PASS XHTML Mobile parsing ‡ +PASS XHTML Mobile parsing ℸ +PASS XHTML Mobile parsing ↓ +PASS XHTML Mobile parsing ↡ +PASS XHTML Mobile parsing ⇓ +PASS XHTML Mobile parsing ‐ +PASS XHTML Mobile parsing ⫤ +PASS XHTML Mobile parsing ⊣ +PASS XHTML Mobile parsing ⤏ +PASS XHTML Mobile parsing ˝ +PASS XHTML Mobile parsing Ď +PASS XHTML Mobile parsing ď +PASS XHTML Mobile parsing Д +PASS XHTML Mobile parsing д +PASS XHTML Mobile parsing ‡ +PASS XHTML Mobile parsing ⇊ +PASS XHTML Mobile parsing ⅅ +PASS XHTML Mobile parsing ⅆ +PASS XHTML Mobile parsing ⤑ +PASS XHTML Mobile parsing ⩷ +PASS XHTML Mobile parsing ° +PASS XHTML Mobile parsing ∇ +PASS XHTML Mobile parsing Δ +PASS XHTML Mobile parsing δ +PASS XHTML Mobile parsing ⦱ +PASS XHTML Mobile parsing ⥿ +PASS XHTML Mobile parsing 𝔇 +PASS XHTML Mobile parsing 𝔡 +PASS XHTML Mobile parsing ⥥ +PASS XHTML Mobile parsing ⇃ +PASS XHTML Mobile parsing ⇂ +PASS XHTML Mobile parsing ´ +PASS XHTML Mobile parsing ˙ +PASS XHTML Mobile parsing ˝ +PASS XHTML Mobile parsing ` +PASS XHTML Mobile parsing ˜ +PASS XHTML Mobile parsing ⋄ +PASS XHTML Mobile parsing ⋄ +PASS XHTML Mobile parsing ⋄ +PASS XHTML Mobile parsing ♦ +PASS XHTML Mobile parsing ♦ +PASS XHTML Mobile parsing ¨ +PASS XHTML Mobile parsing ⅆ +PASS XHTML Mobile parsing ϝ +PASS XHTML Mobile parsing ⋲ +PASS XHTML Mobile parsing ÷ +PASS XHTML Mobile parsing ÷ +PASS XHTML Mobile parsing ⋇ +PASS XHTML Mobile parsing ⋇ +PASS XHTML Mobile parsing Ђ +PASS XHTML Mobile parsing ђ +PASS XHTML Mobile parsing ⌞ +PASS XHTML Mobile parsing ⌍ +PASS XHTML Mobile parsing $ +PASS XHTML Mobile parsing 𝔻 +PASS XHTML Mobile parsing 𝕕 +PASS XHTML Mobile parsing ¨ +PASS XHTML Mobile parsing ˙ +PASS XHTML Mobile parsing ⃜ +PASS XHTML Mobile parsing ≐ +PASS XHTML Mobile parsing ≑ +PASS XHTML Mobile parsing ≐ +PASS XHTML Mobile parsing ∸ +PASS XHTML Mobile parsing ∔ +PASS XHTML Mobile parsing ⊡ +PASS XHTML Mobile parsing ⌆ +PASS XHTML Mobile parsing ∯ +PASS XHTML Mobile parsing ¨ +PASS XHTML Mobile parsing ⇓ +PASS XHTML Mobile parsing ⇐ +PASS XHTML Mobile parsing ⇔ +PASS XHTML Mobile parsing ⫤ +PASS XHTML Mobile parsing ⟸ +PASS XHTML Mobile parsing ⟺ +PASS XHTML Mobile parsing ⟹ +PASS XHTML Mobile parsing ⇒ +PASS XHTML Mobile parsing ⊨ +PASS XHTML Mobile parsing ⇑ +PASS XHTML Mobile parsing ⇕ +PASS XHTML Mobile parsing ∥ +PASS XHTML Mobile parsing ⤓ +PASS XHTML Mobile parsing ↓ +PASS XHTML Mobile parsing ↓ +PASS XHTML Mobile parsing ⇓ +PASS XHTML Mobile parsing ⇵ +PASS XHTML Mobile parsing ̑ +PASS XHTML Mobile parsing ⇊ +PASS XHTML Mobile parsing ⇃ +PASS XHTML Mobile parsing ⇂ +PASS XHTML Mobile parsing ⥐ +PASS XHTML Mobile parsing ⥞ +PASS XHTML Mobile parsing ⥖ +PASS XHTML Mobile parsing ↽ +PASS XHTML Mobile parsing ⥟ +PASS XHTML Mobile parsing ⥗ +PASS XHTML Mobile parsing ⇁ +PASS XHTML Mobile parsing ↧ +PASS XHTML Mobile parsing ⊤ +PASS XHTML Mobile parsing ⤐ +PASS XHTML Mobile parsing ⌟ +PASS XHTML Mobile parsing ⌌ +PASS XHTML Mobile parsing 𝒟 +PASS XHTML Mobile parsing 𝒹 +PASS XHTML Mobile parsing Ѕ +PASS XHTML Mobile parsing ѕ +PASS XHTML Mobile parsing ⧶ +PASS XHTML Mobile parsing Đ +PASS XHTML Mobile parsing đ +PASS XHTML Mobile parsing ⋱ +PASS XHTML Mobile parsing ▿ +PASS XHTML Mobile parsing ▾ +PASS XHTML Mobile parsing ⇵ +PASS XHTML Mobile parsing ⥯ +PASS XHTML Mobile parsing ⦦ +PASS XHTML Mobile parsing Џ +PASS XHTML Mobile parsing џ +PASS XHTML Mobile parsing ⟿ +PASS XHTML Mobile parsing É +PASS XHTML Mobile parsing é +PASS XHTML Mobile parsing ⩮ +PASS XHTML Mobile parsing Ě +PASS XHTML Mobile parsing ě +PASS XHTML Mobile parsing Ê +PASS XHTML Mobile parsing ê +PASS XHTML Mobile parsing ≖ +PASS XHTML Mobile parsing ≕ +PASS XHTML Mobile parsing Э +PASS XHTML Mobile parsing э +PASS XHTML Mobile parsing ⩷ +PASS XHTML Mobile parsing Ė +PASS XHTML Mobile parsing ė +PASS XHTML Mobile parsing ≑ +PASS XHTML Mobile parsing ⅇ +PASS XHTML Mobile parsing ≒ +PASS XHTML Mobile parsing 𝔈 +PASS XHTML Mobile parsing 𝔢 +PASS XHTML Mobile parsing ⪚ +PASS XHTML Mobile parsing È +PASS XHTML Mobile parsing è +PASS XHTML Mobile parsing ⪖ +PASS XHTML Mobile parsing ⪘ +PASS XHTML Mobile parsing ⪙ +PASS XHTML Mobile parsing ∈ +PASS XHTML Mobile parsing ⏧ +PASS XHTML Mobile parsing ℓ +PASS XHTML Mobile parsing ⪕ +PASS XHTML Mobile parsing ⪗ +PASS XHTML Mobile parsing Ē +PASS XHTML Mobile parsing ē +PASS XHTML Mobile parsing ∅ +PASS XHTML Mobile parsing ∅ +PASS XHTML Mobile parsing ◻ +PASS XHTML Mobile parsing ∅ +PASS XHTML Mobile parsing ▫ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing Ŋ +PASS XHTML Mobile parsing ŋ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing Ę +PASS XHTML Mobile parsing ę +PASS XHTML Mobile parsing 𝔼 +PASS XHTML Mobile parsing 𝕖 +PASS XHTML Mobile parsing ⋕ +PASS XHTML Mobile parsing ⧣ +PASS XHTML Mobile parsing ⩱ +PASS XHTML Mobile parsing ε +PASS XHTML Mobile parsing Ε +PASS XHTML Mobile parsing ε +PASS XHTML Mobile parsing ϵ +PASS XHTML Mobile parsing ≖ +PASS XHTML Mobile parsing ≕ +PASS XHTML Mobile parsing ≂ +PASS XHTML Mobile parsing ⪖ +PASS XHTML Mobile parsing ⪕ +PASS XHTML Mobile parsing ⩵ +PASS XHTML Mobile parsing = +PASS XHTML Mobile parsing ≂ +PASS XHTML Mobile parsing ≟ +PASS XHTML Mobile parsing ⇌ +PASS XHTML Mobile parsing ≡ +PASS XHTML Mobile parsing ⩸ +PASS XHTML Mobile parsing ⧥ +PASS XHTML Mobile parsing ⥱ +PASS XHTML Mobile parsing ≓ +PASS XHTML Mobile parsing ℯ +PASS XHTML Mobile parsing ℰ +PASS XHTML Mobile parsing ≐ +PASS XHTML Mobile parsing ⩳ +PASS XHTML Mobile parsing ≂ +PASS XHTML Mobile parsing Η +PASS XHTML Mobile parsing η +PASS XHTML Mobile parsing Ð +PASS XHTML Mobile parsing ð +PASS XHTML Mobile parsing Ë +PASS XHTML Mobile parsing ë +PASS XHTML Mobile parsing € +PASS XHTML Mobile parsing ! +PASS XHTML Mobile parsing ∃ +PASS XHTML Mobile parsing ∃ +PASS XHTML Mobile parsing ℰ +PASS XHTML Mobile parsing ⅇ +PASS XHTML Mobile parsing ⅇ +PASS XHTML Mobile parsing ≒ +PASS XHTML Mobile parsing Ф +PASS XHTML Mobile parsing ф +PASS XHTML Mobile parsing ♀ +PASS XHTML Mobile parsing ffi +PASS XHTML Mobile parsing ff +PASS XHTML Mobile parsing ffl +PASS XHTML Mobile parsing 𝔉 +PASS XHTML Mobile parsing 𝔣 +PASS XHTML Mobile parsing fi +PASS XHTML Mobile parsing ◼ +PASS XHTML Mobile parsing ▪ +PASS XHTML Mobile parsing fj +PASS XHTML Mobile parsing ♭ +PASS XHTML Mobile parsing fl +PASS XHTML Mobile parsing ▱ +PASS XHTML Mobile parsing ƒ +PASS XHTML Mobile parsing 𝔽 +PASS XHTML Mobile parsing 𝕗 +PASS XHTML Mobile parsing ∀ +PASS XHTML Mobile parsing ∀ +PASS XHTML Mobile parsing ⋔ +PASS XHTML Mobile parsing ⫙ +PASS XHTML Mobile parsing ℱ +PASS XHTML Mobile parsing ⨍ +PASS XHTML Mobile parsing ½ +PASS XHTML Mobile parsing ⅓ +PASS XHTML Mobile parsing ¼ +PASS XHTML Mobile parsing ⅕ +PASS XHTML Mobile parsing ⅙ +PASS XHTML Mobile parsing ⅛ +PASS XHTML Mobile parsing ⅔ +PASS XHTML Mobile parsing ⅖ +PASS XHTML Mobile parsing ¾ +PASS XHTML Mobile parsing ⅗ +PASS XHTML Mobile parsing ⅜ +PASS XHTML Mobile parsing ⅘ +PASS XHTML Mobile parsing ⅚ +PASS XHTML Mobile parsing ⅝ +PASS XHTML Mobile parsing ⅞ +PASS XHTML Mobile parsing ⁄ +PASS XHTML Mobile parsing ⌢ +PASS XHTML Mobile parsing 𝒻 +PASS XHTML Mobile parsing ℱ +PASS XHTML Mobile parsing ǵ +PASS XHTML Mobile parsing Γ +PASS XHTML Mobile parsing γ +PASS XHTML Mobile parsing Ϝ +PASS XHTML Mobile parsing ϝ +PASS XHTML Mobile parsing ⪆ +PASS XHTML Mobile parsing Ğ +PASS XHTML Mobile parsing ğ +PASS XHTML Mobile parsing Ģ +PASS XHTML Mobile parsing Ĝ +PASS XHTML Mobile parsing ĝ +PASS XHTML Mobile parsing Г +PASS XHTML Mobile parsing г +PASS XHTML Mobile parsing Ġ +PASS XHTML Mobile parsing ġ +PASS XHTML Mobile parsing ≥ +PASS XHTML Mobile parsing ≧ +PASS XHTML Mobile parsing ⪌ +PASS XHTML Mobile parsing ⋛ +PASS XHTML Mobile parsing ≥ +PASS XHTML Mobile parsing ≧ +PASS XHTML Mobile parsing ⩾ +PASS XHTML Mobile parsing ⪩ +PASS XHTML Mobile parsing ⩾ +PASS XHTML Mobile parsing ⪀ +PASS XHTML Mobile parsing ⪂ +PASS XHTML Mobile parsing ⪄ +PASS XHTML Mobile parsing ⋛︀ +PASS XHTML Mobile parsing ⪔ +PASS XHTML Mobile parsing 𝔊 +PASS XHTML Mobile parsing 𝔤 +PASS XHTML Mobile parsing ≫ +PASS XHTML Mobile parsing ⋙ +PASS XHTML Mobile parsing ⋙ +PASS XHTML Mobile parsing ℷ +PASS XHTML Mobile parsing Ѓ +PASS XHTML Mobile parsing ѓ +PASS XHTML Mobile parsing ⪥ +PASS XHTML Mobile parsing ≷ +PASS XHTML Mobile parsing ⪒ +PASS XHTML Mobile parsing ⪤ +PASS XHTML Mobile parsing ⪊ +PASS XHTML Mobile parsing ⪊ +PASS XHTML Mobile parsing ⪈ +PASS XHTML Mobile parsing ≩ +PASS XHTML Mobile parsing ⪈ +PASS XHTML Mobile parsing ≩ +PASS XHTML Mobile parsing ⋧ +PASS XHTML Mobile parsing 𝔾 +PASS XHTML Mobile parsing 𝕘 +PASS XHTML Mobile parsing ` +PASS XHTML Mobile parsing ≥ +PASS XHTML Mobile parsing ⋛ +PASS XHTML Mobile parsing ≧ +PASS XHTML Mobile parsing ⪢ +PASS XHTML Mobile parsing ≷ +PASS XHTML Mobile parsing ⩾ +PASS XHTML Mobile parsing ≳ +PASS XHTML Mobile parsing 𝒢 +PASS XHTML Mobile parsing ℊ +PASS XHTML Mobile parsing ≳ +PASS XHTML Mobile parsing ⪎ +PASS XHTML Mobile parsing ⪐ +PASS XHTML Mobile parsing ⪧ +PASS XHTML Mobile parsing ⩺ +PASS XHTML Mobile parsing > +PASS XHTML Mobile parsing > +PASS XHTML Mobile parsing ≫ +PASS XHTML Mobile parsing ⋗ +PASS XHTML Mobile parsing ⦕ +PASS XHTML Mobile parsing ⩼ +PASS XHTML Mobile parsing ⪆ +PASS XHTML Mobile parsing ⥸ +PASS XHTML Mobile parsing ⋗ +PASS XHTML Mobile parsing ⋛ +PASS XHTML Mobile parsing ⪌ +PASS XHTML Mobile parsing ≷ +PASS XHTML Mobile parsing ≳ +PASS XHTML Mobile parsing ≩︀ +PASS XHTML Mobile parsing ≩︀ +PASS XHTML Mobile parsing ˇ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing ½ +PASS XHTML Mobile parsing ℋ +PASS XHTML Mobile parsing Ъ +PASS XHTML Mobile parsing ъ +PASS XHTML Mobile parsing ⥈ +PASS XHTML Mobile parsing ↔ +PASS XHTML Mobile parsing ⇔ +PASS XHTML Mobile parsing ↭ +PASS XHTML Mobile parsing ^ +PASS XHTML Mobile parsing ℏ +PASS XHTML Mobile parsing Ĥ +PASS XHTML Mobile parsing ĥ +PASS XHTML Mobile parsing ♥ +PASS XHTML Mobile parsing ♥ +PASS XHTML Mobile parsing … +PASS XHTML Mobile parsing ⊹ +PASS XHTML Mobile parsing 𝔥 +PASS XHTML Mobile parsing ℌ +PASS XHTML Mobile parsing ℋ +PASS XHTML Mobile parsing ⤥ +PASS XHTML Mobile parsing ⤦ +PASS XHTML Mobile parsing ⇿ +PASS XHTML Mobile parsing ∻ +PASS XHTML Mobile parsing ↩ +PASS XHTML Mobile parsing ↪ +PASS XHTML Mobile parsing 𝕙 +PASS XHTML Mobile parsing ℍ +PASS XHTML Mobile parsing ― +PASS XHTML Mobile parsing ─ +PASS XHTML Mobile parsing 𝒽 +PASS XHTML Mobile parsing ℋ +PASS XHTML Mobile parsing ℏ +PASS XHTML Mobile parsing Ħ +PASS XHTML Mobile parsing ħ +PASS XHTML Mobile parsing ≎ +PASS XHTML Mobile parsing ≏ +PASS XHTML Mobile parsing ⁃ +PASS XHTML Mobile parsing ‐ +PASS XHTML Mobile parsing Í +PASS XHTML Mobile parsing í +PASS XHTML Mobile parsing ⁣ +PASS XHTML Mobile parsing Î +PASS XHTML Mobile parsing î +PASS XHTML Mobile parsing И +PASS XHTML Mobile parsing и +PASS XHTML Mobile parsing İ +PASS XHTML Mobile parsing Е +PASS XHTML Mobile parsing е +PASS XHTML Mobile parsing ¡ +PASS XHTML Mobile parsing ⇔ +PASS XHTML Mobile parsing 𝔦 +PASS XHTML Mobile parsing ℑ +PASS XHTML Mobile parsing Ì +PASS XHTML Mobile parsing ì +PASS XHTML Mobile parsing ⅈ +PASS XHTML Mobile parsing ⨌ +PASS XHTML Mobile parsing ∭ +PASS XHTML Mobile parsing ⧜ +PASS XHTML Mobile parsing ℩ +PASS XHTML Mobile parsing IJ +PASS XHTML Mobile parsing ij +PASS XHTML Mobile parsing Ī +PASS XHTML Mobile parsing ī +PASS XHTML Mobile parsing ℑ +PASS XHTML Mobile parsing ⅈ +PASS XHTML Mobile parsing ℐ +PASS XHTML Mobile parsing ℑ +PASS XHTML Mobile parsing ı +PASS XHTML Mobile parsing ℑ +PASS XHTML Mobile parsing ⊷ +PASS XHTML Mobile parsing Ƶ +PASS XHTML Mobile parsing ⇒ +PASS XHTML Mobile parsing ℅ +PASS XHTML Mobile parsing ∈ +PASS XHTML Mobile parsing ∞ +PASS XHTML Mobile parsing ⧝ +PASS XHTML Mobile parsing ı +PASS XHTML Mobile parsing ⊺ +PASS XHTML Mobile parsing ∫ +PASS XHTML Mobile parsing ∬ +PASS XHTML Mobile parsing ℤ +PASS XHTML Mobile parsing ∫ +PASS XHTML Mobile parsing ⊺ +PASS XHTML Mobile parsing ⋂ +PASS XHTML Mobile parsing ⨗ +PASS XHTML Mobile parsing ⨼ +PASS XHTML Mobile parsing ⁣ +PASS XHTML Mobile parsing ⁢ +PASS XHTML Mobile parsing Ё +PASS XHTML Mobile parsing ё +PASS XHTML Mobile parsing Į +PASS XHTML Mobile parsing į +PASS XHTML Mobile parsing 𝕀 +PASS XHTML Mobile parsing 𝕚 +PASS XHTML Mobile parsing Ι +PASS XHTML Mobile parsing ι +PASS XHTML Mobile parsing ⨼ +PASS XHTML Mobile parsing ¿ +PASS XHTML Mobile parsing 𝒾 +PASS XHTML Mobile parsing ℐ +PASS XHTML Mobile parsing ∈ +PASS XHTML Mobile parsing ⋵ +PASS XHTML Mobile parsing ⋹ +PASS XHTML Mobile parsing ⋴ +PASS XHTML Mobile parsing ⋳ +PASS XHTML Mobile parsing ∈ +PASS XHTML Mobile parsing ⁢ +PASS XHTML Mobile parsing Ĩ +PASS XHTML Mobile parsing ĩ +PASS XHTML Mobile parsing І +PASS XHTML Mobile parsing і +PASS XHTML Mobile parsing Ï +PASS XHTML Mobile parsing ï +PASS XHTML Mobile parsing Ĵ +PASS XHTML Mobile parsing ĵ +PASS XHTML Mobile parsing Й +PASS XHTML Mobile parsing й +PASS XHTML Mobile parsing 𝔍 +PASS XHTML Mobile parsing 𝔧 +PASS XHTML Mobile parsing ȷ +PASS XHTML Mobile parsing 𝕁 +PASS XHTML Mobile parsing 𝕛 +PASS XHTML Mobile parsing 𝒥 +PASS XHTML Mobile parsing 𝒿 +PASS XHTML Mobile parsing Ј +PASS XHTML Mobile parsing ј +PASS XHTML Mobile parsing Є +PASS XHTML Mobile parsing є +PASS XHTML Mobile parsing Κ +PASS XHTML Mobile parsing κ +PASS XHTML Mobile parsing ϰ +PASS XHTML Mobile parsing Ķ +PASS XHTML Mobile parsing ķ +PASS XHTML Mobile parsing К +PASS XHTML Mobile parsing к +PASS XHTML Mobile parsing 𝔎 +PASS XHTML Mobile parsing 𝔨 +PASS XHTML Mobile parsing ĸ +PASS XHTML Mobile parsing Х +PASS XHTML Mobile parsing х +PASS XHTML Mobile parsing Ќ +PASS XHTML Mobile parsing ќ +PASS XHTML Mobile parsing 𝕂 +PASS XHTML Mobile parsing 𝕜 +PASS XHTML Mobile parsing 𝒦 +PASS XHTML Mobile parsing 𝓀 +PASS XHTML Mobile parsing ⇚ +PASS XHTML Mobile parsing Ĺ +PASS XHTML Mobile parsing ĺ +PASS XHTML Mobile parsing ⦴ +PASS XHTML Mobile parsing ℒ +PASS XHTML Mobile parsing Λ +PASS XHTML Mobile parsing λ +PASS XHTML Mobile parsing ⟨ +PASS XHTML Mobile parsing ⟪ +PASS XHTML Mobile parsing ⦑ +PASS XHTML Mobile parsing ⟨ +PASS XHTML Mobile parsing ⪅ +PASS XHTML Mobile parsing ℒ +PASS XHTML Mobile parsing « +PASS XHTML Mobile parsing ⇤ +PASS XHTML Mobile parsing ⤟ +PASS XHTML Mobile parsing ← +PASS XHTML Mobile parsing ↞ +PASS XHTML Mobile parsing ⇐ +PASS XHTML Mobile parsing ⤝ +PASS XHTML Mobile parsing ↩ +PASS XHTML Mobile parsing ↫ +PASS XHTML Mobile parsing ⤹ +PASS XHTML Mobile parsing ⥳ +PASS XHTML Mobile parsing ↢ +PASS XHTML Mobile parsing ⤙ +PASS XHTML Mobile parsing ⤛ +PASS XHTML Mobile parsing ⪫ +PASS XHTML Mobile parsing ⪭ +PASS XHTML Mobile parsing ⪭︀ +PASS XHTML Mobile parsing ⤌ +PASS XHTML Mobile parsing ⤎ +PASS XHTML Mobile parsing ❲ +PASS XHTML Mobile parsing { +PASS XHTML Mobile parsing [ +PASS XHTML Mobile parsing ⦋ +PASS XHTML Mobile parsing ⦏ +PASS XHTML Mobile parsing ⦍ +PASS XHTML Mobile parsing Ľ +PASS XHTML Mobile parsing ľ +PASS XHTML Mobile parsing Ļ +PASS XHTML Mobile parsing ļ +PASS XHTML Mobile parsing ⌈ +PASS XHTML Mobile parsing { +PASS XHTML Mobile parsing Л +PASS XHTML Mobile parsing л +PASS XHTML Mobile parsing ⤶ +PASS XHTML Mobile parsing “ +PASS XHTML Mobile parsing „ +PASS XHTML Mobile parsing ⥧ +PASS XHTML Mobile parsing ⥋ +PASS XHTML Mobile parsing ↲ +PASS XHTML Mobile parsing ≤ +PASS XHTML Mobile parsing ≦ +PASS XHTML Mobile parsing ⟨ +PASS XHTML Mobile parsing ⇤ +PASS XHTML Mobile parsing ← +PASS XHTML Mobile parsing ← +PASS XHTML Mobile parsing ⇐ +PASS XHTML Mobile parsing ⇆ +PASS XHTML Mobile parsing ↢ +PASS XHTML Mobile parsing ⌈ +PASS XHTML Mobile parsing ⟦ +PASS XHTML Mobile parsing ⥡ +PASS XHTML Mobile parsing ⥙ +PASS XHTML Mobile parsing ⇃ +PASS XHTML Mobile parsing ⌊ +PASS XHTML Mobile parsing ↽ +PASS XHTML Mobile parsing ↼ +PASS XHTML Mobile parsing ⇇ +PASS XHTML Mobile parsing ↔ +PASS XHTML Mobile parsing ↔ +PASS XHTML Mobile parsing ⇔ +PASS XHTML Mobile parsing ⇆ +PASS XHTML Mobile parsing ⇋ +PASS XHTML Mobile parsing ↭ +PASS XHTML Mobile parsing ⥎ +PASS XHTML Mobile parsing ↤ +PASS XHTML Mobile parsing ⊣ +PASS XHTML Mobile parsing ⥚ +PASS XHTML Mobile parsing ⋋ +PASS XHTML Mobile parsing ⧏ +PASS XHTML Mobile parsing ⊲ +PASS XHTML Mobile parsing ⊴ +PASS XHTML Mobile parsing ⥑ +PASS XHTML Mobile parsing ⥠ +PASS XHTML Mobile parsing ⥘ +PASS XHTML Mobile parsing ↿ +PASS XHTML Mobile parsing ⥒ +PASS XHTML Mobile parsing ↼ +PASS XHTML Mobile parsing ⪋ +PASS XHTML Mobile parsing ⋚ +PASS XHTML Mobile parsing ≤ +PASS XHTML Mobile parsing ≦ +PASS XHTML Mobile parsing ⩽ +PASS XHTML Mobile parsing ⪨ +PASS XHTML Mobile parsing ⩽ +PASS XHTML Mobile parsing ⩿ +PASS XHTML Mobile parsing ⪁ +PASS XHTML Mobile parsing ⪃ +PASS XHTML Mobile parsing ⋚︀ +PASS XHTML Mobile parsing ⪓ +PASS XHTML Mobile parsing ⪅ +PASS XHTML Mobile parsing ⋖ +PASS XHTML Mobile parsing ⋚ +PASS XHTML Mobile parsing ⪋ +PASS XHTML Mobile parsing ⋚ +PASS XHTML Mobile parsing ≦ +PASS XHTML Mobile parsing ≶ +PASS XHTML Mobile parsing ≶ +PASS XHTML Mobile parsing ⪡ +PASS XHTML Mobile parsing ≲ +PASS XHTML Mobile parsing ⩽ +PASS XHTML Mobile parsing ≲ +PASS XHTML Mobile parsing ⥼ +PASS XHTML Mobile parsing ⌊ +PASS XHTML Mobile parsing 𝔏 +PASS XHTML Mobile parsing 𝔩 +PASS XHTML Mobile parsing ≶ +PASS XHTML Mobile parsing ⪑ +PASS XHTML Mobile parsing ⥢ +PASS XHTML Mobile parsing ↽ +PASS XHTML Mobile parsing ↼ +PASS XHTML Mobile parsing ⥪ +PASS XHTML Mobile parsing ▄ +PASS XHTML Mobile parsing Љ +PASS XHTML Mobile parsing љ +PASS XHTML Mobile parsing ⇇ +PASS XHTML Mobile parsing ≪ +PASS XHTML Mobile parsing ⋘ +PASS XHTML Mobile parsing ⌞ +PASS XHTML Mobile parsing ⇚ +PASS XHTML Mobile parsing ⥫ +PASS XHTML Mobile parsing ◺ +PASS XHTML Mobile parsing Ŀ +PASS XHTML Mobile parsing ŀ +PASS XHTML Mobile parsing ⎰ +PASS XHTML Mobile parsing ⎰ +PASS XHTML Mobile parsing ⪉ +PASS XHTML Mobile parsing ⪉ +PASS XHTML Mobile parsing ⪇ +PASS XHTML Mobile parsing ≨ +PASS XHTML Mobile parsing ⪇ +PASS XHTML Mobile parsing ≨ +PASS XHTML Mobile parsing ⋦ +PASS XHTML Mobile parsing ⟬ +PASS XHTML Mobile parsing ⇽ +PASS XHTML Mobile parsing ⟦ +PASS XHTML Mobile parsing ⟵ +PASS XHTML Mobile parsing ⟵ +PASS XHTML Mobile parsing ⟸ +PASS XHTML Mobile parsing ⟷ +PASS XHTML Mobile parsing ⟷ +PASS XHTML Mobile parsing ⟺ +PASS XHTML Mobile parsing ⟼ +PASS XHTML Mobile parsing ⟶ +PASS XHTML Mobile parsing ⟶ +PASS XHTML Mobile parsing ⟹ +PASS XHTML Mobile parsing ↫ +PASS XHTML Mobile parsing ↬ +PASS XHTML Mobile parsing ⦅ +PASS XHTML Mobile parsing 𝕃 +PASS XHTML Mobile parsing 𝕝 +PASS XHTML Mobile parsing ⨭ +PASS XHTML Mobile parsing ⨴ +PASS XHTML Mobile parsing ∗ +PASS XHTML Mobile parsing _ +PASS XHTML Mobile parsing ↙ +PASS XHTML Mobile parsing ↘ +PASS XHTML Mobile parsing ◊ +PASS XHTML Mobile parsing ◊ +PASS XHTML Mobile parsing ⧫ +PASS XHTML Mobile parsing ( +PASS XHTML Mobile parsing ⦓ +PASS XHTML Mobile parsing ⇆ +PASS XHTML Mobile parsing ⌟ +PASS XHTML Mobile parsing ⇋ +PASS XHTML Mobile parsing ⥭ +PASS XHTML Mobile parsing ‎ +PASS XHTML Mobile parsing ⊿ +PASS XHTML Mobile parsing ‹ +PASS XHTML Mobile parsing 𝓁 +PASS XHTML Mobile parsing ℒ +PASS XHTML Mobile parsing ↰ +PASS XHTML Mobile parsing ↰ +PASS XHTML Mobile parsing ≲ +PASS XHTML Mobile parsing ⪍ +PASS XHTML Mobile parsing ⪏ +PASS XHTML Mobile parsing [ +PASS XHTML Mobile parsing ‘ +PASS XHTML Mobile parsing ‚ +PASS XHTML Mobile parsing Ł +PASS XHTML Mobile parsing ł +PASS XHTML Mobile parsing ⪦ +PASS XHTML Mobile parsing ⩹ +PASS XHTML Mobile parsing < +FAIL XHTML Mobile parsing < assert_true: expected true got false +PASS XHTML Mobile parsing ≪ +PASS XHTML Mobile parsing ⋖ +PASS XHTML Mobile parsing ⋋ +PASS XHTML Mobile parsing ⋉ +PASS XHTML Mobile parsing ⥶ +PASS XHTML Mobile parsing ⩻ +PASS XHTML Mobile parsing ◃ +PASS XHTML Mobile parsing ⊴ +PASS XHTML Mobile parsing ◂ +PASS XHTML Mobile parsing ⦖ +PASS XHTML Mobile parsing ⥊ +PASS XHTML Mobile parsing ⥦ +PASS XHTML Mobile parsing ≨︀ +PASS XHTML Mobile parsing ≨︀ +PASS XHTML Mobile parsing ¯ +PASS XHTML Mobile parsing ♂ +PASS XHTML Mobile parsing ✠ +PASS XHTML Mobile parsing ✠ +PASS XHTML Mobile parsing ⤅ +PASS XHTML Mobile parsing ↦ +PASS XHTML Mobile parsing ↦ +PASS XHTML Mobile parsing ↧ +PASS XHTML Mobile parsing ↤ +PASS XHTML Mobile parsing ↥ +PASS XHTML Mobile parsing ▮ +PASS XHTML Mobile parsing ⨩ +PASS XHTML Mobile parsing М +PASS XHTML Mobile parsing м +PASS XHTML Mobile parsing — +PASS XHTML Mobile parsing ∺ +PASS XHTML Mobile parsing ∡ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing ℳ +PASS XHTML Mobile parsing 𝔐 +PASS XHTML Mobile parsing 𝔪 +PASS XHTML Mobile parsing ℧ +PASS XHTML Mobile parsing µ +PASS XHTML Mobile parsing * +PASS XHTML Mobile parsing ⫰ +PASS XHTML Mobile parsing ∣ +PASS XHTML Mobile parsing · +PASS XHTML Mobile parsing ⊟ +PASS XHTML Mobile parsing − +PASS XHTML Mobile parsing ∸ +PASS XHTML Mobile parsing ⨪ +PASS XHTML Mobile parsing ∓ +PASS XHTML Mobile parsing ⫛ +PASS XHTML Mobile parsing … +PASS XHTML Mobile parsing ∓ +PASS XHTML Mobile parsing ⊧ +PASS XHTML Mobile parsing 𝕄 +PASS XHTML Mobile parsing 𝕞 +PASS XHTML Mobile parsing ∓ +PASS XHTML Mobile parsing 𝓂 +PASS XHTML Mobile parsing ℳ +PASS XHTML Mobile parsing ∾ +PASS XHTML Mobile parsing Μ +PASS XHTML Mobile parsing μ +PASS XHTML Mobile parsing ⊸ +PASS XHTML Mobile parsing ⊸ +PASS XHTML Mobile parsing ∇ +PASS XHTML Mobile parsing Ń +PASS XHTML Mobile parsing ń +PASS XHTML Mobile parsing ∠⃒ +PASS XHTML Mobile parsing ≉ +PASS XHTML Mobile parsing ⩰̸ +PASS XHTML Mobile parsing ≋̸ +PASS XHTML Mobile parsing ʼn +PASS XHTML Mobile parsing ≉ +PASS XHTML Mobile parsing ♮ +PASS XHTML Mobile parsing ℕ +PASS XHTML Mobile parsing ♮ +PASS XHTML Mobile parsing +PASS XHTML Mobile parsing ≎̸ +PASS XHTML Mobile parsing ≏̸ +PASS XHTML Mobile parsing ⩃ +PASS XHTML Mobile parsing Ň +PASS XHTML Mobile parsing ň +PASS XHTML Mobile parsing Ņ +PASS XHTML Mobile parsing ņ +PASS XHTML Mobile parsing ≇ +PASS XHTML Mobile parsing ⩭̸ +PASS XHTML Mobile parsing ⩂ +PASS XHTML Mobile parsing Н +PASS XHTML Mobile parsing н +PASS XHTML Mobile parsing – +PASS XHTML Mobile parsing ⤤ +PASS XHTML Mobile parsing ↗ +PASS XHTML Mobile parsing ⇗ +PASS XHTML Mobile parsing ↗ +PASS XHTML Mobile parsing ≠ +PASS XHTML Mobile parsing ≐̸ +PASS XHTML Mobile parsing ​ +PASS XHTML Mobile parsing ​ +PASS XHTML Mobile parsing ​ +PASS XHTML Mobile parsing ​ +PASS XHTML Mobile parsing ≢ +PASS XHTML Mobile parsing ⤨ +PASS XHTML Mobile parsing ≂̸ +PASS XHTML Mobile parsing ≫ +PASS XHTML Mobile parsing ≪ +PASS XHTML Mobile parsing 
 +PASS XHTML Mobile parsing ∄ +PASS XHTML Mobile parsing ∄ +PASS XHTML Mobile parsing 𝔑 +PASS XHTML Mobile parsing 𝔫 +PASS XHTML Mobile parsing ≧̸ +PASS XHTML Mobile parsing ≱ +PASS XHTML Mobile parsing ≱ +PASS XHTML Mobile parsing ≧̸ +PASS XHTML Mobile parsing ⩾̸ +PASS XHTML Mobile parsing ⩾̸ +PASS XHTML Mobile parsing ⋙̸ +PASS XHTML Mobile parsing ≵ +PASS XHTML Mobile parsing ≫⃒ +PASS XHTML Mobile parsing ≯ +PASS XHTML Mobile parsing ≯ +PASS XHTML Mobile parsing ≫̸ +PASS XHTML Mobile parsing ↮ +PASS XHTML Mobile parsing ⇎ +PASS XHTML Mobile parsing ⫲ +PASS XHTML Mobile parsing ∋ +PASS XHTML Mobile parsing ⋼ +PASS XHTML Mobile parsing ⋺ +PASS XHTML Mobile parsing ∋ +PASS XHTML Mobile parsing Њ +PASS XHTML Mobile parsing њ +PASS XHTML Mobile parsing ↚ +PASS XHTML Mobile parsing ⇍ +PASS XHTML Mobile parsing ‥ +PASS XHTML Mobile parsing ≦̸ +PASS XHTML Mobile parsing ≰ +PASS XHTML Mobile parsing ↚ +PASS XHTML Mobile parsing ⇍ +PASS XHTML Mobile parsing ↮ +PASS XHTML Mobile parsing ⇎ +PASS XHTML Mobile parsing ≰ +PASS XHTML Mobile parsing ≦̸ +PASS XHTML Mobile parsing ⩽̸ +PASS XHTML Mobile parsing ⩽̸ +PASS XHTML Mobile parsing ≮ +PASS XHTML Mobile parsing ⋘̸ +PASS XHTML Mobile parsing ≴ +PASS XHTML Mobile parsing ≪⃒ +PASS XHTML Mobile parsing ≮ +PASS XHTML Mobile parsing ⋪ +PASS XHTML Mobile parsing ⋬ +PASS XHTML Mobile parsing ≪̸ +PASS XHTML Mobile parsing ∤ +PASS XHTML Mobile parsing ⁠ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing 𝕟 +PASS XHTML Mobile parsing ℕ +PASS XHTML Mobile parsing ⫬ +PASS XHTML Mobile parsing ¬ +PASS XHTML Mobile parsing ≢ +PASS XHTML Mobile parsing ≭ +PASS XHTML Mobile parsing ∦ +PASS XHTML Mobile parsing ∉ +PASS XHTML Mobile parsing ≠ +PASS XHTML Mobile parsing ≂̸ +PASS XHTML Mobile parsing ∄ +PASS XHTML Mobile parsing ≯ +PASS XHTML Mobile parsing ≱ +PASS XHTML Mobile parsing ≧̸ +PASS XHTML Mobile parsing ≫̸ +PASS XHTML Mobile parsing ≹ +PASS XHTML Mobile parsing ⩾̸ +PASS XHTML Mobile parsing ≵ +PASS XHTML Mobile parsing ≎̸ +PASS XHTML Mobile parsing ≏̸ +PASS XHTML Mobile parsing ∉ +PASS XHTML Mobile parsing ⋵̸ +PASS XHTML Mobile parsing ⋹̸ +PASS XHTML Mobile parsing ∉ +PASS XHTML Mobile parsing ⋷ +PASS XHTML Mobile parsing ⋶ +PASS XHTML Mobile parsing ⧏̸ +PASS XHTML Mobile parsing ⋪ +PASS XHTML Mobile parsing ⋬ +PASS XHTML Mobile parsing ≮ +PASS XHTML Mobile parsing ≰ +PASS XHTML Mobile parsing ≸ +PASS XHTML Mobile parsing ≪̸ +PASS XHTML Mobile parsing ⩽̸ +PASS XHTML Mobile parsing ≴ +PASS XHTML Mobile parsing ⪢̸ +PASS XHTML Mobile parsing ⪡̸ +PASS XHTML Mobile parsing ∌ +PASS XHTML Mobile parsing ∌ +PASS XHTML Mobile parsing ⋾ +PASS XHTML Mobile parsing ⋽ +PASS XHTML Mobile parsing ⊀ +PASS XHTML Mobile parsing ⪯̸ +PASS XHTML Mobile parsing ⋠ +PASS XHTML Mobile parsing ∌ +PASS XHTML Mobile parsing ⧐̸ +PASS XHTML Mobile parsing ⋫ +PASS XHTML Mobile parsing ⋭ +PASS XHTML Mobile parsing ⊏̸ +PASS XHTML Mobile parsing ⋢ +PASS XHTML Mobile parsing ⊐̸ +PASS XHTML Mobile parsing ⋣ +PASS XHTML Mobile parsing ⊂⃒ +PASS XHTML Mobile parsing ⊈ +PASS XHTML Mobile parsing ⊁ +PASS XHTML Mobile parsing ⪰̸ +PASS XHTML Mobile parsing ⋡ +PASS XHTML Mobile parsing ≿̸ +PASS XHTML Mobile parsing ⊃⃒ +PASS XHTML Mobile parsing ⊉ +PASS XHTML Mobile parsing ≁ +PASS XHTML Mobile parsing ≄ +PASS XHTML Mobile parsing ≇ +PASS XHTML Mobile parsing ≉ +PASS XHTML Mobile parsing ∤ +PASS XHTML Mobile parsing ∦ +PASS XHTML Mobile parsing ∦ +PASS XHTML Mobile parsing ⫽⃥ +PASS XHTML Mobile parsing ∂̸ +PASS XHTML Mobile parsing ⨔ +PASS XHTML Mobile parsing ⊀ +PASS XHTML Mobile parsing ⋠ +PASS XHTML Mobile parsing ⊀ +PASS XHTML Mobile parsing ⪯̸ +PASS XHTML Mobile parsing ⪯̸ +PASS XHTML Mobile parsing ⤳̸ +PASS XHTML Mobile parsing ↛ +PASS XHTML Mobile parsing ⇏ +PASS XHTML Mobile parsing ↝̸ +PASS XHTML Mobile parsing ↛ +PASS XHTML Mobile parsing ⇏ +PASS XHTML Mobile parsing ⋫ +PASS XHTML Mobile parsing ⋭ +PASS XHTML Mobile parsing ⊁ +PASS XHTML Mobile parsing ⋡ +PASS XHTML Mobile parsing ⪰̸ +PASS XHTML Mobile parsing 𝒩 +PASS XHTML Mobile parsing 𝓃 +PASS XHTML Mobile parsing ∤ +PASS XHTML Mobile parsing ∦ +PASS XHTML Mobile parsing ≁ +PASS XHTML Mobile parsing ≄ +PASS XHTML Mobile parsing ≄ +PASS XHTML Mobile parsing ∤ +PASS XHTML Mobile parsing ∦ +PASS XHTML Mobile parsing ⋢ +PASS XHTML Mobile parsing ⋣ +PASS XHTML Mobile parsing ⊄ +PASS XHTML Mobile parsing ⫅̸ +PASS XHTML Mobile parsing ⊈ +PASS XHTML Mobile parsing ⊂⃒ +PASS XHTML Mobile parsing ⊈ +PASS XHTML Mobile parsing ⫅̸ +PASS XHTML Mobile parsing ⊁ +PASS XHTML Mobile parsing ⪰̸ +PASS XHTML Mobile parsing ⊅ +PASS XHTML Mobile parsing ⫆̸ +PASS XHTML Mobile parsing ⊉ +PASS XHTML Mobile parsing ⊃⃒ +PASS XHTML Mobile parsing ⊉ +PASS XHTML Mobile parsing ⫆̸ +PASS XHTML Mobile parsing ≹ +PASS XHTML Mobile parsing Ñ +PASS XHTML Mobile parsing ñ +PASS XHTML Mobile parsing ≸ +PASS XHTML Mobile parsing ⋪ +PASS XHTML Mobile parsing ⋬ +PASS XHTML Mobile parsing ⋫ +PASS XHTML Mobile parsing ⋭ +PASS XHTML Mobile parsing Ν +PASS XHTML Mobile parsing ν +PASS XHTML Mobile parsing # +PASS XHTML Mobile parsing № +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing ≍⃒ +PASS XHTML Mobile parsing ⊬ +PASS XHTML Mobile parsing ⊭ +PASS XHTML Mobile parsing ⊮ +PASS XHTML Mobile parsing ⊯ +PASS XHTML Mobile parsing ≥⃒ +PASS XHTML Mobile parsing >⃒ +PASS XHTML Mobile parsing ⤄ +PASS XHTML Mobile parsing ⧞ +PASS XHTML Mobile parsing ⤂ +PASS XHTML Mobile parsing ≤⃒ +FAIL XHTML Mobile parsing <⃒ assert_equals: XHTML Mobile parsing the entity reference caused a parse error; expected 3 but got 1 +PASS XHTML Mobile parsing ⊴⃒ +PASS XHTML Mobile parsing ⤃ +PASS XHTML Mobile parsing ⊵⃒ +PASS XHTML Mobile parsing ∼⃒ +PASS XHTML Mobile parsing ⤣ +PASS XHTML Mobile parsing ↖ +PASS XHTML Mobile parsing ⇖ +PASS XHTML Mobile parsing ↖ +PASS XHTML Mobile parsing ⤧ +PASS XHTML Mobile parsing Ó +PASS XHTML Mobile parsing ó +PASS XHTML Mobile parsing ⊛ +PASS XHTML Mobile parsing Ô +PASS XHTML Mobile parsing ô +PASS XHTML Mobile parsing ⊚ +PASS XHTML Mobile parsing О +PASS XHTML Mobile parsing о +PASS XHTML Mobile parsing ⊝ +PASS XHTML Mobile parsing Ő +PASS XHTML Mobile parsing ő +PASS XHTML Mobile parsing ⨸ +PASS XHTML Mobile parsing ⊙ +PASS XHTML Mobile parsing ⦼ +PASS XHTML Mobile parsing Œ +PASS XHTML Mobile parsing œ +PASS XHTML Mobile parsing ⦿ +PASS XHTML Mobile parsing 𝔒 +PASS XHTML Mobile parsing 𝔬 +PASS XHTML Mobile parsing ˛ +PASS XHTML Mobile parsing Ò +PASS XHTML Mobile parsing ò +PASS XHTML Mobile parsing ⧁ +PASS XHTML Mobile parsing ⦵ +PASS XHTML Mobile parsing Ω +PASS XHTML Mobile parsing ∮ +PASS XHTML Mobile parsing ↺ +PASS XHTML Mobile parsing ⦾ +PASS XHTML Mobile parsing ⦻ +PASS XHTML Mobile parsing ‾ +PASS XHTML Mobile parsing ⧀ +PASS XHTML Mobile parsing Ō +PASS XHTML Mobile parsing ō +PASS XHTML Mobile parsing Ω +PASS XHTML Mobile parsing ω +PASS XHTML Mobile parsing Ο +PASS XHTML Mobile parsing ο +PASS XHTML Mobile parsing ⦶ +PASS XHTML Mobile parsing ⊖ +PASS XHTML Mobile parsing 𝕆 +PASS XHTML Mobile parsing 𝕠 +PASS XHTML Mobile parsing ⦷ +PASS XHTML Mobile parsing “ +PASS XHTML Mobile parsing ‘ +PASS XHTML Mobile parsing ⦹ +PASS XHTML Mobile parsing ⊕ +PASS XHTML Mobile parsing ↻ +PASS XHTML Mobile parsing ⩔ +PASS XHTML Mobile parsing ∨ +PASS XHTML Mobile parsing ⩝ +PASS XHTML Mobile parsing ℴ +PASS XHTML Mobile parsing ℴ +PASS XHTML Mobile parsing ª +PASS XHTML Mobile parsing º +PASS XHTML Mobile parsing ⊶ +PASS XHTML Mobile parsing ⩖ +PASS XHTML Mobile parsing ⩗ +PASS XHTML Mobile parsing ⩛ +PASS XHTML Mobile parsing Ⓢ +PASS XHTML Mobile parsing 𝒪 +PASS XHTML Mobile parsing ℴ +PASS XHTML Mobile parsing Ø +PASS XHTML Mobile parsing ø +PASS XHTML Mobile parsing ⊘ +PASS XHTML Mobile parsing Õ +PASS XHTML Mobile parsing õ +PASS XHTML Mobile parsing ⨶ +PASS XHTML Mobile parsing ⨷ +PASS XHTML Mobile parsing ⊗ +PASS XHTML Mobile parsing Ö +PASS XHTML Mobile parsing ö +PASS XHTML Mobile parsing ⌽ +PASS XHTML Mobile parsing ‾ +PASS XHTML Mobile parsing ⏞ +PASS XHTML Mobile parsing ⎴ +PASS XHTML Mobile parsing ⏜ +PASS XHTML Mobile parsing ¶ +PASS XHTML Mobile parsing ∥ +PASS XHTML Mobile parsing ∥ +PASS XHTML Mobile parsing ⫳ +PASS XHTML Mobile parsing ⫽ +PASS XHTML Mobile parsing ∂ +PASS XHTML Mobile parsing ∂ +PASS XHTML Mobile parsing П +PASS XHTML Mobile parsing п +PASS XHTML Mobile parsing % +PASS XHTML Mobile parsing . +PASS XHTML Mobile parsing ‰ +PASS XHTML Mobile parsing ⊥ +PASS XHTML Mobile parsing ‱ +PASS XHTML Mobile parsing 𝔓 +PASS XHTML Mobile parsing 𝔭 +PASS XHTML Mobile parsing Φ +PASS XHTML Mobile parsing φ +PASS XHTML Mobile parsing ϕ +PASS XHTML Mobile parsing ℳ +PASS XHTML Mobile parsing ☎ +PASS XHTML Mobile parsing Π +PASS XHTML Mobile parsing π +PASS XHTML Mobile parsing ⋔ +PASS XHTML Mobile parsing ϖ +PASS XHTML Mobile parsing ℏ +PASS XHTML Mobile parsing ℎ +PASS XHTML Mobile parsing ℏ +PASS XHTML Mobile parsing ⨣ +PASS XHTML Mobile parsing ⊞ +PASS XHTML Mobile parsing ⨢ +PASS XHTML Mobile parsing + +PASS XHTML Mobile parsing ∔ +PASS XHTML Mobile parsing ⨥ +PASS XHTML Mobile parsing ⩲ +PASS XHTML Mobile parsing ± +PASS XHTML Mobile parsing ± +PASS XHTML Mobile parsing ⨦ +PASS XHTML Mobile parsing ⨧ +PASS XHTML Mobile parsing ± +PASS XHTML Mobile parsing ℌ +PASS XHTML Mobile parsing ⨕ +PASS XHTML Mobile parsing 𝕡 +PASS XHTML Mobile parsing ℙ +PASS XHTML Mobile parsing £ +PASS XHTML Mobile parsing ⪷ +PASS XHTML Mobile parsing ⪻ +PASS XHTML Mobile parsing ≺ +PASS XHTML Mobile parsing ≼ +PASS XHTML Mobile parsing ⪷ +PASS XHTML Mobile parsing ≺ +PASS XHTML Mobile parsing ≼ +PASS XHTML Mobile parsing ≺ +PASS XHTML Mobile parsing ⪯ +PASS XHTML Mobile parsing ≼ +PASS XHTML Mobile parsing ≾ +PASS XHTML Mobile parsing ⪯ +PASS XHTML Mobile parsing ⪹ +PASS XHTML Mobile parsing ⪵ +PASS XHTML Mobile parsing ⋨ +PASS XHTML Mobile parsing ⪯ +PASS XHTML Mobile parsing ⪳ +PASS XHTML Mobile parsing ≾ +PASS XHTML Mobile parsing ′ +PASS XHTML Mobile parsing ″ +PASS XHTML Mobile parsing ℙ +PASS XHTML Mobile parsing ⪹ +PASS XHTML Mobile parsing ⪵ +PASS XHTML Mobile parsing ⋨ +PASS XHTML Mobile parsing ∏ +PASS XHTML Mobile parsing ∏ +PASS XHTML Mobile parsing ⌮ +PASS XHTML Mobile parsing ⌒ +PASS XHTML Mobile parsing ⌓ +PASS XHTML Mobile parsing ∝ +PASS XHTML Mobile parsing ∝ +PASS XHTML Mobile parsing ∷ +PASS XHTML Mobile parsing ∝ +PASS XHTML Mobile parsing ≾ +PASS XHTML Mobile parsing ⊰ +PASS XHTML Mobile parsing 𝒫 +PASS XHTML Mobile parsing 𝓅 +PASS XHTML Mobile parsing Ψ +PASS XHTML Mobile parsing ψ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing 𝔔 +PASS XHTML Mobile parsing 𝔮 +PASS XHTML Mobile parsing ⨌ +PASS XHTML Mobile parsing 𝕢 +PASS XHTML Mobile parsing ℚ +PASS XHTML Mobile parsing ⁗ +PASS XHTML Mobile parsing 𝒬 +PASS XHTML Mobile parsing 𝓆 +PASS XHTML Mobile parsing ℍ +PASS XHTML Mobile parsing ⨖ +PASS XHTML Mobile parsing ? +PASS XHTML Mobile parsing ≟ +PASS XHTML Mobile parsing " +PASS XHTML Mobile parsing " +PASS XHTML Mobile parsing ⇛ +PASS XHTML Mobile parsing ∽̱ +PASS XHTML Mobile parsing Ŕ +PASS XHTML Mobile parsing ŕ +PASS XHTML Mobile parsing √ +PASS XHTML Mobile parsing ⦳ +PASS XHTML Mobile parsing ⟩ +PASS XHTML Mobile parsing ⟫ +PASS XHTML Mobile parsing ⦒ +PASS XHTML Mobile parsing ⦥ +PASS XHTML Mobile parsing ⟩ +PASS XHTML Mobile parsing » +PASS XHTML Mobile parsing ⥵ +PASS XHTML Mobile parsing ⇥ +PASS XHTML Mobile parsing ⤠ +PASS XHTML Mobile parsing ⤳ +PASS XHTML Mobile parsing → +PASS XHTML Mobile parsing ↠ +PASS XHTML Mobile parsing ⇒ +PASS XHTML Mobile parsing ⤞ +PASS XHTML Mobile parsing ↪ +PASS XHTML Mobile parsing ↬ +PASS XHTML Mobile parsing ⥅ +PASS XHTML Mobile parsing ⥴ +PASS XHTML Mobile parsing ⤖ +PASS XHTML Mobile parsing ↣ +PASS XHTML Mobile parsing ↝ +PASS XHTML Mobile parsing ⤚ +PASS XHTML Mobile parsing ⤜ +PASS XHTML Mobile parsing ∶ +PASS XHTML Mobile parsing ℚ +PASS XHTML Mobile parsing ⤍ +PASS XHTML Mobile parsing ⤏ +PASS XHTML Mobile parsing ⤐ +PASS XHTML Mobile parsing ❳ +PASS XHTML Mobile parsing } +PASS XHTML Mobile parsing ] +PASS XHTML Mobile parsing ⦌ +PASS XHTML Mobile parsing ⦎ +PASS XHTML Mobile parsing ⦐ +PASS XHTML Mobile parsing Ř +PASS XHTML Mobile parsing ř +PASS XHTML Mobile parsing Ŗ +PASS XHTML Mobile parsing ŗ +PASS XHTML Mobile parsing ⌉ +PASS XHTML Mobile parsing } +PASS XHTML Mobile parsing Р +PASS XHTML Mobile parsing р +PASS XHTML Mobile parsing ⤷ +PASS XHTML Mobile parsing ⥩ +PASS XHTML Mobile parsing ” +PASS XHTML Mobile parsing ” +PASS XHTML Mobile parsing ↳ +PASS XHTML Mobile parsing ℜ +PASS XHTML Mobile parsing ℛ +PASS XHTML Mobile parsing ℜ +PASS XHTML Mobile parsing ℝ +PASS XHTML Mobile parsing ℜ +PASS XHTML Mobile parsing ▭ +PASS XHTML Mobile parsing ® +PASS XHTML Mobile parsing ® +PASS XHTML Mobile parsing ∋ +PASS XHTML Mobile parsing ⇋ +PASS XHTML Mobile parsing ⥯ +PASS XHTML Mobile parsing ⥽ +PASS XHTML Mobile parsing ⌋ +PASS XHTML Mobile parsing 𝔯 +PASS XHTML Mobile parsing ℜ +PASS XHTML Mobile parsing ⥤ +PASS XHTML Mobile parsing ⇁ +PASS XHTML Mobile parsing ⇀ +PASS XHTML Mobile parsing ⥬ +PASS XHTML Mobile parsing Ρ +PASS XHTML Mobile parsing ρ +PASS XHTML Mobile parsing ϱ +PASS XHTML Mobile parsing ⟩ +PASS XHTML Mobile parsing ⇥ +PASS XHTML Mobile parsing → +PASS XHTML Mobile parsing → +PASS XHTML Mobile parsing ⇒ +PASS XHTML Mobile parsing ⇄ +PASS XHTML Mobile parsing ↣ +PASS XHTML Mobile parsing ⌉ +PASS XHTML Mobile parsing ⟧ +PASS XHTML Mobile parsing ⥝ +PASS XHTML Mobile parsing ⥕ +PASS XHTML Mobile parsing ⇂ +PASS XHTML Mobile parsing ⌋ +PASS XHTML Mobile parsing ⇁ +PASS XHTML Mobile parsing ⇀ +PASS XHTML Mobile parsing ⇄ +PASS XHTML Mobile parsing ⇌ +PASS XHTML Mobile parsing ⇉ +PASS XHTML Mobile parsing ↝ +PASS XHTML Mobile parsing ↦ +PASS XHTML Mobile parsing ⊢ +PASS XHTML Mobile parsing ⥛ +PASS XHTML Mobile parsing ⋌ +PASS XHTML Mobile parsing ⧐ +PASS XHTML Mobile parsing ⊳ +PASS XHTML Mobile parsing ⊵ +PASS XHTML Mobile parsing ⥏ +PASS XHTML Mobile parsing ⥜ +PASS XHTML Mobile parsing ⥔ +PASS XHTML Mobile parsing ↾ +PASS XHTML Mobile parsing ⥓ +PASS XHTML Mobile parsing ⇀ +PASS XHTML Mobile parsing ˚ +PASS XHTML Mobile parsing ≓ +PASS XHTML Mobile parsing ⇄ +PASS XHTML Mobile parsing ⇌ +PASS XHTML Mobile parsing ‏ +PASS XHTML Mobile parsing ⎱ +PASS XHTML Mobile parsing ⎱ +PASS XHTML Mobile parsing ⫮ +PASS XHTML Mobile parsing ⟭ +PASS XHTML Mobile parsing ⇾ +PASS XHTML Mobile parsing ⟧ +PASS XHTML Mobile parsing ⦆ +PASS XHTML Mobile parsing 𝕣 +PASS XHTML Mobile parsing ℝ +PASS XHTML Mobile parsing ⨮ +PASS XHTML Mobile parsing ⨵ +PASS XHTML Mobile parsing ⥰ +PASS XHTML Mobile parsing ) +PASS XHTML Mobile parsing ⦔ +PASS XHTML Mobile parsing ⨒ +PASS XHTML Mobile parsing ⇉ +PASS XHTML Mobile parsing ⇛ +PASS XHTML Mobile parsing › +PASS XHTML Mobile parsing 𝓇 +PASS XHTML Mobile parsing ℛ +PASS XHTML Mobile parsing ↱ +PASS XHTML Mobile parsing ↱ +PASS XHTML Mobile parsing ] +PASS XHTML Mobile parsing ’ +PASS XHTML Mobile parsing ’ +PASS XHTML Mobile parsing ⋌ +PASS XHTML Mobile parsing ⋊ +PASS XHTML Mobile parsing ▹ +PASS XHTML Mobile parsing ⊵ +PASS XHTML Mobile parsing ▸ +PASS XHTML Mobile parsing ⧎ +PASS XHTML Mobile parsing ⧴ +PASS XHTML Mobile parsing ⥨ +PASS XHTML Mobile parsing ℞ +PASS XHTML Mobile parsing Ś +PASS XHTML Mobile parsing ś +PASS XHTML Mobile parsing ‚ +PASS XHTML Mobile parsing ⪸ +PASS XHTML Mobile parsing Š +PASS XHTML Mobile parsing š +PASS XHTML Mobile parsing ⪼ +PASS XHTML Mobile parsing ≻ +PASS XHTML Mobile parsing ≽ +PASS XHTML Mobile parsing ⪰ +PASS XHTML Mobile parsing ⪴ +PASS XHTML Mobile parsing Ş +PASS XHTML Mobile parsing ş +PASS XHTML Mobile parsing Ŝ +PASS XHTML Mobile parsing ŝ +PASS XHTML Mobile parsing ⪺ +PASS XHTML Mobile parsing ⪶ +PASS XHTML Mobile parsing ⋩ +PASS XHTML Mobile parsing ⨓ +PASS XHTML Mobile parsing ≿ +PASS XHTML Mobile parsing С +PASS XHTML Mobile parsing с +PASS XHTML Mobile parsing ⊡ +PASS XHTML Mobile parsing ⋅ +PASS XHTML Mobile parsing ⩦ +PASS XHTML Mobile parsing ⤥ +PASS XHTML Mobile parsing ↘ +PASS XHTML Mobile parsing ⇘ +PASS XHTML Mobile parsing ↘ +PASS XHTML Mobile parsing § +PASS XHTML Mobile parsing ; +PASS XHTML Mobile parsing ⤩ +PASS XHTML Mobile parsing ∖ +PASS XHTML Mobile parsing ∖ +PASS XHTML Mobile parsing ✶ +PASS XHTML Mobile parsing 𝔖 +PASS XHTML Mobile parsing 𝔰 +PASS XHTML Mobile parsing ⌢ +PASS XHTML Mobile parsing ♯ +PASS XHTML Mobile parsing Щ +PASS XHTML Mobile parsing щ +PASS XHTML Mobile parsing Ш +PASS XHTML Mobile parsing ш +PASS XHTML Mobile parsing ↓ +PASS XHTML Mobile parsing ← +PASS XHTML Mobile parsing ∣ +PASS XHTML Mobile parsing ∥ +PASS XHTML Mobile parsing → +PASS XHTML Mobile parsing ↑ +PASS XHTML Mobile parsing ­ +PASS XHTML Mobile parsing Σ +PASS XHTML Mobile parsing σ +PASS XHTML Mobile parsing ς +PASS XHTML Mobile parsing ς +PASS XHTML Mobile parsing ∼ +PASS XHTML Mobile parsing ⩪ +PASS XHTML Mobile parsing ≃ +PASS XHTML Mobile parsing ≃ +PASS XHTML Mobile parsing ⪞ +PASS XHTML Mobile parsing ⪠ +PASS XHTML Mobile parsing ⪝ +PASS XHTML Mobile parsing ⪟ +PASS XHTML Mobile parsing ≆ +PASS XHTML Mobile parsing ⨤ +PASS XHTML Mobile parsing ⥲ +PASS XHTML Mobile parsing ← +PASS XHTML Mobile parsing ∘ +PASS XHTML Mobile parsing ∖ +PASS XHTML Mobile parsing ⨳ +PASS XHTML Mobile parsing ⧤ +PASS XHTML Mobile parsing ∣ +PASS XHTML Mobile parsing ⌣ +PASS XHTML Mobile parsing ⪪ +PASS XHTML Mobile parsing ⪬ +PASS XHTML Mobile parsing ⪬︀ +PASS XHTML Mobile parsing Ь +PASS XHTML Mobile parsing ь +PASS XHTML Mobile parsing ⌿ +PASS XHTML Mobile parsing ⧄ +PASS XHTML Mobile parsing / +PASS XHTML Mobile parsing 𝕊 +PASS XHTML Mobile parsing 𝕤 +PASS XHTML Mobile parsing ♠ +PASS XHTML Mobile parsing ♠ +PASS XHTML Mobile parsing ∥ +PASS XHTML Mobile parsing ⊓ +PASS XHTML Mobile parsing ⊓︀ +PASS XHTML Mobile parsing ⊔ +PASS XHTML Mobile parsing ⊔︀ +PASS XHTML Mobile parsing √ +PASS XHTML Mobile parsing ⊏ +PASS XHTML Mobile parsing ⊑ +PASS XHTML Mobile parsing ⊏ +PASS XHTML Mobile parsing ⊑ +PASS XHTML Mobile parsing ⊐ +PASS XHTML Mobile parsing ⊒ +PASS XHTML Mobile parsing ⊐ +PASS XHTML Mobile parsing ⊒ +PASS XHTML Mobile parsing □ +PASS XHTML Mobile parsing □ +PASS XHTML Mobile parsing ⊓ +PASS XHTML Mobile parsing ⊏ +PASS XHTML Mobile parsing ⊑ +PASS XHTML Mobile parsing ⊐ +PASS XHTML Mobile parsing ⊒ +PASS XHTML Mobile parsing ⊔ +PASS XHTML Mobile parsing ▪ +PASS XHTML Mobile parsing □ +PASS XHTML Mobile parsing ▪ +PASS XHTML Mobile parsing → +PASS XHTML Mobile parsing 𝒮 +PASS XHTML Mobile parsing 𝓈 +PASS XHTML Mobile parsing ∖ +PASS XHTML Mobile parsing ⌣ +PASS XHTML Mobile parsing ⋆ +PASS XHTML Mobile parsing ⋆ +PASS XHTML Mobile parsing ☆ +PASS XHTML Mobile parsing ★ +PASS XHTML Mobile parsing ϵ +PASS XHTML Mobile parsing ϕ +PASS XHTML Mobile parsing ¯ +PASS XHTML Mobile parsing ⊂ +PASS XHTML Mobile parsing ⋐ +PASS XHTML Mobile parsing ⪽ +PASS XHTML Mobile parsing ⫅ +PASS XHTML Mobile parsing ⊆ +PASS XHTML Mobile parsing ⫃ +PASS XHTML Mobile parsing ⫁ +PASS XHTML Mobile parsing ⫋ +PASS XHTML Mobile parsing ⊊ +PASS XHTML Mobile parsing ⪿ +PASS XHTML Mobile parsing ⥹ +PASS XHTML Mobile parsing ⊂ +PASS XHTML Mobile parsing ⋐ +PASS XHTML Mobile parsing ⊆ +PASS XHTML Mobile parsing ⫅ +PASS XHTML Mobile parsing ⊆ +PASS XHTML Mobile parsing ⊊ +PASS XHTML Mobile parsing ⫋ +PASS XHTML Mobile parsing ⫇ +PASS XHTML Mobile parsing ⫕ +PASS XHTML Mobile parsing ⫓ +PASS XHTML Mobile parsing ⪸ +PASS XHTML Mobile parsing ≻ +PASS XHTML Mobile parsing ≽ +PASS XHTML Mobile parsing ≻ +PASS XHTML Mobile parsing ⪰ +PASS XHTML Mobile parsing ≽ +PASS XHTML Mobile parsing ≿ +PASS XHTML Mobile parsing ⪰ +PASS XHTML Mobile parsing ⪺ +PASS XHTML Mobile parsing ⪶ +PASS XHTML Mobile parsing ⋩ +PASS XHTML Mobile parsing ≿ +PASS XHTML Mobile parsing ∋ +PASS XHTML Mobile parsing ∑ +PASS XHTML Mobile parsing ∑ +PASS XHTML Mobile parsing ♪ +PASS XHTML Mobile parsing ¹ +PASS XHTML Mobile parsing ² +PASS XHTML Mobile parsing ³ +PASS XHTML Mobile parsing ⊃ +PASS XHTML Mobile parsing ⋑ +PASS XHTML Mobile parsing ⪾ +PASS XHTML Mobile parsing ⫘ +PASS XHTML Mobile parsing ⫆ +PASS XHTML Mobile parsing ⊇ +PASS XHTML Mobile parsing ⫄ +PASS XHTML Mobile parsing ⊃ +PASS XHTML Mobile parsing ⊇ +PASS XHTML Mobile parsing ⟉ +PASS XHTML Mobile parsing ⫗ +PASS XHTML Mobile parsing ⥻ +PASS XHTML Mobile parsing ⫂ +PASS XHTML Mobile parsing ⫌ +PASS XHTML Mobile parsing ⊋ +PASS XHTML Mobile parsing ⫀ +PASS XHTML Mobile parsing ⊃ +PASS XHTML Mobile parsing ⋑ +PASS XHTML Mobile parsing ⊇ +PASS XHTML Mobile parsing ⫆ +PASS XHTML Mobile parsing ⊋ +PASS XHTML Mobile parsing ⫌ +PASS XHTML Mobile parsing ⫈ +PASS XHTML Mobile parsing ⫔ +PASS XHTML Mobile parsing ⫖ +PASS XHTML Mobile parsing ⤦ +PASS XHTML Mobile parsing ↙ +PASS XHTML Mobile parsing ⇙ +PASS XHTML Mobile parsing ↙ +PASS XHTML Mobile parsing ⤪ +PASS XHTML Mobile parsing ß +PASS XHTML Mobile parsing 	 +PASS XHTML Mobile parsing ⌖ +PASS XHTML Mobile parsing Τ +PASS XHTML Mobile parsing τ +PASS XHTML Mobile parsing ⎴ +PASS XHTML Mobile parsing Ť +PASS XHTML Mobile parsing ť +PASS XHTML Mobile parsing Ţ +PASS XHTML Mobile parsing ţ +PASS XHTML Mobile parsing Т +PASS XHTML Mobile parsing т +PASS XHTML Mobile parsing ⃛ +PASS XHTML Mobile parsing ⌕ +PASS XHTML Mobile parsing 𝔗 +PASS XHTML Mobile parsing 𝔱 +PASS XHTML Mobile parsing ∴ +PASS XHTML Mobile parsing ∴ +PASS XHTML Mobile parsing ∴ +PASS XHTML Mobile parsing Θ +PASS XHTML Mobile parsing θ +PASS XHTML Mobile parsing ϑ +PASS XHTML Mobile parsing ϑ +PASS XHTML Mobile parsing ≈ +PASS XHTML Mobile parsing ∼ +PASS XHTML Mobile parsing    +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing ≈ +PASS XHTML Mobile parsing ∼ +PASS XHTML Mobile parsing Þ +PASS XHTML Mobile parsing þ +PASS XHTML Mobile parsing ˜ +PASS XHTML Mobile parsing ∼ +PASS XHTML Mobile parsing ≃ +PASS XHTML Mobile parsing ≅ +PASS XHTML Mobile parsing ≈ +PASS XHTML Mobile parsing ⨱ +PASS XHTML Mobile parsing ⊠ +PASS XHTML Mobile parsing × +PASS XHTML Mobile parsing ⨰ +PASS XHTML Mobile parsing ∭ +PASS XHTML Mobile parsing ⤨ +PASS XHTML Mobile parsing ⌶ +PASS XHTML Mobile parsing ⫱ +PASS XHTML Mobile parsing ⊤ +PASS XHTML Mobile parsing 𝕋 +PASS XHTML Mobile parsing 𝕥 +PASS XHTML Mobile parsing ⫚ +PASS XHTML Mobile parsing ⤩ +PASS XHTML Mobile parsing ‴ +PASS XHTML Mobile parsing ™ +PASS XHTML Mobile parsing ™ +PASS XHTML Mobile parsing ▵ +PASS XHTML Mobile parsing ▿ +PASS XHTML Mobile parsing ◃ +PASS XHTML Mobile parsing ⊴ +PASS XHTML Mobile parsing ≜ +PASS XHTML Mobile parsing ▹ +PASS XHTML Mobile parsing ⊵ +PASS XHTML Mobile parsing ◬ +PASS XHTML Mobile parsing ≜ +PASS XHTML Mobile parsing ⨺ +PASS XHTML Mobile parsing ⃛ +PASS XHTML Mobile parsing ⨹ +PASS XHTML Mobile parsing ⧍ +PASS XHTML Mobile parsing ⨻ +PASS XHTML Mobile parsing ⏢ +PASS XHTML Mobile parsing 𝒯 +PASS XHTML Mobile parsing 𝓉 +PASS XHTML Mobile parsing Ц +PASS XHTML Mobile parsing ц +PASS XHTML Mobile parsing Ћ +PASS XHTML Mobile parsing ћ +PASS XHTML Mobile parsing Ŧ +PASS XHTML Mobile parsing ŧ +PASS XHTML Mobile parsing ≬ +PASS XHTML Mobile parsing ↞ +PASS XHTML Mobile parsing ↠ +PASS XHTML Mobile parsing Ú +PASS XHTML Mobile parsing ú +PASS XHTML Mobile parsing ↑ +PASS XHTML Mobile parsing ↟ +PASS XHTML Mobile parsing ⇑ +PASS XHTML Mobile parsing ⥉ +PASS XHTML Mobile parsing Ў +PASS XHTML Mobile parsing ў +PASS XHTML Mobile parsing Ŭ +PASS XHTML Mobile parsing ŭ +PASS XHTML Mobile parsing Û +PASS XHTML Mobile parsing û +PASS XHTML Mobile parsing У +PASS XHTML Mobile parsing у +PASS XHTML Mobile parsing ⇅ +PASS XHTML Mobile parsing Ű +PASS XHTML Mobile parsing ű +PASS XHTML Mobile parsing ⥮ +PASS XHTML Mobile parsing ⥾ +PASS XHTML Mobile parsing 𝔘 +PASS XHTML Mobile parsing 𝔲 +PASS XHTML Mobile parsing Ù +PASS XHTML Mobile parsing ù +PASS XHTML Mobile parsing ⥣ +PASS XHTML Mobile parsing ↿ +PASS XHTML Mobile parsing ↾ +PASS XHTML Mobile parsing ▀ +PASS XHTML Mobile parsing ⌜ +PASS XHTML Mobile parsing ⌜ +PASS XHTML Mobile parsing ⌏ +PASS XHTML Mobile parsing ◸ +PASS XHTML Mobile parsing Ū +PASS XHTML Mobile parsing ū +PASS XHTML Mobile parsing ¨ +PASS XHTML Mobile parsing _ +PASS XHTML Mobile parsing ⏟ +PASS XHTML Mobile parsing ⎵ +PASS XHTML Mobile parsing ⏝ +PASS XHTML Mobile parsing ⋃ +PASS XHTML Mobile parsing ⊎ +PASS XHTML Mobile parsing Ų +PASS XHTML Mobile parsing ų +PASS XHTML Mobile parsing 𝕌 +PASS XHTML Mobile parsing 𝕦 +PASS XHTML Mobile parsing ⤒ +PASS XHTML Mobile parsing ↑ +PASS XHTML Mobile parsing ↑ +PASS XHTML Mobile parsing ⇑ +PASS XHTML Mobile parsing ⇅ +PASS XHTML Mobile parsing ↕ +PASS XHTML Mobile parsing ↕ +PASS XHTML Mobile parsing ⇕ +PASS XHTML Mobile parsing ⥮ +PASS XHTML Mobile parsing ↿ +PASS XHTML Mobile parsing ↾ +PASS XHTML Mobile parsing ⊎ +PASS XHTML Mobile parsing ↖ +PASS XHTML Mobile parsing ↗ +PASS XHTML Mobile parsing υ +PASS XHTML Mobile parsing ϒ +PASS XHTML Mobile parsing ϒ +PASS XHTML Mobile parsing Υ +PASS XHTML Mobile parsing υ +PASS XHTML Mobile parsing ↥ +PASS XHTML Mobile parsing ⊥ +PASS XHTML Mobile parsing ⇈ +PASS XHTML Mobile parsing ⌝ +PASS XHTML Mobile parsing ⌝ +PASS XHTML Mobile parsing ⌎ +PASS XHTML Mobile parsing Ů +PASS XHTML Mobile parsing ů +PASS XHTML Mobile parsing ◹ +PASS XHTML Mobile parsing 𝒰 +PASS XHTML Mobile parsing 𝓊 +PASS XHTML Mobile parsing ⋰ +PASS XHTML Mobile parsing Ũ +PASS XHTML Mobile parsing ũ +PASS XHTML Mobile parsing ▵ +PASS XHTML Mobile parsing ▴ +PASS XHTML Mobile parsing ⇈ +PASS XHTML Mobile parsing Ü +PASS XHTML Mobile parsing ü +PASS XHTML Mobile parsing ⦧ +PASS XHTML Mobile parsing ⦜ +PASS XHTML Mobile parsing ϵ +PASS XHTML Mobile parsing ϰ +PASS XHTML Mobile parsing ∅ +PASS XHTML Mobile parsing ϕ +PASS XHTML Mobile parsing ϖ +PASS XHTML Mobile parsing ∝ +PASS XHTML Mobile parsing ↕ +PASS XHTML Mobile parsing ⇕ +PASS XHTML Mobile parsing ϱ +PASS XHTML Mobile parsing ς +PASS XHTML Mobile parsing ⊊︀ +PASS XHTML Mobile parsing ⫋︀ +PASS XHTML Mobile parsing ⊋︀ +PASS XHTML Mobile parsing ⫌︀ +PASS XHTML Mobile parsing ϑ +PASS XHTML Mobile parsing ⊲ +PASS XHTML Mobile parsing ⊳ +PASS XHTML Mobile parsing ⫨ +PASS XHTML Mobile parsing ⫫ +PASS XHTML Mobile parsing ⫩ +PASS XHTML Mobile parsing В +PASS XHTML Mobile parsing в +PASS XHTML Mobile parsing ⊢ +PASS XHTML Mobile parsing ⊨ +PASS XHTML Mobile parsing ⊩ +PASS XHTML Mobile parsing ⊫ +PASS XHTML Mobile parsing ⫦ +PASS XHTML Mobile parsing ⊻ +PASS XHTML Mobile parsing ∨ +PASS XHTML Mobile parsing ⋁ +PASS XHTML Mobile parsing ≚ +PASS XHTML Mobile parsing ⋮ +PASS XHTML Mobile parsing | +PASS XHTML Mobile parsing ‖ +PASS XHTML Mobile parsing | +PASS XHTML Mobile parsing ‖ +PASS XHTML Mobile parsing ∣ +PASS XHTML Mobile parsing | +PASS XHTML Mobile parsing ❘ +PASS XHTML Mobile parsing ≀ +PASS XHTML Mobile parsing   +PASS XHTML Mobile parsing 𝔙 +PASS XHTML Mobile parsing 𝔳 +PASS XHTML Mobile parsing ⊲ +PASS XHTML Mobile parsing ⊂⃒ +PASS XHTML Mobile parsing ⊃⃒ +PASS XHTML Mobile parsing 𝕍 +PASS XHTML Mobile parsing 𝕧 +PASS XHTML Mobile parsing ∝ +PASS XHTML Mobile parsing ⊳ +PASS XHTML Mobile parsing 𝒱 +PASS XHTML Mobile parsing 𝓋 +PASS XHTML Mobile parsing ⫋︀ +PASS XHTML Mobile parsing ⊊︀ +PASS XHTML Mobile parsing ⫌︀ +PASS XHTML Mobile parsing ⊋︀ +PASS XHTML Mobile parsing ⊪ +PASS XHTML Mobile parsing ⦚ +PASS XHTML Mobile parsing Ŵ +PASS XHTML Mobile parsing ŵ +PASS XHTML Mobile parsing ⩟ +PASS XHTML Mobile parsing ∧ +PASS XHTML Mobile parsing ⋀ +PASS XHTML Mobile parsing ≙ +PASS XHTML Mobile parsing ℘ +PASS XHTML Mobile parsing 𝔚 +PASS XHTML Mobile parsing 𝔴 +PASS XHTML Mobile parsing 𝕎 +PASS XHTML Mobile parsing 𝕨 +PASS XHTML Mobile parsing ℘ +PASS XHTML Mobile parsing ≀ +PASS XHTML Mobile parsing ≀ +PASS XHTML Mobile parsing 𝒲 +PASS XHTML Mobile parsing 𝓌 +PASS XHTML Mobile parsing ⋂ +PASS XHTML Mobile parsing ◯ +PASS XHTML Mobile parsing ⋃ +PASS XHTML Mobile parsing ▽ +PASS XHTML Mobile parsing 𝔛 +PASS XHTML Mobile parsing 𝔵 +PASS XHTML Mobile parsing ⟷ +PASS XHTML Mobile parsing ⟺ +PASS XHTML Mobile parsing Ξ +PASS XHTML Mobile parsing ξ +PASS XHTML Mobile parsing ⟵ +PASS XHTML Mobile parsing ⟸ +PASS XHTML Mobile parsing ⟼ +PASS XHTML Mobile parsing ⋻ +PASS XHTML Mobile parsing ⨀ +PASS XHTML Mobile parsing 𝕏 +PASS XHTML Mobile parsing 𝕩 +PASS XHTML Mobile parsing ⨁ +PASS XHTML Mobile parsing ⨂ +PASS XHTML Mobile parsing ⟶ +PASS XHTML Mobile parsing ⟹ +PASS XHTML Mobile parsing 𝒳 +PASS XHTML Mobile parsing 𝓍 +PASS XHTML Mobile parsing ⨆ +PASS XHTML Mobile parsing ⨄ +PASS XHTML Mobile parsing △ +PASS XHTML Mobile parsing ⋁ +PASS XHTML Mobile parsing ⋀ +PASS XHTML Mobile parsing Ý +PASS XHTML Mobile parsing ý +PASS XHTML Mobile parsing Я +PASS XHTML Mobile parsing я +PASS XHTML Mobile parsing Ŷ +PASS XHTML Mobile parsing ŷ +PASS XHTML Mobile parsing Ы +PASS XHTML Mobile parsing ы +PASS XHTML Mobile parsing ¥ +PASS XHTML Mobile parsing 𝔜 +PASS XHTML Mobile parsing 𝔶 +PASS XHTML Mobile parsing Ї +PASS XHTML Mobile parsing ї +PASS XHTML Mobile parsing 𝕐 +PASS XHTML Mobile parsing 𝕪 +PASS XHTML Mobile parsing 𝒴 +PASS XHTML Mobile parsing 𝓎 +PASS XHTML Mobile parsing Ю +PASS XHTML Mobile parsing ю +PASS XHTML Mobile parsing ÿ +PASS XHTML Mobile parsing Ÿ +PASS XHTML Mobile parsing Ź +PASS XHTML Mobile parsing ź +PASS XHTML Mobile parsing Ž +PASS XHTML Mobile parsing ž +PASS XHTML Mobile parsing З +PASS XHTML Mobile parsing з +PASS XHTML Mobile parsing Ż +PASS XHTML Mobile parsing ż +PASS XHTML Mobile parsing ℨ +PASS XHTML Mobile parsing ​ +PASS XHTML Mobile parsing Ζ +PASS XHTML Mobile parsing ζ +PASS XHTML Mobile parsing 𝔷 +PASS XHTML Mobile parsing ℨ +PASS XHTML Mobile parsing Ж +PASS XHTML Mobile parsing ж +PASS XHTML Mobile parsing ⇝ +PASS XHTML Mobile parsing 𝕫 +PASS XHTML Mobile parsing ℤ +PASS XHTML Mobile parsing 𝒵 +PASS XHTML Mobile parsing 𝓏 +PASS XHTML Mobile parsing ‍ +PASS XHTML Mobile parsing ‌ +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm new file mode 100644 index 0000000..ec4d200 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta name=timeout content=long> +<title>HTML entities for various XHTML Doctype</title> +<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="test" src="xhtml-mathml-dtd-entity-support.htm"></iframe> + +<script> +onload = () => document.getElementById("test").contentWindow.run( +["application/xhtml+xml", "-//WAPFORUM//DTD XHTML Mobile 1.0//EN", "foo", "XHTML Mobile"]); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm index 8460f5f..76165509 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm +++ b/third_party/WebKit/LayoutTests/external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm
@@ -1,10 +1,5 @@ <!DOCTYPE html> <meta charset=utf-8> -<title>HTML entities for various XHTML Doctype variants</title> -<link rel=help href="http://w3c.github.io/html/xhtml.html#parsing-xhtml-documents"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<div id="log"></div> <script> var parser = new DOMParser(); var parse = parser.parseFromString.bind(parser); @@ -20,13 +15,13 @@ doctypeString += '>'; var doc = parse(doctypeString + "<html><head></head><body id='test'>"+entitystring+"</body></html>", mimeType); var root = doc.getElementById('test'); - assert_not_equals(root, null, friendlyMime + " parsing the entity reference caused a parse error;"); - assert_true(!!root.firstChild); + parent.assert_not_equals(root, null, friendlyMime + " parsing the entity reference caused a parse error;"); + parent.assert_true(!!root.firstChild); // Next line because some browsers include the partial parsed result in the parser error returned document. - assert_equals(root.firstChild.nodeType, 3/*Text*/, friendlyMime + " parsing the entity reference caused a parse error;"); + parent.assert_equals(root.firstChild.nodeType, 3/*Text*/, friendlyMime + " parsing the entity reference caused a parse error;"); var text = root.firstChild.data; for (var i = 0, len = expectedString.length; i < len; i++) { - assert_equals(text.charCodeAt(i),expectedString.charCodeAt(i)); + parent.assert_equals(text.charCodeAt(i),expectedString.charCodeAt(i)); } } } @@ -34,34 +29,21 @@ function setupTests(jsonEntities, publicId, systemId, mimeType, friendlyMime) { for (entityName in jsonEntities) { if ((mimeType == "text/html") || /;$/.test(entityName)) { - test(generateTestFunction(entityName, jsonEntities[entityName].characters, publicId, systemId, mimeType, friendlyMime), friendlyMime + " parsing " + entityName); + parent.test(generateTestFunction(entityName, jsonEntities[entityName].characters, publicId, systemId, mimeType, friendlyMime), friendlyMime + " parsing " + entityName); } } } - setup(function() {}, {explicit_done: true}); + parent.setup(function() {}, {explicit_done: true}); - var xhr = new XMLHttpRequest(); - xhr.open("GET", "/common/entities.json"); - xhr.onload = function () { - var entitiesJSON = JSON.parse(xhr.response); - [ - ["application/xhtml+xml", "-//W3C//DTD XHTML 1.0 Transitional//EN", "foo", "XHTML1.0 Transitional"], - ["application/xhtml+xml", "-//W3C//DTD XHTML 1.1//EN", "foo", "XHTML1.1"], - ["application/xhtml+xml", "-//W3C//DTD XHTML 1.0 Strict//EN", "foo", "XHTML1.0 Strict"], - ["application/xhtml+xml", "-//W3C//DTD XHTML 1.0 Frameset//EN", "foo", "XHTML1.0 Frameset"], - ["application/xhtml+xml", "-//W3C//DTD XHTML Basic 1.0//EN", "foo", "XHTML Basic"], - ["application/xhtml+xml", "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN", "foo", "XHTML1.1+MathML"], - ["application/xhtml+xml", "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN", "foo", "XHTML1.1+MathML+SVG"], - ["application/xhtml+xml", "-//W3C//DTD MathML 2.0//EN", "foo", "MathML"], - ["application/xhtml+xml", "-//WAPFORUM//DTD XHTML Mobile 1.0//EN", "foo", "XHTML Mobile"], -// ["application/xhtml+xml", null, "mathml.dtd", "SYSTEM MathML"], // Experimental - ["text/html", null, null, "HTML"] - ].forEach(function (row) { + function run(row) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", "/common/entities.json"); + xhr.onload = function () { + var entitiesJSON = JSON.parse(xhr.response); setupTests(entitiesJSON, row[1], row[2], row[0], row[3]); - }); - done(); + parent.done(); + } + xhr.send(); } - xhr.send(); - </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/idle-callbacks/callback-multiple-calls.html b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/idle-callbacks/callback-multiple-calls.html index 8584c71..7bb524b 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/idle-callbacks/callback-multiple-calls.html +++ b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/idle-callbacks/callback-multiple-calls.html
@@ -5,12 +5,14 @@ <script src=/resources/testharnessreport.js></script> <div id="log"></div> <script> + let option = {timeout: 50}; + async_test(function (t) { assert_false(document.hidden, "document.hidden must exist and be false to run this test properly"); var counter = 0; function f(c) { assert_equals(counter, c); - if (counter === 99) { + if (counter === 49) { t.done(); } @@ -18,7 +20,7 @@ } for (var i = 0; i < 100; ++i) { let j = i; - window.requestIdleCallback(t.step_func(function () { f(j) })); + window.requestIdleCallback(t.step_func(function () { f(j) }), option); } }, "requestIdleCallback callbacks should be invoked in order (called iteratively)"); @@ -28,14 +30,17 @@ function f(c) { assert_equals(counter, c); - if (counter === 99) { + if (counter === 49) { t.done(); } ++counter; - window.requestIdleCallback(t.step_func(function () { f(c + 1) })); + window.requestIdleCallback(t.step_func(function () { f(c + 1) }), option); } - window.requestIdleCallback(t.step_func(function () { f(0) })); + window.requestIdleCallback(t.step_func(function () { f(0) }), option); }, "requestIdleCallback callbacks should be invoked in order (called recursively)"); + + let generateIdlePeriods = _ => requestAnimationFrame(generateIdlePeriods); + generateIdlePeriods(); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/http/basic-auth-cache-test-ref.html b/third_party/WebKit/LayoutTests/external/wpt/http/basic-auth-cache-test-ref.html new file mode 100644 index 0000000..905facd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/http/basic-auth-cache-test-ref.html
@@ -0,0 +1,6 @@ +<!doctype html> +<html> + <meta charset="utf-8"> + <img src="/images/green.png"> + <img src="/images/green.png"> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/http/basic-auth-cache-test.html b/third_party/WebKit/LayoutTests/external/wpt/http/basic-auth-cache-test.html new file mode 100644 index 0000000..0d3895b8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/http/basic-auth-cache-test.html
@@ -0,0 +1,27 @@ +<!doctype html> +<html id="doc" class="reftest-wait"> + <meta charset="utf-8"> + <link rel="match" href="basic-auth-cache-test-ref.html"> + + <img id="auth" onload="loadNoAuth()"> + <img id="noauth" onload="removeWait()"> + + + <script type="text/javascript"> + function loadAuth() { + var authUrl = 'http://testuser:testpass@' + window.location.host + '/http/resources/securedimage.py'; + document.getElementById('auth').src = authUrl; + } + + function loadNoAuth() { + var noAuthUrl = 'http://' + window.location.host + '/http/resources/securedimage.py'; + document.getElementById('noauth').src = noAuthUrl; + } + + function removeWait() { + document.getElementById('doc').className = ""; + } + + window.onload = loadAuth; + </script> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/http/content_length.html b/third_party/WebKit/LayoutTests/external/wpt/http/content_length.html new file mode 100644 index 0000000..af8ea44 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/http/content_length.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<!-- CAUTION: if updating this test also update the expected content-length in the .headers file --> +<title>Content-Length Test</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +onload = function() { + assert_equals(document.body.textContent, "PASS"); + done(); +} +</script> +<body>PASS +but FAIL if this is in the body. \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/http/content_length.html.headers b/third_party/WebKit/LayoutTests/external/wpt/http/content_length.html.headers new file mode 100644 index 0000000..385ea55 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/http/content_length.html.headers
@@ -0,0 +1 @@ +Content-Length: 373
diff --git a/third_party/WebKit/LayoutTests/external/wpt/http/resources/securedimage.py b/third_party/WebKit/LayoutTests/external/wpt/http/resources/securedimage.py new file mode 100644 index 0000000..311b0c5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/http/resources/securedimage.py
@@ -0,0 +1,17 @@ +# -*- coding: utf-8 - + +def main(request, response): + image_url = str.replace(request.url, "http/resources/securedimage.py", "images/green.png") + + if "authorization" not in request.headers: + response.status = 401 + response.headers.set("WWW-Authenticate", "Basic") + return response + else: + auth = request.headers.get("Authorization") + if auth != "Basic dGVzdHVzZXI6dGVzdHBhc3M=": + response.set_error(403, "Invalid username or password - " + auth) + return response + + response.status = 301 + response.headers.set("Location", image_url)
diff --git a/third_party/WebKit/LayoutTests/external/wpt/interfaces/webrtc-pc.idl b/third_party/WebKit/LayoutTests/external/wpt/interfaces/webrtc-pc.idl new file mode 100644 index 0000000..133524a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/interfaces/webrtc-pc.idl
@@ -0,0 +1,657 @@ +dictionary RTCConfiguration { + sequence<RTCIceServer> iceServers; + RTCIceTransportPolicy iceTransportPolicy = "all"; + RTCBundlePolicy bundlePolicy = "balanced"; + RTCRtcpMuxPolicy rtcpMuxPolicy = "require"; + DOMString peerIdentity; + sequence<RTCCertificate> certificates; + [EnforceRange] + octet iceCandidatePoolSize = 0; +}; + +enum RTCIceCredentialType { + "password", + "token" +}; + +dictionary RTCIceServer { + required (DOMString or sequence<DOMString>) urls; + DOMString username; + DOMString credential; + RTCIceCredentialType credentialType = "password"; +}; + +enum RTCIceTransportPolicy { + "relay", + "all" +}; + +enum RTCBundlePolicy { + "balanced", + "max-compat", + "max-bundle" +}; + +enum RTCRtcpMuxPolicy { + // At risk due to lack of implementers' interest. + "negotiate", + "require" +}; + +dictionary RTCOfferAnswerOptions { + boolean voiceActivityDetection = true; +}; + +dictionary RTCOfferOptions : RTCOfferAnswerOptions { + boolean iceRestart = false; + boolean offerToReceiveAudio; + boolean offerToReceiveVideo; +}; + +dictionary RTCAnswerOptions : RTCOfferAnswerOptions { +}; + +[Constructor(optional RTCConfiguration configuration)] +interface RTCPeerConnection : EventTarget { + Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options); + Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options); + Promise<void> setLocalDescription(RTCSessionDescriptionInit description); + readonly attribute RTCSessionDescription? localDescription; + readonly attribute RTCSessionDescription? currentLocalDescription; + readonly attribute RTCSessionDescription? pendingLocalDescription; + Promise<void> setRemoteDescription(RTCSessionDescriptionInit description); + readonly attribute RTCSessionDescription? remoteDescription; + readonly attribute RTCSessionDescription? currentRemoteDescription; + readonly attribute RTCSessionDescription? pendingRemoteDescription; + Promise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate); + readonly attribute RTCSignalingState signalingState; + readonly attribute RTCIceGatheringState iceGatheringState; + readonly attribute RTCIceConnectionState iceConnectionState; + readonly attribute RTCPeerConnectionState connectionState; + readonly attribute boolean? canTrickleIceCandidates; + static readonly attribute FrozenArray<RTCIceServer> defaultIceServers; + RTCConfiguration getConfiguration(); + void setConfiguration(RTCConfiguration configuration); + void close(); + attribute EventHandler onnegotiationneeded; + attribute EventHandler onicecandidate; + attribute EventHandler onicecandidateerror; + attribute EventHandler onsignalingstatechange; + attribute EventHandler oniceconnectionstatechange; + attribute EventHandler onicegatheringstatechange; + attribute EventHandler onconnectionstatechange; + attribute EventHandler onfingerprintfailure; +}; + +partial interface RTCPeerConnection { + Promise<void> createOffer(RTCSessionDescriptionCallback successCallback, + RTCPeerConnectionErrorCallback failureCallback, + optional RTCOfferOptions options); + Promise<void> setLocalDescription(RTCSessionDescriptionInit description, + VoidFunction successCallback, + RTCPeerConnectionErrorCallback failureCallback); + Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback, + RTCPeerConnectionErrorCallback failureCallback); + Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, + VoidFunction successCallback, + RTCPeerConnectionErrorCallback failureCallback); + Promise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, + VoidFunction successCallback, + RTCPeerConnectionErrorCallback failureCallback); +}; + +enum RTCSignalingState { + "stable", + "have-local-offer", + "have-remote-offer", + "have-local-pranswer", + "have-remote-pranswer" +}; + +enum RTCIceGatheringState { + "new", + "gathering", + "complete" +}; + +enum RTCPeerConnectionState { + "new", + "connecting", + "connected", + "disconnected", + "failed", + "closed" +}; + +enum RTCIceConnectionState { + "new", + "checking", + "connected", + "completed", + "failed", + "disconnected", + "closed" +}; + +callback RTCPeerConnectionErrorCallback = void (DOMException error); + +callback RTCSessionDescriptionCallback = void (RTCSessionDescriptionInit description); + +callback RTCStatsCallback = void (RTCStatsReport report); + +enum RTCSdpType { + "offer", + "pranswer", + "answer", + "rollback" +}; + +[Constructor(RTCSessionDescriptionInit descriptionInitDict)] +interface RTCSessionDescription { + readonly attribute RTCSdpType type; + readonly attribute DOMString sdp; + serializer = {attribute}; +}; + +dictionary RTCSessionDescriptionInit { + required RTCSdpType type; + DOMString sdp = ""; +}; + +[Constructor(RTCIceCandidateInit candidateInitDict)] +interface RTCIceCandidate { + readonly attribute DOMString candidate; + readonly attribute DOMString? sdpMid; + readonly attribute unsigned short? sdpMLineIndex; + readonly attribute DOMString? foundation; + readonly attribute unsigned long? priority; + readonly attribute DOMString? ip; + readonly attribute RTCIceProtocol? protocol; + readonly attribute unsigned short? port; + readonly attribute RTCIceCandidateType? type; + readonly attribute RTCIceTcpCandidateType? tcpType; + readonly attribute DOMString? relatedAddress; + readonly attribute unsigned short? relatedPort; + readonly attribute DOMString? ufrag; + serializer = {candidate, sdpMid, sdpMLineIndex, ufrag}; +}; + +dictionary RTCIceCandidateInit { + DOMString candidate = ""; + DOMString? sdpMid = null; + unsigned short? sdpMLineIndex = null; + DOMString ufrag; +}; + +enum RTCIceProtocol { + "udp", + "tcp" +}; + +enum RTCIceTcpCandidateType { + "active", + "passive", + "so" +}; + +enum RTCIceCandidateType { + "host", + "srflx", + "prflx", + "relay" +}; + +[Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict)] +interface RTCPeerConnectionIceEvent : Event { + readonly attribute RTCIceCandidate? candidate; + readonly attribute DOMString? url; +}; + +dictionary RTCPeerConnectionIceEventInit : EventInit { + RTCIceCandidate? candidate; + DOMString? url; +}; + +[Constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict)] +interface RTCPeerConnectionIceErrorEvent : Event { + readonly attribute DOMString hostCandidate; + readonly attribute DOMString url; + readonly attribute unsigned short errorCode; + readonly attribute USVString errorText; +}; + +dictionary RTCPeerConnectionIceErrorEventInit : EventInit { + DOMString hostCandidate; + DOMString url; + required unsigned short errorCode; + USVString statusText; +}; + +enum RTCPriorityType { + "very-low", + "low", + "medium", + "high" +}; + +partial interface RTCPeerConnection { + static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm); +}; + +dictionary RTCCertificateExpiration { + [EnforceRange] + DOMTimeStamp expires; +}; + +interface RTCCertificate { + readonly attribute DOMTimeStamp expires; + readonly attribute FrozenArray<RTCDtlsFingerprint> fingerprints; + AlgorithmIdentifier getAlgorithm(); +}; + +partial interface RTCPeerConnection { + sequence<RTCRtpSender> getSenders(); + sequence<RTCRtpReceiver> getReceivers(); + sequence<RTCRtpTransceiver> getTransceivers(); + RTCRtpSender addTrack(MediaStreamTrack track, + MediaStream... streams); + void removeTrack(RTCRtpSender sender); + RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind, + optional RTCRtpTransceiverInit init); + attribute EventHandler ontrack; +}; + +dictionary RTCRtpTransceiverInit { + RTCRtpTransceiverDirection direction = "sendrecv"; + sequence<MediaStream> streams; + sequence<RTCRtpEncodingParameters> sendEncodings; +}; + +enum RTCRtpTransceiverDirection { + "sendrecv", + "sendonly", + "recvonly", + "inactive" +}; + +interface RTCRtpSender { + readonly attribute MediaStreamTrack? track; + readonly attribute RTCDtlsTransport? transport; + readonly attribute RTCDtlsTransport? rtcpTransport; + static RTCRtpCapabilities getCapabilities(DOMString kind); + Promise<void> setParameters(optional RTCRtpParameters parameters); + RTCRtpParameters getParameters(); + Promise<void> replaceTrack(MediaStreamTrack withTrack); +}; + +dictionary RTCRtpParameters { + DOMString transactionId; + sequence<RTCRtpEncodingParameters> encodings; + sequence<RTCRtpHeaderExtensionParameters> headerExtensions; + RTCRtcpParameters rtcp; + sequence<RTCRtpCodecParameters> codecs; + RTCDegradationPreference degradationPreference = "balanced"; +}; + +dictionary RTCRtpEncodingParameters { + unsigned long ssrc; + RTCRtpRtxParameters rtx; + RTCRtpFecParameters fec; + RTCDtxStatus dtx; + boolean active; + RTCPriorityType priority; + unsigned long maxBitrate; + unsigned long maxFramerate; + DOMString rid; + double scaleResolutionDownBy = 1; +}; + +enum RTCDtxStatus { + "disabled", + "enabled" +}; + +enum RTCDegradationPreference { + "maintain-framerate", + "maintain-resolution", + "balanced" +}; + +dictionary RTCRtpRtxParameters { + unsigned long ssrc; +}; + +dictionary RTCRtpFecParameters { + unsigned long ssrc; +}; + +dictionary RTCRtcpParameters { + DOMString cname; + boolean reducedSize; +}; + +dictionary RTCRtpHeaderExtensionParameters { + DOMString uri; + unsigned short id; + boolean encrypted; +}; + +dictionary RTCRtpCodecParameters { + unsigned short payloadType; + DOMString mimeType; + unsigned long clockRate; + unsigned short channels = 1; + DOMString sdpFmtpLine; +}; + +dictionary RTCRtpCapabilities { + sequence<RTCRtpCodecCapability> codecs; + sequence<RTCRtpHeaderExtensionCapability> headerExtensions; +}; + +dictionary RTCRtpCodecCapability { + DOMString mimeType; + unsigned long clockRate; + unsigned short channels = 1; + DOMString sdpFmtpLine; +}; + +dictionary RTCRtpHeaderExtensionCapability { + DOMString uri; +}; + +interface RTCRtpReceiver { + readonly attribute MediaStreamTrack track; + readonly attribute RTCDtlsTransport? transport; + readonly attribute RTCDtlsTransport? rtcpTransport; + static RTCRtpCapabilities getCapabilities(DOMString kind); + RTCRtpParameters getParameters(); + sequence<RTCRtpContributingSource> getContributingSources(); +}; + +interface RTCRtpContributingSource { + readonly attribute DOMHighResTimeStamp timestamp; + readonly attribute unsigned long source; + readonly attribute byte? audioLevel; + readonly attribute boolean? voiceActivityFlag; +}; + +interface RTCRtpTransceiver { + readonly attribute DOMString? mid; + [SameObject] + readonly attribute RTCRtpSender sender; + [SameObject] + readonly attribute RTCRtpReceiver receiver; + readonly attribute boolean stopped; + readonly attribute RTCRtpTransceiverDirection direction; + readonly attribute RTCRtpTransceiverDirection? currentDirection; + void setDirection(RTCRtpTransceiverDirection direction); + void stop(); + void setCodecPreferences(sequence<RTCRtpCodecCapability> codecs); +}; + +interface RTCDtlsTransport { + readonly attribute RTCIceTransport transport; + readonly attribute RTCDtlsTransportState state; + sequence<ArrayBuffer> getRemoteCertificates(); + attribute EventHandler onstatechange; +}; + +enum RTCDtlsTransportState { + "new", + "connecting", + "connected", + "closed", + "failed" +}; + +dictionary RTCDtlsFingerprint { + DOMString algorithm; + DOMString value; +}; + +interface RTCIceTransport { + readonly attribute RTCIceRole role; + readonly attribute RTCIceComponent component; + readonly attribute RTCIceTransportState state; + readonly attribute RTCIceGathererState gatheringState; + sequence<RTCIceCandidate> getLocalCandidates(); + sequence<RTCIceCandidate> getRemoteCandidates(); + RTCIceCandidatePair? getSelectedCandidatePair(); + RTCIceParameters? getLocalParameters(); + RTCIceParameters? getRemoteParameters(); + attribute EventHandler onstatechange; + attribute EventHandler ongatheringstatechange; + attribute EventHandler onselectedcandidatepairchange; +}; + +dictionary RTCIceParameters { + DOMString usernameFragment; + DOMString password; +}; + +dictionary RTCIceCandidatePair { + RTCIceCandidate local; + RTCIceCandidate remote; +}; + +enum RTCIceGathererState { + "new", + "gathering", + "complete" +}; + +enum RTCIceTransportState { + "new", + "checking", + "connected", + "completed", + "failed", + "disconnected", + "closed" +}; + +enum RTCIceRole { + "controlling", + "controlled" +}; + +enum RTCIceComponent { + "rtp", + "rtcp" +}; + +[Constructor(DOMString type, RTCTrackEventInit eventInitDict)] +interface RTCTrackEvent : Event { + readonly attribute RTCRtpReceiver receiver; + readonly attribute MediaStreamTrack track; + readonly attribute FrozenArray<MediaStream> streams; + readonly attribute RTCRtpTransceiver transceiver; +}; + +dictionary RTCTrackEventInit : EventInit { + required RTCRtpReceiver receiver; + required MediaStreamTrack track; + sequence<MediaStream> streams = []; + required RTCRtpTransceiver transceiver; +}; + +partial interface RTCPeerConnection { + readonly attribute RTCSctpTransport? sctp; + RTCDataChannel createDataChannel([TreatNullAs=EmptyString] USVString label, + optional RTCDataChannelInit dataChannelDict); + attribute EventHandler ondatachannel; +}; + +interface RTCSctpTransport { + readonly attribute RTCDtlsTransport transport; + readonly attribute unsigned long maxMessageSize; +}; + +interface RTCDataChannel : EventTarget { + readonly attribute USVString label; + readonly attribute boolean ordered; + readonly attribute unsigned short? maxPacketLifeTime; + readonly attribute unsigned short? maxRetransmits; + readonly attribute USVString protocol; + readonly attribute boolean negotiated; + readonly attribute unsigned short? id; + readonly attribute RTCPriorityType priority; + readonly attribute RTCDataChannelState readyState; + readonly attribute unsigned long bufferedAmount; + attribute unsigned long bufferedAmountLowThreshold; + attribute EventHandler onopen; + attribute EventHandler onbufferedamountlow; + attribute EventHandler onerror; + attribute EventHandler onclose; + void close(); + attribute EventHandler onmessage; + attribute DOMString binaryType; + void send(USVString data); + void send(Blob data); + void send(ArrayBuffer data); + void send(ArrayBufferView data); +}; + +dictionary RTCDataChannelInit { + boolean ordered = true; + unsigned short maxPacketLifeTime; + unsigned short maxRetransmits; + USVString protocol = ""; + boolean negotiated = false; + [EnforceRange] + unsigned short id; + RTCPriorityType priority = "low"; +}; + +enum RTCDataChannelState { + "connecting", + "open", + "closing", + "closed" +}; + +[Constructor(DOMString type, RTCDataChannelEventInit eventInitDict)] +interface RTCDataChannelEvent : Event { + readonly attribute RTCDataChannel channel; +}; + +dictionary RTCDataChannelEventInit : EventInit { + required RTCDataChannel channel; +}; + +partial interface RTCRtpSender { + readonly attribute RTCDTMFSender? dtmf; +}; + +interface RTCDTMFSender : EventTarget { + void insertDTMF(DOMString tones, + optional unsigned long duration = 100, + optional unsigned long interToneGap = 70); + attribute EventHandler ontonechange; + readonly attribute DOMString toneBuffer; +}; + +[Constructor(DOMString type, RTCDTMFToneChangeEventInit eventInitDict)] +interface RTCDTMFToneChangeEvent : Event { + readonly attribute DOMString tone; +}; + +dictionary RTCDTMFToneChangeEventInit : EventInit { + required DOMString tone; +}; + +partial interface RTCPeerConnection { + Promise<RTCStatsReport> getStats(optional MediaStreamTrack? selector = null); +}; + +interface RTCStatsReport { + readonly maplike<DOMString, object>; +}; + +dictionary RTCStats { + DOMHighResTimeStamp timestamp; + RTCStatsType type; + DOMString id; +}; + +enum RTCStatsType { +}; + +[Global, + Exposed=RTCIdentityProviderGlobalScope] +interface RTCIdentityProviderGlobalScope : WorkerGlobalScope { + readonly attribute RTCIdentityProviderRegistrar rtcIdentityProvider; +}; + +[Exposed=RTCIdentityProviderGlobalScope] +interface RTCIdentityProviderRegistrar { + void register(RTCIdentityProvider idp); +}; + +dictionary RTCIdentityProvider { + required GenerateAssertionCallback generateAssertion; + required ValidateAssertionCallback validateAssertion; +}; + +callback GenerateAssertionCallback = Promise<RTCIdentityAssertionResult> (DOMString contents, + DOMString origin, + RTCIdentityProviderOptions options); + +callback ValidateAssertionCallback = Promise<RTCIdentityValidationResult> (DOMString assertion, + DOMString origin); + +dictionary RTCIdentityAssertionResult { + required RTCIdentityProviderDetails idp; + required DOMString assertion; +}; + +dictionary RTCIdentityProviderDetails { + required DOMString domain; + DOMString protocol = "default"; +}; + +dictionary RTCIdentityValidationResult { + required DOMString identity; + required DOMString contents; +}; + +partial interface RTCPeerConnection { + void setIdentityProvider(DOMString provider, + optional RTCIdentityProviderOptions options); + Promise<DOMString> getIdentityAssertion(); + readonly attribute Promise<RTCIdentityAssertion> peerIdentity; + readonly attribute DOMString? idpLoginUrl; + readonly attribute DOMString? idpErrorInfo; +}; + +dictionary RTCIdentityProviderOptions { + DOMString protocol = "default"; + DOMString usernameHint; + DOMString peerIdentity; +}; + +[Constructor(DOMString idp, DOMString name)] +interface RTCIdentityAssertion { + attribute DOMString idp; + attribute DOMString name; +}; + +partial dictionary MediaStreamConstraints { + DOMString peerIdentity; +}; + +partial interface MediaStreamTrack { + readonly attribute boolean isolated; + attribute EventHandler onisolationchange; +}; + +[Exposed=Window, + Constructor(DOMString type, RTCErrorEventInit eventInitDict)] +interface RTCErrorEvent : Event { + readonly attribute RTCError? error; +}; + +dictionary RTCErrorEventInit : EventInit { + RTCError? error = null; +};
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt deleted file mode 100644 index cea6321..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt +++ /dev/null
@@ -1,12 +0,0 @@ -This is a testharness.js-based test. -FAIL Navigator interface: operation requestKeyboardLock(sequence) assert_throws: calling operation with this = null didn't throw TypeError function "function () { - fn.apply(obj, args); - }" did not throw -PASS Navigator interface: operation cancelKeyboardLock() -PASS Navigator must be primary interface of navigator -PASS Stringification of navigator -PASS Navigator interface: navigator must inherit property "requestKeyboardLock" with the proper type (0) -PASS Navigator interface: calling requestKeyboardLock(sequence) on navigator with too few arguments must throw TypeError -PASS Navigator interface: navigator must inherit property "cancelKeyboardLock" with the proper type (1) -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https.html b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https.html deleted file mode 100644 index 6fabb411..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https.html +++ /dev/null
@@ -1,41 +0,0 @@ -<!doctype html> -<html> -<head> -<title>Keyboard Lock IDL tests</title> -<link rel="help" href="https://github.com/w3c/keyboard-lock"/> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/resources/WebIDLParser.js"></script> -<script src="/resources/idlharness.js"></script> -</head> -<body> -<pre id="untested_idl" style="display: none"> -interface Navigator { -}; -</pre> -<!-- - The reason of the failure of requestKeyboardLock test looks like a code defect in - idlharness.js. media-capabilities/idlharness.html is also impacted by this - issue. See https://codereview.chromium.org/2805763004/#ps620001, which - includes a potential fix. - TODO(zijiehe): Submit the fix. ---> -<pre id="idl" style="display: none"> -partial interface Navigator { - [SecureContext] Promise<void> requestKeyboardLock(optional sequence<DOMString> keyCodes = []); - [SecureContext] void cancelKeyboardLock(); -}; -</pre> -<script> -var idl_array = new IdlArray(); -idl_array.add_untested_idls( - document.getElementById("untested_idl").textContent); -idl_array.add_idls(document.getElementById("idl").textContent); -idl_array.add_objects({ - Navigator: ["navigator"] -}); -idl_array.test(); -</script> -<div id="log"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-cancelKeyboardLock.https.html b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-cancelKeyboardLock.https.html deleted file mode 100644 index 10fd50d3..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-cancelKeyboardLock.https.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!DOCTYPE html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -'use strict'; - -test(() => { - assert_equals(navigator.cancelKeyboardLock(), - undefined); -}, 'Keyboard Lock cancelKeyboardLock'); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html deleted file mode 100644 index 8e84d14..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html +++ /dev/null
@@ -1,15 +0,0 @@ -<!DOCTYPE html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -'use strict'; - -promise_test((t) => { - const p1 = navigator.requestKeyboardLock(['a', 'b']); - const p2 = navigator.requestKeyboardLock(['c', 'd']); - return promise_rejects(t, null, p2, - 'requestKeyboardLock() should only be ' + - 'executed if another request has finished.'); -}, 'Keyboard Lock requestKeyboardLock twice in parallel'); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html deleted file mode 100644 index 30f4905..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html +++ /dev/null
@@ -1,14 +0,0 @@ -<!DOCTYPE html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -'use strict'; - -promise_test(() => { - return navigator.requestKeyboardLock(['a', 'b']) - .then(() => { - return navigator.requestKeyboardLock(['c', 'd']); - }); -}, 'Keyboard Lock requestKeyboardLock twice sequentially'); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock.https.html b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock.https.html deleted file mode 100644 index e6e0121..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-requestKeyboardLock.https.html +++ /dev/null
@@ -1,13 +0,0 @@ -<!DOCTYPE html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -'use strict'; - -promise_test(() => { - const p = navigator.requestKeyboardLock(['a', 'b']); - assert_true(p instanceof Promise); - return p; -}, 'Keyboard Lock requestKeyboardLock'); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist b/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist index 906736a..e26431f 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist +++ b/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
@@ -769,6 +769,10 @@ CSS-COLLIDING-SUPPORT-NAME: css/CSS2/normal-flow/support/replaced-min-max-1.png CSS-COLLIDING-SUPPORT-NAME: css/vendor-imports/mozilla/mozilla-central-reftests/ui3/support/replaced-min-max-1.png +# TODO https://github.com/w3c/web-platform-tests/issues/5770 +MISSING-LINK: css/geometry-1/DOMMatrix-css-string.worker.js +MISSING-LINK: css/geometry-1/WebKitCSSMatrix.worker.js + WEBIDL2.JS:.gitmodules # Manual test that uses console.logs for feedback
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html new file mode 100644 index 0000000..bad18f1d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Magnetometer Test</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/magnetometer/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<iframe src="support-iframe.html" id="frame" style="display:none" sandbox="allow-scripts"> +</iframe> +<script> + +runGenericSensorTests(Magnetometer); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html new file mode 100644 index 0000000..452bfc1c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Magnetometer Test: insecure context</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/magnetometer/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<h2>Precondition</h2> +<ol> + <li> + Run test in an insecure context, e.g. http://example.com/. + </li> +</ol> +<script> + +runGenericSensorInsecureContext(Magnetometer); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html new file mode 100644 index 0000000..3cd62db --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Magnetometer Test: onerror</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<link rel="help" href="https://www.w3.org/TR/magnetometer/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/generic-sensor/generic-sensor-tests.js"></script> +<div id="log"></div> +<h2>Precondition</h2> +<ol> + <li> + Disable the Magnetometer Sensor or run test on a device without Magnetometer Sensor. + </li> +</ol> +<script> + +runGenericSensorOnerror(Magnetometer); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/support-iframe.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/support-iframe.html new file mode 100644 index 0000000..5328f62 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/support-iframe.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<script> +try { + let sensor = new Magnetometer(); + parent.postMessage("sensor.start() can be fired within iframes", '*'); +} catch (e) { + parent.postMessage(e.name, '*'); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/constructor.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/constructor.html new file mode 100644 index 0000000..8c43cf6da --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/constructor.html
@@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Pointer Lock event constructor</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <link rel="help" href="http://www.w3.org/TR/pointerlock/#pointerlockchange-and-pointerlockerror-events"> + <link rel="help" href="http://www.w3.org/TR/dom/#interface-event"> + </head> + <body> + <p>Create Pointer Lock events and check each default value.</p> + <div id='log'></div> + <script> +test(function() { + var ev = new MouseEvent("pointerlockchange"); + assert_equals(ev.type, "pointerlockchange"); + assert_equals(ev.target, null); + assert_equals(ev.currentTarget, null); + assert_equals(ev.bubbles, false); + assert_equals(ev.eventPhase, Event.NONE); + assert_equals(ev.cancelable, false); + assert_true("preventDefault" in ev); + assert_equals(ev.defaultPrevented, false); + assert_true(ev.timeStamp > 0); + assert_true("initEvent" in ev); + assert_true("movementX" in ev, "movementX exists"); + assert_true("movementY" in ev, "movementY exists"); + assert_equals(ev.movementX, 0); + assert_equals(ev.movementY, 0); +}, "Default event values for mouse event interface and its pointer lock extensions."); +test(function() { + var ev = new MouseEvent("pointerlockerror", + { type: "trololol", + bubbles: true, + cancelable: false, + get defaultPrevented() { + assert_unreached("Should not look at the defaultPrevented property."); + }, + movementX: 10, + movementY: 10}); + assert_equals(ev.type, "pointerlockerror"); + assert_equals(ev.bubbles, true); // this is synthetic event, so follow the dictionary + assert_equals(ev.cancelable, false); + assert_equals(ev.defaultPrevented, false); + assert_equals(ev.movementX, 10); // this is synthetic event, so follow the dictionary + assert_equals(ev.movementY, 10); // this is synthetic event, so follow the dictionary +}, "Default event values for pointerlockerror using a dictionary"); + </script> + +</body> + +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt new file mode 100644 index 0000000..89e0565 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt
@@ -0,0 +1,27 @@ +This is a testharness.js-based test. +PASS Element interface: operation requestPointerLock() +FAIL Element must be primary interface of window.document.documentElement assert_equals: window.document.documentElement's prototype is not Element.prototype expected object "[object Element]" but got object "[object HTMLHtmlElement]" +FAIL Stringification of window.document.documentElement assert_equals: class string of window.document.documentElement expected "[object Element]" but got "[object HTMLHtmlElement]" +PASS Element interface: window.document.documentElement must inherit property "requestPointerLock" with the proper type (0) +PASS Document interface: attribute onpointerlockchange +PASS Document interface: attribute onpointerlockerror +PASS Document interface: attribute pointerLockElement +PASS Document interface: operation exitPointerLock() +FAIL Document must be primary interface of window.document assert_equals: window.document's prototype is not Document.prototype expected object "[object Document]" but got object "[object HTMLDocument]" +FAIL Stringification of window.document assert_equals: class string of window.document expected "[object Document]" but got "[object HTMLDocument]" +FAIL Document interface: window.document must inherit property "onpointerlockchange" with the proper type (0) Unrecognized type EventHandler +FAIL Document interface: window.document must inherit property "onpointerlockerror" with the proper type (1) Unrecognized type EventHandler +PASS Document interface: window.document must inherit property "pointerLockElement" with the proper type (2) +PASS Document interface: window.document must inherit property "exitPointerLock" with the proper type (3) +PASS MouseEvent interface: attribute movementX +PASS MouseEvent interface: attribute movementY +PASS MouseEvent must be primary interface of new MouseEvent('mousemove') +PASS Stringification of new MouseEvent('mousemove') +PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementX" with the proper type (0) +PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementY" with the proper type (1) +PASS MouseEvent must be primary interface of new MouseEvent('pointerlockchange') +PASS Stringification of new MouseEvent('pointerlockchange') +PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementX" with the proper type (0) +PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementY" with the proper type (1) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness.html new file mode 100644 index 0000000..aa876f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness.html
@@ -0,0 +1,85 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Pointer Lock IDL tests</title> +<link rel="author" title="W3C" href="http://www.w3.org/" /> +<link rel="help" href="http://www.w3.org/TR/pointerlock/#element-interface"/> +<link rel="help" href="http://www.w3.org/TR/pointerlock/#extensions-to-the-document-interface"> +<link rel="help" href="http://www.w3.org/TR/pointerlock/#extensions-to-the-mouseevent-interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +</head> + +<body> +<h1>Pointer Lock IDL tests</h1> + +<pre id='untested_idl' style='display:none'> + +interface EventTarget { +}; + +interface Node : EventTarget { +}; + +interface Element : Node { +}; + +interface Document : Node { +}; + +interface Event { +}; + +interface MouseEvent : Event { +}; +</pre> + +<pre id='idl'> + +partial interface Element { + void requestPointerLock (); +}; + +partial interface Document { + attribute EventHandler onpointerlockchange; + attribute EventHandler onpointerlockerror; + readonly attribute Element? pointerLockElement; + void exitPointerLock (); +}; + +partial interface MouseEvent { + readonly attribute long movementX; + readonly attribute long movementY; +}; + +partial dictionary MouseEventInit { + long movementX = 0; + long movementY = 0; +}; + + +</pre> + +<div id="log"></div> + +<script> + +var idl_array = new IdlArray(); + +setup(function() { + idl_array.add_untested_idls(document.getElementById("untested_idl").textContent); + idl_array.add_idls(document.getElementById("idl").textContent); + + idl_array.add_objects({ Document: ["window.document"], + Element: ["window.document.documentElement"], + MouseEvent: ["new MouseEvent('mousemove')", "new MouseEvent('pointerlockchange')"] }); +}); + +idl_array.test(); + +</script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/movementX_Y_basic-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/movementX_Y_basic-manual.html new file mode 100644 index 0000000..1e8fc1f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/movementX_Y_basic-manual.html
@@ -0,0 +1,124 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + #status-log { + margin: 10px 0; + color: green; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test if movementX/Y can provide the change in position of the pointer, as if movementX/Y = eNow.screenX/Y-ePrevious.screenX/Y</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click to start Test1.</li> + <li>Move the mouse within the window, slow and fast, like a scribble.</li> + <li>Click again to end test.</li> + </ol> + </p> + <hr/> + + <div id="status-log">Waiting... Click to start loging.</div> + <div class="data-log"> + <table> + <tr><td></td><td>X</td><td>Y</td></tr> + <tr><td>client_init:</td><td id="clientX_init-log">X</td><td id="clientY_init-log">Y</td></tr> + <tr><td>client_last:</td><td id="clientX_last-log">X</td><td id="clientY_last-log">Y</td></tr> + <tr><td>client_delta:</td><td id="clientX_delta-log">X</td><td id="clientY_delta-log">Y</td></tr> + <tr><td>movement_sum:</td><td id="movementX_sum-log">X</td><td id="movementY_sum-log">Y</td></tr> + <tr><td>movement:</td><td id="movementX-log">X</td><td id="movementY-log">Y</td></tr> + </table> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var status_log = document.querySelector('#status-log'), + movementX_log = document.querySelector('#movementX-log'), + movementY_log = document.querySelector('#movementY-log'), + movementX_sum_log = document.querySelector('#movementX_sum-log'), + movementY_sum_log = document.querySelector('#movementY_sum-log'), + clientX_init_log = document.querySelector('#clientX_init-log'), + clientY_init_log = document.querySelector('#clientY_init-log'), + clientX_last_log = document.querySelector('#clientX_last-log'), + clientY_last_log = document.querySelector('#clientY_last-log'); + clientX_delta_log = document.querySelector('#clientX_delta-log'), + clientY_delta_log = document.querySelector('#clientY_delta-log'); + + var click_counter = 0; + + var clientX_init, clientY_init, movementX, movementY, movementX_sum, movementY_sum, clientX_last, clientY_last; + + var movementX_Y_inside_window_Test = async_test("Test that movementX/Y = eNow.screenX/Y-ePrevious.screenX/Y."); + + document.addEventListener("click", function (e) { + click_counter++; + + switch(click_counter) { + case 1: + status_log.innerHTML = "inside window: logging..."; + break; + case 2: + status_log.innerHTML = "inside window: done"; + + // approximately(+/- 10) + // a little drift should be tollerated + movementX_Y_inside_window_Test.step(function() { + assert_equals(movementX_sum, clientX_last - clientX_init, "sum of movementX = clientX_init - clientX_last"); + assert_equals(movementY_sum, clientY_last - clientY_init, "sum of movementY = clientY_init - clientY_last"); + }); + movementX_Y_inside_window_Test.done(); + break; + } + }); + + document.addEventListener("mousemove", function (e) { + movementX = e.movementX; + movementY = e.movementY; + + if(click_counter === 1) { + if(!clientX_init) { + clientX_init = e.clientX; + clientY_init = e.clientY; + movementX_sum = movementX; + movementY_sum = movementY; + } + + movementX_sum += movementX; + movementY_sum += movementY; + + clientX_last = e.clientX; + clientY_last = e.clientY; + clientX_delta = clientX_last - clientX_init; + clientY_delta = clientY_last - clientY_init; + + updateData(); + } + }); + + function updateData() { + clientX_init_log.innerHTML = clientX_init; + clientY_init_log.innerHTML = clientY_init; + clientX_last_log.innerHTML = clientX_last; + clientY_last_log.innerHTML = clientY_last; + clientX_delta_log.innerHTML = clientX_delta; + clientY_delta_log.innerHTML = clientY_delta; + movementX_log.innerHTML = movementX; + movementY_log.innerHTML = movementY; + movementX_sum_log.innerHTML = movementX_sum; + movementY_sum_log.innerHTML = movementY_sum; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/movementX_Y_no-jumps-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/movementX_Y_no-jumps-manual.html new file mode 100644 index 0000000..9c8fabd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/movementX_Y_no-jumps-manual.html
@@ -0,0 +1,140 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + #status-log { + margin: 10px 0; + color: green; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test that movementX/Y do not jump by a large value when exiting and re-entering the window.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Make sure the window is not maximized.</li> + <li>Click to start Test.</li> + <li>Move the mouse slowly out of the window. + <li>Move as fast as needed to a different location outside the window at least 100 pixels away</li> + <li>Slowly re-enter the window.</li> + <li>Click again to end tests.</li> + </ol> + </p> + <hr/> + + <div id="status-log">Waiting... Click to start loging.</div> + <div class="data-log"> + <table> + <tr><td></td><td>X</td><td>Y</td></tr> + <tr><td>client_init:</td><td id="clientX_init-log">X</td><td id="clientY_init-log">Y</td></tr> + <tr><td>client_last:</td><td id="clientX_last-log">X</td><td id="clientY_last-log">Y</td></tr> + <tr><td>client_delta:</td><td id="clientX_delta-log">X</td><td id="clientY_delta-log">Y</td></tr> + <tr><td>movement_sum:</td><td id="movementX_sum-log">X</td><td id="movementY_sum-log">Y</td></tr> + <tr><td>movement:</td><td id="movementX-log">X</td><td id="movementY-log">Y</td></tr> + </table> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var status_log = document.querySelector('#status-log'), + movementX_log = document.querySelector('#movementX-log'), + movementY_log = document.querySelector('#movementY-log'), + movementX_sum_log = document.querySelector('#movementX_sum-log'), + movementY_sum_log = document.querySelector('#movementY_sum-log'), + clientX_init_log = document.querySelector('#clientX_init-log'), + clientY_init_log = document.querySelector('#clientY_init-log'), + clientX_last_log = document.querySelector('#clientX_last-log'), + clientY_last_log = document.querySelector('#clientY_last-log'); + clientX_delta_log = document.querySelector('#clientX_delta-log'), + clientY_delta_log = document.querySelector('#clientY_delta-log'); + + var click_counter = 0; + + var clientX_init, clientY_init, movementX, movementY, movementX_sum, movementY_sum, clientX_last, clientY_last; + + var movementX_Y_outside_window_Test = async_test("Test that movementX/Y do not have large values when re-entering from outside the window."); + + document.addEventListener("click", function (e) { + click_counter++; + + switch(click_counter) { + case 1: + status_log.innerHTML = "logging..."; + break; + case 2: + status_log.innerHTML = "done"; + + // approximately(+/- 10) + // a little drift should be tollerated + movementX_Y_outside_window_Test.step(function() { + assert_equals(movementX_sum, clientX_last - clientX_init, "sum of movementX = clientX_init - clientX_last"); + assert_equals(movementY_sum, clientY_last - clientY_init, "sum of movementY = clientY_init - clientY_last"); + }); + movementX_Y_outside_window_Test.done(); + break; + } + }); + + document.addEventListener("mousemove", function (e) { + movementX = e.movementX; + movementY = e.movementY; + + if(click_counter === 1) { + if(!clientX_init) { + clientX_init = e.clientX; + clientY_init = e.clientY; + movementX_sum = movementX; + movementY_sum = movementY; + } + + movementX_Y_outside_window_Test.step(function() { + assert_less_than(Math.abs(movementX), 50, "movementX should not have large jumps in value."); + assert_less_than(Math.abs(movementY), 50, "movementY should not have large jumps in value."); + }); + + movementX_sum += movementX; + movementY_sum += movementY; + + clientX_last = e.clientX; + clientY_last = e.clientY; + clientX_delta = clientX_last - clientX_init; + clientY_delta = clientY_last - clientY_init; + + updateData(); + } + }); + + document.addEventListener("mouseenter", function (e) { + if(click_counter === 1) { + movementX_Y_outside_window_Test.step(function() { + assert_greater_than(Math.abs(e.clientX-clientX_last) + Math.abs(e.clientY-clientY_last), 100, "Test requires mouse to be moved at least 100 pixels outside of window."); + }); + } + }); + + function updateData() { + clientX_init_log.innerHTML = clientX_init; + clientY_init_log.innerHTML = clientY_init; + clientX_last_log.innerHTML = clientX_last; + clientY_last_log.innerHTML = clientY_last; + clientX_delta_log.innerHTML = clientX_delta; + clientY_delta_log.innerHTML = clientY_delta; + movementX_log.innerHTML = movementX; + movementY_log.innerHTML = movementY; + movementX_sum_log.innerHTML = movementX_sum; + movementY_sum_log.innerHTML = movementY_sum; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_basic-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_basic-manual.html new file mode 100644 index 0000000..d926318a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_basic-manual.html
@@ -0,0 +1,149 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + button { + color: blue; + } + + #locktarget { + position: relative; + background-color: grey; + width: 50px; + color: white; + line-height: 30px; + height: 30px; + } + + #basic-log { + margin: 10px 0; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test validates that the pointer properly be locked in a DOM element, and exit afterwards.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click the "Lock Target" to test if requestPointerLock() and exitPointerLock() causing a pointerlockchange event.</li> + <li>Confirm the lock with a user action (in Firefox).</li> + <li>Exit the pointer lock with a user action (usually 'esc'), to test if the cursor is at the same location.</li> + <li>Click the "ReEnterLock" to test that no engagement gesture is required to reenter pointer lock if pointer lock is exited via exitPointerLock.</li> + <li>Exit the pointer lock with a user action (usually 'esc').</li> + <li>Click the "RepeatLock" to validate that each requestPointerLock() will fire a pointerlockchange event.</li> + <li>Exit the pointer lock with a user action (usually 'esc').</li> + </ol> + </p> + <hr/> + + <button onclick="LockTarget();">Lock Target</button> + <button onclick="ReEnterLock();">ReEnter Lock</button> + <button onclick="RepeatLock();">Repeat Lock</button> + <div id="basic-log">Waiting... Please click the "Lock Target" button.</div> + <div id="locktarget">Target</div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var locktarget = document.querySelector('#locktarget'), + lock_log = document.querySelector('#basic-log'); + + var pointerlockchangeIsFiredonRequest = false; + var posX = posY = 0; + var event_counter = 0; + var request_counter = 0; + + var requestPointerLockTest = async_test("Test that the pointer properly be locked in a DOM element."); + var exitPointerLockTest = async_test("Test that the pointer lock properly be exited, the cursor is at the same location when exited."); + var reenterPointerLockTest = async_test("Test that no engagement gesture is required to reenter pointer lock if pointer lock is exited via exitPointerLock."); + var repeatLockPointerTest = async_test("Test validates that each requestPointerLock() will fire a pointerlockchange event."); + + document.addEventListener("pointerlockchange", function() { + event_counter ++; + + if(event_counter === 1) { + pointerlockchangeIsFiredonRequest = true; + runRequestPointerLockTest(); + } else if(event_counter === 2) { + runExitPointerLockTest(); + } else if(event_counter === 3) { + runReEnterPointerLockTest() + } else if(event_counter > 104) { + runRepeatLockPointerTest(); + } + }); + + function runRequestPointerLockTest() { + posX = window.screenX; + posY = window.screenY; + + requestPointerLockTest.step(function() { + assert_true(pointerlockchangeIsFiredonRequest === true, "pointerlockchange is fired when requesting pointerlock"); + assert_true(document.pointerLockElement === locktarget, "pointer is locked at the target element"); + }); + + lock_log.innerHTML = "Pointer is locked on the target element;"; + + requestPointerLockTest.done(); + } + + function runExitPointerLockTest() { + locktarget.requestPointerLock(); // To re-enter pointer lock + + exitPointerLockTest.step(function() { + assert_true(document.pointerLockElement === null, "pointer is unlocked"); + assert_equals(posX, window.screenX, "mouse cursor X is at the same location that it was when pointer lock was entered"); + assert_equals(posY, window.screenY, "mouse cursor Y is at the same location that it was when pointer lock was entered"); + }); + + lock_log.innerHTML = "Status: Exited pointer lock; Please click the 'Re-enter Lock' button and exit the lock."; + + exitPointerLockTest.done(); + } + + function runReEnterPointerLockTest() { + reenterPointerLockTest.step(function() { + assert_true(document.pointerLockElement === locktarget, "Pointer is locked again without engagement gesture"); + }); + + lock_log.innerHTML = "Status: Exited pointer lock; Please click the 'Repeat Lock' button and exit the lock."; + + reenterPointerLockTest.done(); + } + + function runRepeatLockPointerTest() { + repeatLockPointerTest.step(function() { + assert_equals(request_counter + 5, event_counter, "Each requestPointerLock() will fire a pointerlockchange event"); + }); + + lock_log.innerHTML = "Status: Test over."; + + repeatLockPointerTest.done(); + } + + function LockTarget() { + locktarget.requestPointerLock(); + } + + function ReEnterLock() { + locktarget.requestPointerLock(); + } + + function RepeatLock() { + for(var i = 0; i < 100; i++) { + request_counter++; + locktarget.requestPointerLock(); + } + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_fullscreen-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_fullscreen-manual.html new file mode 100644 index 0000000..7ce91ad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_fullscreen-manual.html
@@ -0,0 +1,173 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + button { + color: blue; + } + + #test-element-wrap { + position: relative; + background-color: lightgrey; + width: 400px; + height: 200px; + border: grey 1px solid; + } + + #test-element { + position: relative; + background-color: lightyellow; + width: 100px; + height: 30px; + border: yellow 1px solid; + } + + #status-log { + margin: 10px 0; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test validates that pointer lock won't be exited when fullscreen is entered or exited, unless fullscreen is exited with the same user gesture as pointer lock.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click the "scriptExitFullscreen" button.</li> + <li>If the exitFullscreen doesn't work, use the menu (or any other interaction except for the "esc" key) to exit fullscreen.</li> + <li>First test case done.</li> + <li>Click the "gestureExitFullscreen" button.</li> + <li>Use the "esc" key to exit fullscreen.</li> + <li>Second test case done.</li> + </ol> + </p> + <hr/> + + <button onclick="scriptExitFullscreen();">scriptExitFullscreen</button> + <button onclick="gestureExitFullscreen();">gestureExitFullscreen</button> + + <div id="test-element-wrap"> + <div id="status-log">Waiting... Please click the "scriptExitFullscreen" button.</div> + <div id="test-element">Target</div> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var test_element = document.querySelector('#test-element'), + test_element_wrap = document.querySelector('#test-element-wrap') + status_log = document.querySelector('#status-log'); + var enable_gestureExitFullscreen = false; + var gestureExit_pl = false; + var gestureExit_fs = false; + var gestureLock = false; + + var scriptExitFullscreenTest = async_test("Test that pointer lock won't be exited when fullscreen is entered or exited with script."); + var gestureExitFullscreenTest = async_test("Test that pointer lock is exited when fullscreen is entered or exited with the same user gesture."); + + function RequestFullscreen(element) { + var requestFullscreen = element.requestFullscreen || element.webkitRequestFullscreen || element.mozRequestFullscreen || element.msRequestFullscreen; + requestFullscreen.call(element); + } + + function ExitFullscreen() { + var exitFullscreen = document.exitFullscreen || document.webkitExitFullscreen || document.mozExitFullscreen || document.msExitFullscreen; + exitFullscreen.call(document); + } + + function FullscreenElement() { + var fullscreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullscreenElement || document.msFullscreenElement; + return fullscreenElement ? fullscreenElement : null; + } + + document.addEventListener("pointerlockchange", function() { + if(!enable_gestureExitFullscreen) { + // first test, enable fullscreen and pointer lock + if(document.pointerLockElement) { + ExitFullscreen(); + logStatus(); + + scriptExitFullscreenTest.step(function() { + assert_true(FullscreenElement() === null, "fullscreen is sucessfully exited"); + assert_true(document.pointerLockElement === test_element, "pointer is still locked at the target element"); + }); + scriptExitFullscreenTest.done(); + document.exitPointerLock(); + } else{ + // first test, fullscreen and pointer lock are exited + enable_gestureExitFullscreen = true; + } + } else { + gestureLock = true; + if(!document.pointerLockElement) { + // second test, pointer lock exited + gestureExit_pl = true; + + if(gestureExit_fs) { + // second test, fullscreen and pointer lock both exited + gestureExitFullscreenTest.step(function() { + assert_true(document.pointerLockElement === null, "pointer is sucessfully exited"); + assert_true(FullscreenElement() === null, "fullscreen is sucessfully exited"); + }); + gestureExitFullscreenTest.done(); + } + } + } + }); + + document.addEventListener("fullscreenchange", fullscreenChangeHandler); + + document.addEventListener("webkitfullscreenchange",fullscreenChangeHandler); + + function fullscreenChangeHandler() { + if(enable_gestureExitFullscreen && gestureLock && !FullscreenElement()) { + if(gestureExit_pl) { + // second test, fullscreen and pointer lock both exited + gestureExitFullscreenTest.step(function() { + assert_true(document.pointerLockElement === null, "pointer is sucessfully exited"); + assert_true(FullscreenElement() === null, "fullscreen is sucessfully exited"); + }); + + gestureExitFullscreenTest.done(); + } else { + gestureExit_fs = true; + } + } + } + + function logStatus() { + var status = ""; + if(document.pointerLockElement) { + status = "<p>Pointer is Locked.</p>" + } else { + status = "<p>Pointer Lock exited.</p>" + } + if(FullscreenElement()) { + status += "<p>Fullscreen is on now.</p>" + } else { + status += "<p>Fullscreen exited.</p>" + } + + status_log.innerHTML = status; + } + + function scriptExitFullscreen() { + test_element.requestPointerLock(); + RequestFullscreen(test_element_wrap); + } + + function gestureExitFullscreen() { + RequestFullscreen(test_element_wrap); + test_element.requestPointerLock(); + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_indefinite-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_indefinite-manual.html new file mode 100644 index 0000000..0db1227a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_indefinite-manual.html
@@ -0,0 +1,107 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + button { + color: blue; + } + + #target-wrap { + position: relative; + background-color: lightgrey; + width: 400px; + height: 150px; + border: grey 1px solid; + } + + #target-wrap span, #status-log { + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test validates that movementX/Y provided indefinitely even when the mouse cursor would have otherwise hit the edge of a screen.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click the "lockTarget" button to request a pointer lock.</li> + <li>Move the pointer constantly in a diagonal direction (e.g. up and right).</li> + <li>Test is done.</li> + </ol> + </p> + <hr/> + + <button onclick="lockTarget();">lockTarget</button> + + <div id="target-wrap"> + <div id="status-log">Click the "lockTarget" button.</div> + <p>screenSize: <span id="screenSize-log">NaN</span></p> + <p>movementX_sum: <span id="movementX_sum-log">NaN</span></p> + <p>movementY_sum: <span id="movementY_sum-log">NaN</span></p> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var screenSize_log = document.querySelector('#screenSize-log'), + movementX_sum_log = document.querySelector('#movementX_sum-log'), + movementY_sum_log = document.querySelector('#movementY_sum-log'), + status_log = document.querySelector('#status-log'), + target = document.querySelector('#target-wrap'); + var movementX_sum = 0, + movementY_sum = 0; + var screenWidth = screen.width, + screenHeight = screen.height; + + var enable_logging = false; + + screenSize_log.innerHTML = "width: " + screenWidth + " px, " + "height: " + screenHeight + " px" + + var movementXYIndefiniteTest = async_test("Test that movementX/Y provided indefinitely even when the mouse cursor would have otherwise hit the edge of a screen."); + + document.addEventListener("pointerlockchange", function() { + if(document.pointerLockElement) { + status_log.innerHTML = "Keep moving..."; + enable_logging = true; + } + }); + + document.addEventListener("mousemove", function (e) { + if(enable_logging) { + movementX_sum += Math.abs(e.movementX); + movementY_sum += Math.abs(e.movementY); + + movementX_sum_log.innerHTML = movementX_sum + "px"; + movementY_sum_log.innerHTML = movementY_sum + "px"; + + if(movementX_sum > 2 * screen.width && movementY_sum > 2 * screen.height) { + movementXYIndefiniteTest.step(function() { + assert_greater_than(movementX_sum, 2 * screenWidth, "Sum of movementX is greater than 2 times of screen width"); + assert_greater_than(movementY_sum, 2 * screenHeight, "Sum of movementY is greater than 2 times of screen height"); + }); + + movementXYIndefiniteTest.done(); + + status_log.innerHTML = "Test succeeds..."; + + enable_logging = false; + + document.exitPointerLock(); + } + } + }); + + function lockTarget() { + target.requestPointerLock(); + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_leave_Tab-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_leave_Tab-manual.html new file mode 100644 index 0000000..198e2fe --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_leave_Tab-manual.html
@@ -0,0 +1,85 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + button { + color: blue; + } + + #target-wrap { + position: relative; + background-color: lightgrey; + width: 200px; + height: 100px; + border: grey 1px solid; + } + + #target { + position: relative; + background-color: lightyellow; + width: 100px; + height: 30px; + border: yellow 1px solid; + } + + #status-log { + margin: 10px 0; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test validates that pointer lock will be lost the user agent / window loses focus.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click the "lockTarget" button to request a pointer lock.</li> + <li>Focus to another tab with keyboard (Ctrl-TAB).</li> + <li>Test is done.</li> + </ol> + </p> + <hr/> + + <button onclick="lockTarget();">lockTarget</button> + + <div id="target-wrap"> + <div id="status-log">Click the "lockTarget" button.</div> + <div id="target">Target</div> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var target = document.querySelector('#target'), + status_log = document.querySelector('#status-log'); + + var leaveTabTest = async_test("Test that pointer lock will be lost when the current Tab loses focus."); + + document.addEventListener("pointerlockchange", function() { + if(document.pointerLockElement) { + status_log.innerHTML = "Please leave the current tab."; + } else { + status_log.innerHTML = "Pointer lock exited!"; + + leaveTabTest.step(function() { + assert_true(document.pointerLockElement === null, "Pointer lock exited!"); + }); + + leaveTabTest.done(); + } + }); + + function lockTarget() { + target.requestPointerLock(); + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_leave_UA-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_leave_UA-manual.html new file mode 100644 index 0000000..e1440084 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_leave_UA-manual.html
@@ -0,0 +1,85 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + button { + color: blue; + } + + #target-wrap { + position: relative; + background-color: lightgrey; + width: 200px; + height: 100px; + border: grey 1px solid; + } + + #target { + position: relative; + background-color: lightyellow; + width: 100px; + height: 30px; + border: yellow 1px solid; + } + + #status-log { + margin: 10px 0; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test validates that pointer lock will be lost the user agent / window loses focus.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click the "lockTarget" button to request a pointer lock.</li> + <li>Focus to another window with keyboard (ALT-TAB).</li> + <li>Test is done.</li> + </ol> + </p> + <hr/> + + <button onclick="lockTarget();">lockTarget</button> + + <div id="target-wrap"> + <div id="status-log">Click the "lockTarget" button.</div> + <div id="target">Target</div> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var target = document.querySelector('#target'), + status_log = document.querySelector('#status-log'); + + var leaveUATest = async_test("Test that pointer lock will be lost when the user agent / window loses focus."); + + document.addEventListener("pointerlockchange", function() { + if(document.pointerLockElement) { + status_log.innerHTML = "Please leave the current window."; + } else { + status_log.innerHTML = "Pointer lock exited!"; + + leaveUATest.step(function() { + assert_true(document.pointerLockElement === null, "Pointer lock exited!"); + }); + + leaveUATest.done(); + } + }); + + function lockTarget() { + target.requestPointerLock(); + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_remove_target-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_remove_target-manual.html new file mode 100644 index 0000000..2103650 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_remove_target-manual.html
@@ -0,0 +1,87 @@ +<!DOCTYPE html> +<html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<meta name='flags' content='interact'> +<meta name="timeout" content="long"> +<style type="text/css"> + button { + color: blue; + } + + #target-wrap { + position: relative; + background-color: lightgrey; + width: 200px; + height: 100px; + border: grey 1px solid; + } + + #target { + position: relative; + background-color: lightyellow; + width: 100px; + height: 30px; + border: yellow 1px solid; + } + + #status-log { + margin: 10px 0; + color: green; + } +</style> +</head> +<body> + <h2>Description</h2> + <p>This test validates that pointer lock will be lost when the target is disconnected.</p> + <hr/> + + <h2>Manual Test Steps:</h2> + <p> + <ol> + <li>Click the "lockTarget" button to request a pointer lock.</li> + <li>Test is done.</li> + </ol> + </p> + <hr/> + + <button onclick="lockTarget();">lockTarget</button> + + <div id="target-wrap"> + <div id="status-log">Click the "lockTarget" button.</div> + <div id="target">Target</div> + </div> + <hr/> + + <div id="log"></div> + + <script type="text/javascript" > + var target = document.querySelector('#target'), + target_wrap = document.querySelector('#target-wrap') + status_log = document.querySelector('#status-log'); + + var removeTargetTest = async_test("Test that pointer lock will be lost when taking the target element out of the DOM."); + + document.addEventListener("pointerlockchange", function() { + if(document.pointerLockElement) { + status_log.innerHTML = "Target is locked!"; + + target_wrap.removeChild(target); + } else { + status_log.innerHTML = "Pointer lock exited!"; + + removeTargetTest.step(function() { + assert_true(document.pointerLockElement === null, "Pointer lock exited!"); + }); + + removeTargetTest.done(); + } + }); + + function lockTarget() { + target.requestPointerLock(); + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_shadow-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_shadow-manual.html new file mode 100644 index 0000000..8e70915b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/pointerlock_shadow-manual.html
@@ -0,0 +1,84 @@ +<!DOCTYPE html> +<html> +<head> +<meta name='author' title='Takayoshi Kochi' href='mailto:kochi@chromium.org'> +<meta name='assert' content='Test for DocumentOrShadowRoot.pointerLockElement.'> +<link rel='help' href='https://w3c.github.io/pointerlock/#widl-DocumentOrShadowRoot-pointerLockElement'> +<meta name='flags' content='interact'> +<meta name='timeout' content='long'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='../shadow-dom/resources/shadow-dom.js'></script> +</head> +<body> +<div id='host'> + <template data-mode='open' id='root'> + <slot></slot> + </template> + <div id='host2'> + <template data-mode='open' id='root2'> + <div id='host3'> + <template data-mode='open' id='root3'> + <canvas id='canvas'></canvas> + <div id='host4'> + <template data-mode='open' id='root4'> + <div></div> + </template> + </div> + </template> + </div> + <div id='host5'> + <template data-mode='open' id='root5'> + <div></div> + </template> + </div> + </template> + </div> +</div> + +<script> +function run_test() { + async_test((test) => { + document.onpointerlockerror = test.unreached_func('onpointerlockerror is not expected.'); + + document.onpointerlockchange = test.step_func(() => { + // Not interested in handling before or after exitPointerLock. + if (document.pointerLockElement === null) + return; + + assert_equals(document.pointerLockElement, ids.host2, 'document.pointerLockElement should be shadow #host2.'); + assert_equals(ids.root.pointerLockElement, null, '#root\'s shadowRoot.pointerLockElement should be null.'); + assert_equals(ids.root2.pointerLockElement, ids.host3, '#root2\'s shadowRoot.pointerLockElement should be host3.'); + assert_equals(ids.root3.pointerLockElement, ids.canvas, '#root3\'s shadowRoot.pointerLockElement should be canvas element.'); + assert_equals(ids.root4.pointerLockElement, null, '#root4\'s shadowRoot.pointerLockElement should be null.'); + assert_equals(ids.root5.pointerLockElement, null, '#root5\'s shadowRoot.pointerLockElement should be null.'); + + document.exitPointerLock(); + test.done(); + }); + + var ids = createTestTree(host); + document.body.appendChild(ids.host); + + // All pointerLockElement should default to null. + test.step(() => { + assert_equals(document.pointerLockElement, null); + assert_equals(ids.root.pointerLockElement, null); + assert_equals(ids.root2.pointerLockElement, null); + assert_equals(ids.root3.pointerLockElement, null); + assert_equals(ids.root4.pointerLockElement, null); + assert_equals(ids.root5.pointerLockElement, null); + }); + + var canvas = ids.canvas; + canvas.requestPointerLock(); + }, 'Test for pointerLockElement adjustment for Shadow DOM.'); +} +</script> +<div> + <h2>Description</h2> + <p>Click the button below to trigger pointer lock on an element in a shadow root.</p> + <button onclick="run_test()">Click Me!</button> +</div> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/progress-events/Status.html b/third_party/WebKit/LayoutTests/external/wpt/progress-events/Status.html new file mode 100644 index 0000000..f2aee75 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/progress-events/Status.html
@@ -0,0 +1,26 @@ +<!doctype html> +<html> +<head> + <title>Progress Events Test Status</title> +</head> +<body> + +<h2>Progress Events Test Suite Status</h2> + +<p>This test suite is part of the +<a href="http://www.w3.org/2008/webapps/wiki/">Web Application WG's</a> +Test Repository as described in WebApps' +<a href="http://www.w3.org/2008/webapps/wiki/Testing">Testing Wiki</a>. +</p> + +<p>The test suite is for the +<a href="http://dev.w3.org/2006/webapi/progress/">Progress Events</a> specification. +</p> + +<ul> + <li>Test suite status: The group has reviewed and approved all tests in the approved folder.</li> + <li>Test suite Facilitator: Jungkee Song</li> +</ul> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/progress-events/constructor.html b/third_party/WebKit/LayoutTests/external/wpt/progress-events/constructor.html new file mode 100644 index 0000000..19d77f94 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/progress-events/constructor.html
@@ -0,0 +1,47 @@ +<!doctype html> +<title>ProgressEvent constructor</title> +<link rel="help" href="https://www.w3.org/TR/progress-events/#interface-progressevent"> +<link rel="help" href="https://dom.spec.whatwg.org/#concept-event-constructor"> +<link rel="help" href="https://dom.spec.whatwg.org/#interface-event"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +test(function() { + var ev = new ProgressEvent("test") + assert_equals(ev.type, "test") + assert_equals(ev.target, null) + assert_equals(ev.currentTarget, null) + assert_equals(ev.eventPhase, Event.NONE) + assert_equals(ev.bubbles, false) + assert_equals(ev.cancelable, false) + assert_equals(ev.defaultPrevented, false) + assert_equals(ev.isTrusted, false) + assert_true(ev.timeStamp > 0) + assert_true("initEvent" in ev) + assert_equals(ev.lengthComputable, false) + assert_equals(ev.loaded, 0) + assert_equals(ev.total, 0) +}, "Default event values.") +test(function() { + var ev = new ProgressEvent("test") + assert_equals(ev["initProgressEvent"], undefined) +}, "There must not be a initProgressEvent().") +test(function() { + var ev = new ProgressEvent("I am an event", { type: "trololol", bubbles: true, cancelable: false}) + assert_equals(ev.type, "I am an event") + assert_equals(ev.bubbles, true) + assert_equals(ev.cancelable, false) +}, "Basic test.") +test(function() { + var ev = new ProgressEvent(null, { lengthComputable: "hah", loaded: "2" }) + assert_equals(ev.type, "null") + assert_equals(ev.lengthComputable, true) + assert_equals(ev.loaded, 2) +}, "ECMAScript value conversion test.") +test(function() { + var ev = new ProgressEvent("Xx", { lengthcomputable: true}) + assert_equals(ev.type, "Xx") + assert_equals(ev.lengthComputable, false) +}, "ProgressEventInit members must be matched case-sensitively.") +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/progress-events/interface.html b/third_party/WebKit/LayoutTests/external/wpt/progress-events/interface.html new file mode 100644 index 0000000..850d1b23 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/progress-events/interface.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<title>The ProgressEvent interface</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +test(function() { + assert_equals(typeof ProgressEvent, "function") + assert_equals(ProgressEvent.length, 1) +}) +test(function() { + var desc = Object.getOwnPropertyDescriptor(ProgressEvent, "prototype") + assert_equals(desc.value, ProgressEvent.prototype) + assert_equals(desc.writable, false) + assert_equals(desc.enumerable, false) + assert_equals(desc.configurable, false) + assert_throws(new TypeError(), function() { + "use strict"; + delete ProgressEvent.prototype; + }) + assert_equals(ProgressEvent.prototype.constructor, ProgressEvent) + assert_equals(Object.getPrototypeOf(ProgressEvent.prototype), Event.prototype) +}, "interface prototype object") +var attributes = [ + ["boolean", "lengthComputable"], + ["unsigned long long", "loaded"], + ["unsigned long long", "total"] +]; +attributes.forEach(function(a) { + test(function() { + var desc = Object.getOwnPropertyDescriptor(ProgressEvent.prototype, a[1]) + assert_equals(desc.enumerable, true) + assert_equals(desc.configurable, true) + assert_throws(new TypeError(), function() { + ProgressEvent.prototype[a[1]] + }) + }) +}) +test(function() { + for (var p in window) { + assert_not_equals(p, "ProgressEvent") + } +}, "Interface objects properties should not be Enumerable") +test(function() { + assert_true(!!window.ProgressEvent, "Interface should exist.") + assert_true(delete window.ProgressEvent, "The delete operator should return true.") + assert_equals(window.ProgressEvent, undefined, "Interface should be gone.") +}, "Should be able to delete ProgressEvent.") +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/firing-events-http-content-length.html b/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/firing-events-http-content-length.html new file mode 100644 index 0000000..d897a71 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/firing-events-http-content-length.html
@@ -0,0 +1,38 @@ +<!doctype html> +<html> + <head> + <title>ProgressEvent: firing events for HTTP with Content-Length</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <link rel="help" href="http://dvcs.w3.org/hg/progress/raw-file/tip/Overview.html#firing-events-using-the-progressevent-interface-for-http" data-tested-assertations="/following-sibling::ol/li[1] /following-sibling::ol/li[2]" /> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(); + + test.step(function() { + var xhr = new XMLHttpRequest(); + + xhr.onprogress = function(pe) { + test.step(function() { + if(pe.type == "progress") { + assert_true(pe.loaded >= 0, "loaded is initialize to the number of HTTP entity body bytes transferred."); + assert_true(pe.lengthComputable, "lengthComputable is true."); + assert_not_equals(pe.total, 0, "total is not zero."); + } + }, "Check lengthComputed, loaded, total when Content-Length is given."); + } + + // "loadstart", "error", "abort", "load" tests are out of scope. + // They SHOULD be tested in each spec that implement ProgressEvent. + + xhr.onloadend = function(pe) { + test.done(); + } + xhr.open("GET", "resources/img.jpg", true); + xhr.send(null); + }) + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/firing-events-http-no-content-length.html b/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/firing-events-http-no-content-length.html new file mode 100644 index 0000000..b30b03af --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/firing-events-http-no-content-length.html
@@ -0,0 +1,38 @@ +<!doctype html> +<html> + <head> + <title>ProgressEvent: firing events for HTTP with no Content-Length</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <link rel="help" href="http://dvcs.w3.org/hg/progress/raw-file/tip/Overview.html#firing-events-using-the-progressevent-interface-for-http" data-tested-assertations="/following-sibling::ol/li[1] /following-sibling::ol/li[2]" /> + </head> + <body> + <div id="log"></div> + <script> + var test = async_test(); + + test.step(function() { + var xhr = new XMLHttpRequest(); + + xhr.onprogress = function(pe) { + test.step(function() { + if(pe.type == "progress") { + assert_true(pe.loaded >= 0, "loaded is initialize to the number of HTTP entity body bytes transferred."); + assert_false(pe.lengthComputable, "lengthComputable is false."); + assert_equals(pe.total, 0, "total is zero."); + } + }, "Check lengthComputed, loaded, total when Content-Length is NOT given."); + } + + // "loadstart", "error", "abort", "load" tests are out of scope. + // They SHOULD be tested in each spec that implement ProgressEvent. + + xhr.onloadend = function(pe) { + test.done(); + } + xhr.open("GET", "resources/no-content-length.py", true); + xhr.send(null); + }) + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/resources/no-content-length.py b/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/resources/no-content-length.py new file mode 100644 index 0000000..0b47ff1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/progress-events/tests/submissions/Samsung/resources/no-content-length.py
@@ -0,0 +1,15 @@ +def main(request, response): + response.headers.update([('Transfer-Encoding', 'chunked'), + ('Content-Type', 'text/html'), + ('Connection', 'keep-alive')]) + response.write_status_headers() + response.explicit_flush = True + + string = "W3C" + for i in xrange(1000): + response.writer.write("%s\r\n%s\r\n" % (len(string), string)) + response.writer.flush(); + + response.writer.write("0\r\n\r\n") + response.writer.flush(); +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-dedicated-worker.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-dedicated-worker.html new file mode 100644 index 0000000..737f31b1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-dedicated-worker.html
@@ -0,0 +1,83 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test WorkerGlobalScope.isSecureContext for HTTP creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + </head> + <body> + <script> + var t1 = async_test("HTTP worker"); + var t2 = async_test("HTTPS worker"); + var t3 = async_test("HTTP nested worker"); + var t4 = async_test("HTTPS nested worker"); + var t5 = async_test("HTTP worker from HTTPS subframe"); + var t6 = async_test("HTTPS worker from HTTPS subframe"); + + var w1 = new Worker(http_dir + "support/dedicated-worker-script.js"); + w1.onmessage = t1.step_func_done(function(e) { + assert_false(e.data); + }); + w1.onerror = t1.step_func_done(function(e) { + assert_unreached("isSecureContext should be supported"); + }); + + var w2 = new Worker(https_dir + "support/dedicated-worker-script.js"); + w2.onmessage = t2.step_func_done(function(e) { + assert_unreached("cross-origin workers should not be loaded"); + }); + w2.onerror = t2.step_func_done(function(e) { + e.preventDefault(); + }); + + var w3 = new Worker(http_dir + "support/parent-dedicated-worker-script.js"); + w3.onmessage = t3.step_func_done(function(e) { + assert_false(e.data); + }); + w3.onerror = t3.step_func_done(function(e) { + assert_unreached("isSecureContext should be supported"); + }); + + var w4 = new Worker(https_dir + "support/parent-dedicated-worker-script.js"); + w4.onmessage = t4.step_func_done(function(e) { + assert_unreached("cross-origin workers should not be loaded"); + }); + w4.onerror = t4.step_func_done(function(e) { + e.preventDefault(); + }); + + onmessage = function(e) { + var data = e.data; + if (data.type == "http") { + t5.step(function() { + assert_true(data.error); + }); + t5.done(); + } else if (data.type == "https") { + t6.step(function() { + assert_false(data.error); + assert_false(data.isSecureContext); + }); + t6.done(); + } else { + t5.step(function() { + assert_unreached("Unknown message"); + }); + t5.done(); + t6.step(function() { + assert_unreached("Unknown message"); + }); + t6.done(); + } + } + + var ifr = document.createElement("iframe"); + ifr.src = https_dir + "support/https-subframe-dedicated.html"; + document.body.appendChild(ifr); + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-dedicated-worker.https.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-dedicated-worker.https.html new file mode 100644 index 0000000..012c7b1d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-dedicated-worker.https.html
@@ -0,0 +1,83 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test WorkerGlobalScope.isSecureContext for HTTPS creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + </head> + <body> + <script> + var t1 = async_test("HTTP worker"); + var t2 = async_test("HTTPS worker"); + var t3 = async_test("HTTP nested worker"); + var t4 = async_test("HTTPS nested worker"); + var t5 = async_test("HTTP worker from HTTPS subframe"); + var t6 = async_test("HTTPS worker from HTTPS subframe"); + + var w1 = new Worker(http_dir + "support/dedicated-worker-script.js"); + w1.onmessage = t1.step_func_done(function(e) { + assert_unreached("cross-origin workers should not be loaded"); + }); + w1.onerror = t1.step_func_done(function(e) { + e.preventDefault(); + }); + + var w2 = new Worker(https_dir + "support/dedicated-worker-script.js"); + w2.onmessage = t2.step_func_done(function(e) { + assert_true(e.data); + }); + w2.onerror = t2.step_func_done(function(e) { + assert_unreached("isSecureContext should be supported"); + }); + + var w3 = new Worker(http_dir + "support/parent-dedicated-worker-script.js"); + w3.onmessage = t3.step_func_done(function(e) { + assert_unreached("cross-origin workers should not be loaded"); + }); + w3.onerror = t3.step_func_done(function(e) { + e.preventDefault(); + }); + + var w4 = new Worker(https_dir + "support/parent-dedicated-worker-script.js"); + w4.onmessage = t4.step_func_done(function(e) { + assert_true(e.data); + }); + w4.onerror = t4.step_func_done(function(e) { + assert_unreached("isSecureContext should be supported"); + }); + + onmessage = function(e) { + var data = e.data; + if (data.type == "http") { + t5.step(function() { + assert_true(data.error); + }); + t5.done(); + } else if (data.type == "https") { + t6.step(function() { + assert_false(data.error); + assert_true(data.isSecureContext); + }); + t6.done(); + } else { + t5.step(function() { + assert_unreached("Unknown message"); + }); + t5.done(); + t6.step(function() { + assert_unreached("Unknown message"); + }); + t6.done(); + } + } + + var ifr = document.createElement("iframe"); + ifr.src = https_dir + "support/https-subframe-dedicated.html"; + document.body.appendChild(ifr); + </script> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.html new file mode 100644 index 0000000..ab3c443 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.html
@@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test Window.isSecureContext for HTTP creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <meta name="author" title="Jonathan Watt" href="https://jwatt.org/"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + <script> + +// This file is the equivasent of the https version, but rather than +// having a copy of its script file we figure out the URI of the script on the +// https server and load it here. +let script = document.createElement("script"); +script.setAttribute("src", https_dir + "basic-popup-and-iframe-tests.https.js"); +document.head.appendChild(script); + + </script> + </head> + <body onload="begin();"> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.html new file mode 100644 index 0000000..a9c7f3c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.html
@@ -0,0 +1,16 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test Window.isSecureContext for HTTPS creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <meta name="author" title="Jonathan Watt" href="https://jwatt.org/"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + <script src="basic-popup-and-iframe-tests.https.js"></script> + </head> + <body onload="begin();"> + </body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.js b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.js new file mode 100644 index 0000000..93b5e2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-popup-and-iframe-tests.https.js
@@ -0,0 +1,279 @@ + +/** + * This test checks the Secure Context state of documents for various + * permutations of document URI types and loading methods. + * + * The hierarchy that is tested is: + * + * creator-doc > createe-doc + * + * The creator-doc is one of: + * + * http: + * https: + * + * The createe-doc is loaded as either a: + * + * popup + * iframe + * sandboxed-iframe + * + * into which we load and test: + * + * http: + * https: + * blob: + * javascript: + * about:blank + * initial about:blank + * srcdoc + * + * TODO once web-platform-tests supports it: + * - test http://localhost + * - test file: + * + * TODO once https://github.com/w3c/webappsec-secure-contexts/issues/26 is resolved + * - test data: + */ + + +setup({explicit_done:true}); + + +const host_and_dirname = location.host + + location.pathname.substr(0, location.pathname.lastIndexOf("/") + 1); + + +// Flags to indicate where document types should be loaded for testing: +const eLoadInPopup = (1 << 0); +const eLoadInUnsandboxedIframe = (1 << 1); +const eLoadInSandboxedIframe = (1 << 2); +const eLoadInEverything = eLoadInPopup | eLoadInUnsandboxedIframe | eLoadInSandboxedIframe; + +// Flags indicating if a document type is expected to be a Secure Context: +const eSecureNo = 1; +const eSecureIfCreatorSecure = 2; + +// Flags indicating how the result of a test is obtained: +const eResultFromPostMessage = 1; +const eResultFromExaminationOnLoad = 2; +const eResultFromExaminationSync = 3; + + +const loadTypes = [ + new LoadType("an http: URI", + eLoadInEverything, + http_dir + "postMessage-helper.html", + eSecureNo, + eResultFromPostMessage), + new LoadType("an https: URI", + eLoadInEverything, + https_dir + "postMessage-helper.https.html", + eSecureIfCreatorSecure, + eResultFromPostMessage), + new LoadType("a blob: URI", + eLoadInEverything, + URL.createObjectURL(new Blob(["<script>(opener||parent).postMessage(isSecureContext, '*')</script>"])), + eSecureIfCreatorSecure, + eResultFromPostMessage), + new LoadType("a srcdoc", + // popup not relevant: + eLoadInUnsandboxedIframe | eLoadInSandboxedIframe, + "<script>(opener||parent).postMessage(isSecureContext, '*')</script>", + eSecureIfCreatorSecure, + eResultFromPostMessage), + new LoadType("a javascript: URI", + // can't load in sandbox: + eLoadInUnsandboxedIframe | eLoadInPopup, + "javascript:(opener||parent).postMessage(isSecureContext, '*')", + eSecureIfCreatorSecure, + eResultFromPostMessage), + new LoadType("about:blank", + // can't obtain state if sandboxed: + eLoadInUnsandboxedIframe | eLoadInPopup, + "about:blank", + eSecureIfCreatorSecure, + eResultFromExaminationOnLoad), + new LoadType("initial about:blank", + // can't obtain state if sandboxed: + eLoadInUnsandboxedIframe | eLoadInPopup, + "about:blank", // we don't wait for this to load, so whatever + eSecureIfCreatorSecure, + eResultFromExaminationSync), +]; + +const loadTargets = [ + new LoadTarget("an iframe", eLoadInUnsandboxedIframe), + new LoadTarget("a sandboxed iframe", eLoadInSandboxedIframe), + new LoadTarget("a popup", eLoadInPopup), +]; + + +function LoadType(description, loadInFlags, uri, expectedSecureFlag, resultFrom) { + this.desc = description; + this.loadInFlags = loadInFlags; + this.uri = uri; + this.expectedSecureFlag = expectedSecureFlag; + this.resultFrom = resultFrom; +} + + +function LoadTarget(description, loadInFlag) { + this.desc = description; + this.loadInFlag = loadInFlag; +} + +LoadTarget.prototype.open = function(loadType) { + let loadTarget = this; + this.currentTest.step(function() { + assert_true((loadTarget.loadInFlag & loadType.loadInFlags) != 0, + loadType.desc + " cannot be tested in " + loadTarget.desc); + }); + if (this.loadInFlag == eLoadInUnsandboxedIframe) { + let iframe = document.createElement("iframe"); + document.body.appendChild(iframe); + iframe[loadType.desc == "a srcdoc" ? "srcdoc" : "src"] = loadType.uri; + return iframe; + } + if (this.loadInFlag == eLoadInSandboxedIframe) { + let iframe = document.body.appendChild(document.createElement("iframe")); + iframe.setAttribute("sandbox", "allow-scripts"); + iframe[loadType.desc == "a srcdoc" ? "srcdoc" : "src"] = loadType.uri; + return iframe; + } + if (this.loadInFlag == eLoadInPopup) { + return window.open(loadType.uri); + } + this.currentTest.step(function() { + assert_unreached("Unknown load type flag: " + loadInFlags); + }); + return null; +} + +LoadTarget.prototype.close = function(domTarget) { + if (this.loadInFlag == eLoadInUnsandboxedIframe || + this.loadInFlag == eLoadInSandboxedIframe) { + domTarget.remove(); + return; + } + if (this.loadInFlag == eLoadInPopup) { + domTarget.close(); + return; + } + this.currentTest.step(function() { + assert_unreached("Unknown load type flag: " + loadInFlags); + }); +} + +LoadTarget.prototype.load_and_get_result_for = function(loadType) { + if (!(loadType.loadInFlags & this.loadInFlag)) { + return Promise.reject("not applicable"); + } + if (!(this.loadInFlag & eLoadInPopup) && + location.protocol == "https:" && + loadType.uri.substr(0,5) == "http:") { + // Mixed content blocker will prevent this load + return Promise.reject("not applicable"); + } + this.currentTest = async_test("Test Window.isSecureContext in " + this.desc + + " loading " + loadType.desc) + if (loadType.resultFrom == eResultFromExaminationSync) { + let domTarget = this.open(loadType); + let result = domTarget instanceof Window ? + domTarget.isSecureContext : domTarget.contentWindow.isSecureContext; + this.close(domTarget); + return Promise.resolve(result); + } + let target = this; + if (loadType.resultFrom == eResultFromExaminationOnLoad) { + return new Promise(function(resolve, reject) { + function handleLoad(event) { + let result = domTarget instanceof Window ? + domTarget.isSecureContext : domTarget.contentWindow.isSecureContext; + domTarget.removeEventListener("load", handleLoad); + target.close(domTarget); + resolve(result); + } + let domTarget = target.open(loadType); + domTarget.addEventListener("load", handleLoad, false); + }); + } + if (loadType.resultFrom == eResultFromPostMessage) { + return new Promise(function(resolve, reject) { + function handleMessage(event) { + window.removeEventListener("message", handleMessage); + target.close(domTarget); + resolve(event.data); + } + window.addEventListener("message", handleMessage, false); + let domTarget = target.open(loadType); + }); + } + return Promise.reject("unexpected 'result from' type"); +} + + +let current_type_index = -1; +let current_target_index = 0; + +function run_next_test() { + current_type_index++; + if (current_type_index >= loadTypes.length) { + current_type_index = 0; + current_target_index++; + if (current_target_index >= loadTargets.length) { + done(); + return; // all test permutations complete + } + } + let loadTarget = loadTargets[current_target_index]; + let loadType = loadTypes[current_type_index]; + loadTarget.load_and_get_result_for(loadType).then( + function(value) { + run_next_test_soon(); + loadTarget.currentTest.step(function() { + if (loadType.expectedSecureFlag == eSecureNo) { + assert_false(value, loadType.desc + " in " + loadTarget.desc + " should not create a Secure Context"); + } else if (loadType.expectedSecureFlag == eSecureIfCreatorSecure) { + if (!window.isSecureContext) { + assert_false(value, loadType.desc + " in " + loadTarget.desc + " should not create a Secure Context when its creator is not a Secure Context."); + } else { + assert_true(value, loadType.desc + " in " + loadTarget.desc + " should create a Secure Context when its creator is a Secure Context"); + } + } else { + assert_unreached(loadType.desc + " - unknown expected secure flag: " + expectedSecureFlag); + } + loadTarget.currentTest.done(); + }); + }, + function(failReason) { + run_next_test_soon(); + if (failReason == "not applicable") { + return; + } + loadTarget.currentTest.step(function() { + assert_unreached(loadType.desc + " - got unexpected rejected promise"); + }); + } + ); +} + +function run_next_test_soon() { + setTimeout(run_next_test, 0); +} + +function begin() { + test(function() { + if (location.protocol == "http:") { + assert_false(isSecureContext, + "http: creator should not be a Secure Context"); + } else if (location.protocol == "https:") { + assert_true(isSecureContext, + "https: creator should be a Secure Context"); + } else { + assert_unreached("Unknown location.protocol"); + } + }); + run_next_test(); +} +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-shared-worker.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-shared-worker.html new file mode 100644 index 0000000..76c28a36 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-shared-worker.html
@@ -0,0 +1,69 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test SharedWorkerGlobalScope.isSecureContext for HTTP creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + </head> + <body> + <script> + var t1 = async_test("Shared worker"); + var t2 = async_test("Nested worker in shared worker"); + var t3 = async_test("Shared worker from https subframe"); + var t4 = async_test("Nested worker from shared worker from https subframe"); + // Tests for SharedWorkers used from other workers (not supported right + // now) would go here. + + t1.step(function() { + var w = new SharedWorker("support/shared-worker-script.js"); + w.port.onmessage = t1.step_func_done(function(e) { + assert_false(e.data); + }); + w.port.start(); + }); + + t2.step(function() { + var w = new SharedWorker("support/parent-shared-worker-script.js"); + w.port.onmessage = t2.step_func_done(function(e) { + assert_false(e.data); + }); + w.port.start(); + }); + + onmessage = function(e) { + var data = e.data; + if (data.type == "shared") { + t3.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_false(data.isSecureContext); + }); + t3.done(); + } else if (data.type == "nested") { + t4.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_false(data.isSecureContext); + }); + t4.done(); + } else { + t3.step(function() { + assert_unreached("Unknown message"); + }); + t3.done(); + t4.step(function() { + assert_unreached("Unknown message"); + }); + t4.done(); + } + } + + var ifr = document.createElement("iframe"); + ifr.src = https_dir2 + "support/https-subframe-shared.html"; + document.body.appendChild(ifr); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-shared-worker.https.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-shared-worker.https.html new file mode 100644 index 0000000..e7c78383 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/basic-shared-worker.https.html
@@ -0,0 +1,67 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test SharedWorkerGlobalScope.isSecureContext for HTTP creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + </head> + <body> + <script> + var t1 = async_test("Shared worker"); + var t2 = async_test("Nested worker in shared worker"); + var t3 = async_test("Shared worker from https subframe"); + var t4 = async_test("Nested worker from shared worker from https subframe"); + + t1.step(function() { + var w = new SharedWorker("support/shared-worker-script.js"); + w.port.onmessage = t1.step_func_done(function(e) { + assert_true(e.data); + }); + w.port.start(); + }); + + t2.step(function() { + var w = new SharedWorker("support/parent-shared-worker-script.js"); + w.port.onmessage = t2.step_func_done(function(e) { + assert_true(e.data); + }); + w.port.start(); + }); + + onmessage = function(e) { + var data = e.data; + if (data.type == "shared") { + t3.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_true(data.isSecureContext); + }); + t3.done(); + } else if (data.type == "nested") { + t4.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_true(data.isSecureContext); + }); + t4.done(); + } else { + t3.step(function() { + assert_unreached("Unknown message"); + }); + t3.done(); + t4.step(function() { + assert_unreached("Unknown message"); + }); + t4.done(); + } + } + + var ifr = document.createElement("iframe"); + ifr.src = https_dir3 + "support/https-subframe-shared.html"; + document.body.appendChild(ifr); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/postMessage-helper.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/postMessage-helper.html new file mode 100644 index 0000000..8971c86 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/postMessage-helper.html
@@ -0,0 +1 @@ +<script>(opener||parent).postMessage(isSecureContext, '*')</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/postMessage-helper.https.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/postMessage-helper.https.html new file mode 100644 index 0000000..8971c86 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/postMessage-helper.https.html
@@ -0,0 +1 @@ +<script>(opener||parent).postMessage(isSecureContext, '*')</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/server-locations.sub.js b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/server-locations.sub.js new file mode 100644 index 0000000..6b29c53 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/server-locations.sub.js
@@ -0,0 +1,17 @@ +var https_dir = "https://{{location[hostname]}}:{{ports[https][0]}}{{location[path]}}"; +https_dir = https_dir.substr(0, https_dir.lastIndexOf("/") + 1); + +var http_dir = "http://{{location[hostname]}}:{{ports[http][0]}}{{location[path]}}"; +http_dir = http_dir.substr(0, http_dir.lastIndexOf("/") + 1); + +var https_dir2 = "https://{{domains[www]}}:{{ports[https][0]}}{{location[path]}}"; +https_dir2 = https_dir2.substr(0, https_dir2.lastIndexOf("/") + 1); + +var https_dir3 = "https://{{domains[www1]}}:{{ports[https][0]}}{{location[path]}}"; +https_dir3 = https_dir3.substr(0, https_dir3.lastIndexOf("/") + 1); + +var https_dir4 = "https://{{domains[www2]}}:{{ports[https][0]}}{{location[path]}}"; +https_dir4 = https_dir4.substr(0, https_dir4.lastIndexOf("/") + 1); + +var https_dir5 = "https://{{domains[élève]}}:{{ports[https][0]}}{{location[path]}}"; +https_dir5 = https_dir5.substr(0, https_dir5.lastIndexOf("/") + 1);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/shared-worker-insecure-first.https.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/shared-worker-insecure-first.https.html new file mode 100644 index 0000000..074b21c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/shared-worker-insecure-first.https.html
@@ -0,0 +1,111 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test SharedWorkerGlobalScope.isSecureContext for HTTP creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + </head> + <body> + <script> + /* + * The goal of this test is to check that we do the right thing if the + * same SharedWorker is used first from an insecure context and then from + * a secure context. + * + * To do this, we first open an insecure (http) popup, which loads a + * subframe that is same-origin with us but not a secure context, since + * its parent is http, not https. Then this subframe loads a SharedWorker + * and communicates back to us whether that worker and a child dedicated + * worker it spawns think they are secure contexts. Async tests t3 and t4 + * track these two workers. + * + * After we have heard from both workers in the popup, we directly load + * the same exact subframe ourselves and see what the workers in it + * report. Async tests t1 and t2 track these two workers. + */ + var t1 = async_test("Shared worker in subframe"); + var t2 = async_test("Nested worker in shared worker in subframe"); + var t3 = async_test("Shared worker in popup"); + var t4 = async_test("Nested worker from shared worker in popup"); + + var messageCount = 0; + var popup = null; + onmessage = function(e) { + ++messageCount; + // Make sure to not close the popup until we've run the iframe part of + // the test! We need to keep those shared workers alive. + if (messageCount == 4 && popup) { + popup.close(); + } + var data = e.data; + if (data.type == "shared") { + // This is a message from our shared worker; check whether it's the + // one in the popup or in our subframe. + if (data.fromPopup) { + t3.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_false(data.isSecureContext); + }); + t3.done(); + } else { + t1.step(function() { + assert_false(data.exception); + assert_true(data.error); + }); + t1.done(); + } + } else if (data.type == "nested") { + // This is a message from our shared worker's nested dedicated worker; + // check whether it's the one in the popup or in our subframe. + if (data.fromPopup) { + t4.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_false(data.isSecureContext); + }); + t4.done(); + } else { + t2.step(function() { + assert_false(data.exception); + assert_true(data.error); + }); + t2.done(); + } + } else { + if (popup) { + popup.close(); + } + t1.step(function() { + assert_unreached("Unknown message"); + }); + t1.done(); + t2.step(function() { + assert_unreached("Unknown message"); + }); + t2.done(); + t3.step(function() { + assert_unreached("Unknown message"); + }); + t3.done(); + t4.step(function() { + assert_unreached("Unknown message"); + }); + t4.done(); + } + + if (messageCount == 2) { + // Got both messages from our popup; time to create our child. + var ifr = document.createElement("iframe"); + ifr.src = https_dir5 + "support/https-subframe-shared.html"; + document.body.appendChild(ifr); + } + } + + popup = window.open(http_dir + "support/shared-worker-insecure-popup.html?https_dir5"); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/shared-worker-secure-first.https.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/shared-worker-secure-first.https.html new file mode 100644 index 0000000..27697d6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/shared-worker-secure-first.https.html
@@ -0,0 +1,111 @@ +<!doctype html> +<html> + <head> + <meta charset=utf-8> + <title>Test SharedWorkerGlobalScope.isSecureContext for HTTP creator</title> + <meta name="help" href="https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="server-locations.sub.js"></script> + </head> + <body> + <script> + /* + * The goal of this test is to check that we do the right thing if the + * same SharedWorker is used first from an secure context and then from + * an insecure context. + * + * To do this, we load a subframe which loads a SharedWorker + * and communicates back to us whether that worker and a child dedicated + * worker it spawns think they are secure contexts. Async tests t1 and t2 + * track these two workers. + * + * After we have heard from both workers in the subframe, we open an + * insecure (http) popup, which loads the same exact subframe. This + * subframe is still is same-origin with + * us but not a secure context, since its parent is http, not https. Then + * we wait to hear about the status of the workers in the popup's + * subframe. Async tests t3 and t4 track these two workers. + * + */ + var t1 = async_test("Shared worker in subframe"); + var t2 = async_test("Nested worker in shared worker in subframe"); + var t3 = async_test("Shared worker in popup"); + var t4 = async_test("Nested worker from shared worker in popup"); + + var messageCount = 0; + var popup = null; + onmessage = function(e) { + ++messageCount; + if (messageCount == 4 && popup) { + popup.close(); + } + var data = e.data; + if (data.type == "shared") { + // This is a message from our shared worker; check whether it's the + // one in the popup or in our subframe. + if (data.fromPopup) { + t3.step(function() { + assert_false(data.exception); + assert_true(data.error); + }); + t3.done(); + } else { + t1.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_true(data.isSecureContext); + }); + t1.done(); + } + } else if (data.type == "nested") { + // This is a message from our shared worker's nested dedicated worker; + // check whether it's the one in the popup or in our subframe. + if (data.fromPopup) { + t4.step(function() { + assert_false(data.exception); + assert_true(data.error); + }); + t4.done(); + } else { + t2.step(function() { + assert_false(data.exception); + assert_false(data.error); + assert_true(data.isSecureContext); + }); + t2.done(); + } + } else { + if (popup) { + popup.close(); + } + t1.step(function() { + assert_unreached("Unknown message"); + }); + t1.done(); + t2.step(function() { + assert_unreached("Unknown message"); + }); + t2.done(); + t3.step(function() { + assert_unreached("Unknown message"); + }); + t3.done(); + t4.step(function() { + assert_unreached("Unknown message"); + }); + t4.done(); + } + + if (messageCount == 2) { + // Got both messages from our child; time to open our popup + popup = window.open(http_dir + "support/shared-worker-insecure-popup.html?https_dir4"); + } + } + + var ifr = document.createElement("iframe"); + ifr.src = https_dir4 + "support/https-subframe-shared.html"; + document.body.appendChild(ifr); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/dedicated-worker-script.js b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/dedicated-worker-script.js new file mode 100644 index 0000000..69ffdf3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/dedicated-worker-script.js
@@ -0,0 +1 @@ +postMessage(isSecureContext);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/https-subframe-dedicated.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/https-subframe-dedicated.html new file mode 100644 index 0000000..85005df --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/https-subframe-dedicated.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<script src="../server-locations.sub.js"></script> +<script> + var w1 = new Worker(http_dir + "support/dedicated-worker-script.js"); + w1.onmessage = function(e) { + parent.postMessage({ type: "http", error: false, + isSecureContext: e.data }, "*"); + }; + w1.onerror = function(e) { + parent.postMessage({ type: "http", error: true }, "*"); + }; + + var w2 = new Worker(https_dir + "support/dedicated-worker-script.js"); + w2.onmessage = function(e) { + parent.postMessage({ type: "https", error: false, + isSecureContext: e.data }, "*"); + }; + w2.onerror = function(e) { + parent.postMessage({ type: "https", error: true }, "*"); + } +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/https-subframe-shared.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/https-subframe-shared.html new file mode 100644 index 0000000..5ae7cde --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/https-subframe-shared.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<script> + try { + var w = new SharedWorker("shared-worker-script.js"); + w.port.onmessage = function(e) { + parent.postMessage({ type: "shared", error: false, exception: false, + isSecureContext: e.data }, "*"); + }; + w.onerror = function(e) { + parent.postMessage({ type: "shared", error: true, exception: false }, + "*"); + } + w.port.start(); + } catch (e) { + parent.postMessage({ type: "shared", exception: true }, "*"); + } + + try { + var w = new SharedWorker("parent-shared-worker-script.js"); + w.port.onmessage = function(e) { + parent.postMessage({ type: "nested", error: false, exception: false, + isSecureContext: e.data }, "*"); + }; + w.onerror = function(e) { + parent.postMessage({ type: "nested", error: true, exception: false }, + "*"); + } + w.port.start(); + } catch (e) { + parent.postMessage({ type: "nested", exception: true }, "*"); + } +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/parent-dedicated-worker-script.js b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/parent-dedicated-worker-script.js new file mode 100644 index 0000000..a844755 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/parent-dedicated-worker-script.js
@@ -0,0 +1,4 @@ +var w = new Worker("dedicated-worker-script.js"); +w.onmessage = function (e) { + postMessage(e.data); +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/parent-shared-worker-script.js b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/parent-shared-worker-script.js new file mode 100644 index 0000000..7f999f93 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/parent-shared-worker-script.js
@@ -0,0 +1,8 @@ +addEventListener("connect", function (e) { + var port = e.ports[0]; + port.start(); + var w = new Worker("dedicated-worker-script.js"); + w.onmessage = function (e) { + port.postMessage(e.data); + } +});
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/shared-worker-insecure-popup.html b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/shared-worker-insecure-popup.html new file mode 100644 index 0000000..740679d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/shared-worker-insecure-popup.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<script src="../server-locations.sub.js"></script> +<body> + <script> + var url = self[location.search.substr(1)] + "support/https-subframe-shared.html"; + onmessage = function(e) { + var data = e.data; + data.fromPopup = true; + opener.postMessage(data, "*"); + } + var ifr = document.createElement("iframe"); + ifr.src = url; + document.body.appendChild(ifr); + </script> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/shared-worker-script.js b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/shared-worker-script.js new file mode 100644 index 0000000..faed70a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/secure-contexts/support/shared-worker-script.js
@@ -0,0 +1,5 @@ +addEventListener("connect", function (e) { + var port = e.ports[0]; + port.start(); + port.postMessage(isSecureContext); +});
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/interfaces.html b/third_party/WebKit/LayoutTests/external/wpt/selection/interfaces.html index 888b23fd..8fed814 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/interfaces.html +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/interfaces.html
@@ -6,7 +6,7 @@ <script src=/resources/WebIDLParser.js></script> <script src=/resources/idlharness.js></script> <script type=text/plain> -// https://www.w3.org/TR/2016/WD-selection-api-20161206/ +// http://w3c.github.io/selection-api/#selection-interface interface Selection { readonly attribute Node? anchorNode; readonly attribute unsigned long anchorOffset;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/client-navigate.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/client-navigate.https.html index b651a20a..9492335 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/client-navigate.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/client-navigate.https.html
@@ -57,6 +57,7 @@ frame.contentWindow.location.href, new URL("resources/client-navigated-frame.html", location).toString()); + frame.remove(); }) .catch(unreached_rejection(t)) .then(___ => service_worker_unregister(t, scope)); @@ -81,7 +82,8 @@ .then(({result, url}) => { assert_equals(result, "test_client_navigate_redirect"); assert_equals(url, ""); - assert_throws(null, function() { return frame.contentWindow.location.href }); + assert_throws("SecurityError", function() { return frame.contentWindow.location.href }); + frame.remove(); }) .catch(unreached_rejection(t)) .then(___ => service_worker_unregister(t, scope)); @@ -102,16 +104,74 @@ return wait_for_message() }) .then(({id}) => clientId = id) - .then(___ => run_test(controller, clientId, "test_client_navigate_failure")) + .then(___ => run_test(controller, clientId, "test_client_navigate_cross_origin")) .then(({result, url}) => { - assert_equals(result, "test_client_navigate_failure"); + assert_equals(result, "test_client_navigate_cross_origin"); + assert_equals(url, ""); + assert_throws("SecurityError", function() { return frame.contentWindow.location.href }); + frame.remove(); + }) + .catch(unreached_rejection(t)) + .then(___ => service_worker_unregister(t, scope)); + }, "Frame location should not be accessible after cross-origin navigation"); + + promise_test(function(t) { + var worker = "resources/client-navigate-worker.js"; + var scope = "resources/client-navigate-frame.html"; + var controller, frame, clientId; + + return service_worker_unregister_and_register(t, worker, scope) + .then(reg => wait_for_state(t, reg.installing, "activated")) + .then(___ => with_iframe(scope)) + .then(f => { + frame = f; + controller = frame.contentWindow.navigator.serviceWorker.controller; + fetch_tests_from_worker(controller); + return wait_for_message() + }) + .then(({id}) => clientId = id) + .then(___ => run_test(controller, clientId, "test_client_navigate_about_blank")) + .then(({result, url}) => { + assert_equals(result, "test_client_navigate_about_blank"); assert_equals( frame.contentWindow.location.href, new URL("resources/client-navigate-frame.html", location).toString()); frame.contentWindow.document.body.style = "background-color: green" + frame.remove(); }) .catch(unreached_rejection(t)) .then(___ => service_worker_unregister(t, scope)); - }, "Frame location should not update on failed navigation"); + }, "Frame location should not update on failed about:blank navigation"); + + promise_test(function(t) { + var worker = "resources/client-navigate-worker.js"; + var scope = "resources/client-navigate-frame.html"; + var controller, frame, clientId; + + return service_worker_unregister_and_register(t, worker, scope) + .then(reg => { + return wait_for_state(t, reg.installing, "activated"); + }) + .then(___ => with_iframe(scope)) + .then(f => { + frame = f; + controller = frame.contentWindow.navigator.serviceWorker.controller; + fetch_tests_from_worker(controller); + return wait_for_message() + }) + .then(({id}) => clientId = id) + .then(___ => run_test(controller, clientId, "test_client_navigate_mixed_content")) + .then(({result, url}) => { + assert_equals(result, "test_client_navigate_mixed_content"); + assert_equals( + frame.contentWindow.location.href, + new URL("resources/client-navigate-frame.html", + location).toString()); + frame.contentWindow.document.body.style = "background-color: green" + frame.remove(); + }) + .catch(unreached_rejection(t)) + .then(___ => service_worker_unregister(t, scope)); + }, "Frame location should not update on failed mixed-content navigation"); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https-expected.txt new file mode 100644 index 0000000..915d1c35 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +FAIL Interfaces and attributes of ServiceWorkerContainer assert_true: onmessageerror should be an attribute of ServiceWorkerContainer expected true got false +PASS Interfaces and attributes of ServiceWorker +PASS Interfaces and attributes in ServiceWorkerGlobalScope +FAIL ServiceWorkerGlobalScope assert_true: onmessageerror should be an attribute of ServiceWorkerGlobalScope expected true got false +PASS Clients +PASS Client +PASS WindowClient +PASS CacheStorage +PASS Cache +PASS Event constructors +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https.html index 403a005..889142f 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces.https.html
@@ -13,7 +13,9 @@ { register: 'function', getRegistration: 'function', - oncontrollerchange: EVENT_HANDLER + oncontrollerchange: EVENT_HANDLER, + onmessage: EVENT_HANDLER, + onmessageerror: EVENT_HANDLER }); }, 'Interfaces and attributes of ServiceWorkerContainer');
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/registration-useCache.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/registration-useCache.https.html deleted file mode 100644 index 1976fa11..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/registration-useCache.https.html +++ /dev/null
@@ -1,223 +0,0 @@ -<!DOCTYPE html> -<title>Service Worker: Registration-useCache</title> -<script src="/resources/testharness.js"></script> -<script src="resources/testharness-helpers.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/test-helpers.sub.js"></script> -<script> - -function registerFirstServiceWorker(test, script, scope, useCache) { - var swr, sw; - - var setting = {scope: scope}; - if (useCache !== undefined) { - setting['useCache'] = useCache; - } - - return Promise.resolve() - .then(() => navigator.serviceWorker.register(script, setting)) - .then(registration => swr = registration) - - .then(() => wait_for_update(test, swr)) - .then(worker => sw = worker) - - .then(() => getMessageFromServiceWorker(sw, 'normal')) - .then(() => wait_for_state(test, sw, 'activated')) - .then(() => assert_true((!!swr.active && - !swr.waiting && - !swr.installing), - ('The active SW should be the only SW. ' + - '(a: ' + !!swr.active + - ',w: ' + !swr.waiting + - ',i: ' + !swr.installing + ')'))) - .then(() => swr); -} - -function getMessageFromServiceWorker(sw, httpRequestType, oldValues) { - var mainResolveFunction, importedResolveFunction; - var promises = [ - new Promise(function(resolve) {mainResolveFunction = resolve}), - new Promise(function(resolve) {importedResolveFunction = resolve}) - ]; - - var messageChannel = new MessageChannel(); - messageChannel.port1.onmessage = e => { - if (httpRequestType) { - assert_equals(e.data.type, httpRequestType, - "HTTP request type check."); - } - - var compareOldValue = (httpRequestType === 'revalidate') && oldValues; - switch(e.data.from) { - case 'main': - if (compareOldValue) { - assert_not_equals(e.data.value, oldValues[0], - 'Values shouldn\'t be the same'); - } - mainResolveFunction(e.data.value); - break; - case 'imported': - if (compareOldValue) { - assert_not_equals(e.data.value, oldValues[1], - 'Values shouldn\'t be the same'); - } - importedResolveFunction(e.data.value); - break; - } - }; - - sw.postMessage({port: messageChannel.port2}, [messageChannel.port2]); - return Promise.all(promises); -} - -function testAction(test, registration, action, shouldCreateSW) { - var testFunction = shouldCreateSW ? testActionDoesCreateSW - : testActionDoesNotCreateSW; - - return Promise.resolve() - .then(() => testFunction(registration, action, test)) - .then(() => registration); -} - -function testActionDoesCreateSW(registration, action, test) { - var oldValues; - - return Promise.resolve() - .then(() => getMessageFromServiceWorker(registration.active)) - .then(values => oldValues = values) - - .then(() => action()) - .then(() => wait_for_update(test, registration)) - .then(worker => getMessageFromServiceWorker(worker, - 'revalidate', - oldValues)); -} - -function testActionDoesNotCreateSW(registration, action) { - return Promise.resolve() - .then(() => action()) - .then(() => assert_true((!!registration.active && - !registration.waiting && - !registration.installing), - ('The active SW should still be the only SW. ' + - '(a: ' + !!registration.active + - ',w: ' + !registration.waiting + - ',i: ' + !registration.installing + ')'))); -} - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Test_with_useCache_default'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope)) - .then(r => testAction(t, r, r.update.bind(r), true)) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)); -}, 'Test with useCache: default'); - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Test_with_useCache_true'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope, true)) - .then(r => testAction(t, r, r.update.bind(r), false)) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)); -}, 'Test with useCache: true'); - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Test_with_useCache_false'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope, false)) - .then(r => testAction(t, r, r.update.bind(r), true)) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)); - }, 'Test with useCache: false'); - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Consecutive_registrations_with_useCache_settings_false_false'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope, false)) - .then(r => { - var action = navigator.serviceWorker.register.bind( - navigator.serviceWorker, script, {scope: scope, - useCache: false}); - return testAction(t, r, action, false); - }) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)) -}, "Consecutive registrations with useCache settings(false, false)"); - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Consecutive_registrations_with_useCache_settings_false_true'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope, false)) - .then(r => testAction(t, r, r.update.bind(r), true)) - .then(r => { - var action = navigator.serviceWorker.register.bind( - navigator.serviceWorker, script, {scope: scope, - useCache: true}); - return testAction(t, r, action, false); - }) - .then(r => testAction(t, r, r.update.bind(r), false)) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)) -}, "Consecutive registrations with useCache settings(false, true)"); - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Consecutive_registrations_with_useCache_settings_true_false'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope, true)) - .then(r => testAction(t, r, r.update.bind(r), false)) - .then(r => { - var action = navigator.serviceWorker.register.bind( - navigator.serviceWorker, script, {scope: scope, - useCache: false}); - return testAction(t, r, action, true); - }) - .then(r => testAction(t, r, r.update.bind(r), true)) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)); -}, "Consecutive registrations with useCache settings(true, false)"); - -promise_test(function(t) { - var script = 'resources/update-max-aged-worker.py' + - '?Test=Consecutive_registrations_with_useCache_settings_true_true'; - var scope = 'resources/blank.html'; - - return Promise.resolve() - .then(() => registerFirstServiceWorker(t, script, scope, true)) - .then(r => { - var action = navigator.serviceWorker.register.bind( - navigator.serviceWorker, script, {scope: scope, - useCache: true}); - return testAction(t, r, action, false); - }) - - // Tear down - .then(() => service_worker_unregister_and_done(t, scope)) -}, "Consecutive registrations with useCache settings(true, true)"); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/request-end-to-end.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/request-end-to-end.https.html index 32b42999..d061a6d 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/request-end-to-end.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/request-end-to-end.https.html
@@ -7,7 +7,7 @@ var t = async_test('Request: end-to-end'); t.step(function() { var url = 'resources/request-end-to-end-worker.js'; - var scope = 'resources/blank.html'; + var scope = 'resources/blank.html?request-end-to-end'; service_worker_unregister_and_register(t, url, scope) .then(onRegister)
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/client-navigate-worker.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/client-navigate-worker.js index 59866e7..09d11fe 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/client-navigate-worker.js +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/client-navigate-worker.js
@@ -40,19 +40,38 @@ }) .catch(unreached_rejection(t)); }, "Return value should be instance of WindowClient"); - } else if (test === "test_client_navigate_failure") { + } else if (test === "test_client_navigate_cross_origin") { promise_test(function(t) { + this.add_cleanup(() => port.postMessage(pass(test, clientUrl))); + var path = new URL('client-navigated-frame.html', self.location.href).pathname; + var url = get_host_info()['HTTPS_REMOTE_ORIGIN'] + path; return self.clients.get(clientId) - .then(client => assert_promise_rejects(client.navigate("http://example.com"))) + .then(client => client.navigate(url)) + .then(client => { + clientUrl = (client && client.url) || ""; + assert_equals(client, null, + 'cross-origin navigate resolves with null'); + }) .catch(unreached_rejection(t)); - }, "Navigating to different origin should reject"); - + }, "Navigating to different origin should resolve with null"); + } else if (test === "test_client_navigate_about_blank") { promise_test(function(t) { this.add_cleanup(function() { port.postMessage(pass(test, "")); }); return self.clients.get(clientId) .then(client => promise_rejects(t, new TypeError(), client.navigate("about:blank"))) .catch(unreached_rejection(t)); - }, "Navigating to about:blank should reject with TypeError") + }, "Navigating to about:blank should reject with TypeError"); + } else if (test === "test_client_navigate_mixed_content") { + promise_test(function(t) { + this.add_cleanup(function() { port.postMessage(pass(test, "")); }); + var path = new URL('client-navigated-frame.html', self.location.href).pathname; + // Insecure URL should fail since the frame is owned by a secure parent + // and navigating to http:// would create a mixed-content violation. + var url = get_host_info()['HTTP_REMOTE_ORIGIN'] + path; + return self.clients.get(clientId) + .then(client => promise_rejects(t, new TypeError(), client.navigate(url))) + .catch(unreached_rejection(t)); + }, "Navigating to mixed-content iframe should reject with TypeError"); } else if (test === "test_client_navigate_redirect") { var host_info = get_host_info(); var url = new URL(host_info['HTTPS_REMOTE_ORIGIN']).toString() +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-worker.sub.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-worker.sub.js index e5ed36fc..2ae75ba 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-worker.sub.js +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-worker.sub.js
@@ -15,7 +15,8 @@ onactivate: EVENT_HANDLER, onfetch: EVENT_HANDLER, oninstall: EVENT_HANDLER, - onmessage: EVENT_HANDLER + onmessage: EVENT_HANDLER, + onmessageerror: EVENT_HANDLER }); }, 'ServiceWorkerGlobalScope');
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py deleted file mode 100644 index e166143..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py +++ /dev/null
@@ -1,22 +0,0 @@ -import time - -def main(request, response): - headers = [('Cache-Control', 'max-age=86400'), - ('Content-Type', 'application/javascript'), - ('Last-Modified', time.strftime("%a, %d %b %Y %H:%M:%S GMT", - time.gmtime()))] - - - revalidate = request.headers.has_key('if-modified-since'); - - body = ''' - self.addEventListener('message', function(e) { - e.data.port.postMessage({ - from: "imported", - type: "%s", - value: %s - }); - }); - ''' % ('revalidate' if revalidate else 'normal', time.time()) - - return headers, body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/update-max-aged-worker.py b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/update-max-aged-worker.py deleted file mode 100644 index 6eb7c34..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/update-max-aged-worker.py +++ /dev/null
@@ -1,26 +0,0 @@ -import time - -def main(request, response): - headers = [('Content-Type', 'application/javascript'), - ('Cache-Control', 'max-age=86400'), - ('Last-Modified', time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()))] - - test = ''; - if 'Test' in request.GET: - test = request.GET['Test']; - - revalidate = request.headers.has_key('if-modified-since'); - - body = ''' - importScripts('update-max-aged-worker-imported-script.py?Test=%s'); - - self.addEventListener('message', function(e) { - e.data.port.postMessage({ - from: "main", - type: "%s", - value: %s - }); - }); - ''' % (test, 'revalidate' if revalidate else 'normal', time.time()) - - return headers, body
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-installed.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-installed.https.html index 42e4000..795386f8 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-installed.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-installed.https.html
@@ -7,7 +7,7 @@ <script> promise_test(function(t) { - var scope = 'resources/blank.html'; + var scope = 'resources/blank.html?skip-waiting-installed'; var url1 = 'resources/empty.js'; var url2 = 'resources/skip-waiting-installed-worker.js'; var frame, frame_sw, service_worker, registration, onmessage, oncontrollerchanged;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-using-registration.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-using-registration.https.html index 5f84f0b..68deae7 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-using-registration.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-using-registration.https.html
@@ -7,7 +7,7 @@ <script> promise_test(function(t) { - var scope = 'resources/blank.html'; + var scope = 'resources/blank.html?skip-waiting-using-registration'; var url1 = 'resources/empty.js'; var url2 = 'resources/skip-waiting-worker.js'; var frame, frame_sw, sw_registration, oncontrollerchanged;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-without-using-registration.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-without-using-registration.https.html index 2535ffe0..5ae9cdb5 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-without-using-registration.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting-without-using-registration.https.html
@@ -7,7 +7,7 @@ <script> promise_test(function(t) { - var scope = 'resources/blank.html'; + var scope = 'resources/blank.html?skip-waiting-without-using-registration'; var url = 'resources/skip-waiting-worker.js'; var frame, frame_sw, sw_registration;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting.https.html index 7c1c41f..ac6c322 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/skip-waiting.https.html
@@ -7,7 +7,7 @@ <script> promise_test(function(t) { - var scope = 'resources/blank.html'; + var scope = 'resources/blank.html?skip-waiting'; var url1 = 'resources/empty.js'; var url2 = 'resources/empty-worker.js'; var url3 = 'resources/skip-waiting-worker.js';
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/websocket.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/websocket.https-expected.txt deleted file mode 100644 index ef3218e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/websocket.https-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Verify WebSocket handshake channel does not get intercepted assert_unreached: unexpected rejection: [object Event] Reached unreachable code -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/shadow-dom/slots-fallback-in-document.html b/third_party/WebKit/LayoutTests/external/wpt/shadow-dom/slots-fallback-in-document.html index 4250fb0..91acc5d5 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/shadow-dom/slots-fallback-in-document.html +++ b/third_party/WebKit/LayoutTests/external/wpt/shadow-dom/slots-fallback-in-document.html
@@ -23,7 +23,7 @@ test(() => { assert_array_equals(n1.innerSlot.assignedNodes(), [n1.slot]); assert_array_equals(n1.innerSlot.assignedNodes({ flatten: true }), - [n1.fallback]); + [n1.fallback]); }, 'Slot fallback content in document tree should be counted in flattened ' + 'assigned nodes.'); </script> @@ -32,10 +32,10 @@ <div id="host"> <template data-mode="open"> <div id="innerHost"> - <template data-mode="open"> - <slot id="innerSlot"></slot> - </template> - <slot id="slot"><div id="fallback">This is fallback content</div></slot> + <template data-mode="open"> + <slot id="innerSlot"></slot> + </template> + <slot id="slot"><div id="fallback">This is fallback content</div></slot> </div> </template> </div> @@ -50,7 +50,7 @@ test(() => { assert_array_equals(n2.innerSlot.assignedNodes(), [n2.slot]); assert_array_equals(n2.innerSlot.assignedNodes({ flatten: true }), - [n2.fallback]); + [n2.fallback]); }, 'Slot fallback content in shadow tree should be counted in flattened ' + 'assigned nodes.'); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/storage/persist-permission-manual.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/storage/persist-permission-manual.https-expected.txt new file mode 100644 index 0000000..3a7b644 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/storage/persist-permission-manual.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Expect permission state is granted after calling persist() assert_true: expected true got false +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/storage/persist-permission-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/storage/persist-permission-manual.https.html new file mode 100644 index 0000000..aa49900 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/storage/persist-permission-manual.https.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>StorageManager: permission state is granted</title> + <p>Clear all persistent storage permissions before running this test.</p> + <p>Test passes if there is a permission prompt and click allow store persistent data</p> + <meta name="help" href="https://storage.spec.whatwg.org/#dom-storagemanager-persist"> + <meta name="author" title="Mozilla" href="https://www.mozilla.org"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <script> + promise_test(function(t) { + return navigator.storage.persist() + .then(function(result) { + assert_true(result); + return navigator.storage.persisted(); + }) + .then(function(result) { + assert_true(result); + }) + }, 'Expect permission state is granted after calling persist()'); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/storage/persisted-worker.https.html b/third_party/WebKit/LayoutTests/external/wpt/storage/persisted-worker.https.html new file mode 100644 index 0000000..21f5c8bd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/storage/persisted-worker.https.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>StorageManager: persisted() from worker</title> + <meta name="help" href="https://storage.spec.whatwg.org/#dom-storagemanager-persisted"> + <meta name="author" title="Mozilla" href="https://www.mozilla.org"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <script> + fetch_tests_from_worker(new Worker("storage-persisted.js")); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/storage/persisted.https.html b/third_party/WebKit/LayoutTests/external/wpt/storage/persisted.https.html new file mode 100644 index 0000000..a5a91ff --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/storage/persisted.https.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>StorageManager: persisted()</title> + <meta name="help" href="https://storage.spec.whatwg.org/#dom-storagemanager-persisted"> + <meta name="author" title="Mozilla" href="https://www.mozilla.org"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <script src="storage-persisted.js"></script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/storage/storage-persisted.js b/third_party/WebKit/LayoutTests/external/wpt/storage/storage-persisted.js new file mode 100644 index 0000000..5bc86fe --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/storage/storage-persisted.js
@@ -0,0 +1,18 @@ +if (this.document === undefined) { + importScripts("/resources/testharness.js"); +} + +test(function(t) { + assert_true('persisted' in navigator.storage); + assert_equals(typeof navigator.storage.persisted, 'function'); + assert_true(navigator.storage.persisted() instanceof Promise); +}, 'persisted() method exists and returns a Promise'); + +promise_test(function(t) { + return navigator.storage.persisted().then(function(result) { + assert_equals(typeof result, 'boolean'); + assert_equals(result, false); + }); +}, 'persisted() returns a promise and resolves as boolean with false'); + +done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt index 0bcca377..d88ae17b 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 6082 tests; 5729 PASS, 353 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 6072 tests; 5729 PASS, 343 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Document interface: attribute rootElement PASS SVGElement interface: existence and properties of interface object PASS SVGElement interface object length @@ -3496,16 +3496,6 @@ PASS SVGElement interface: script must inherit property "ontoggle" with the proper type (67) PASS SVGElement interface: script must inherit property "onvolumechange" with the proper type (68) PASS SVGElement interface: script must inherit property "onwaiting" with the proper type (69) -FAIL SVGZoomEvent interface: existence and properties of interface object assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface object length assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface object name assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: attribute zoomRectScreen assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: attribute previousScale assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: attribute previousTranslate assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: attribute newScale assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing -FAIL SVGZoomEvent interface: attribute newTranslate assert_own_property: self does not have own property "SVGZoomEvent" expected property "SVGZoomEvent" missing PASS SVGAElement interface: existence and properties of interface object PASS SVGAElement interface object length PASS SVGAElement interface object name
diff --git a/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces.html b/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces.html index 98346c4a..36132e2d 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces.html +++ b/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces.html
@@ -984,14 +984,6 @@ SVGScriptElement implements SVGURIReference; -interface SVGZoomEvent : UIEvent { - [SameObject] readonly attribute DOMRectReadOnly zoomRectScreen; - readonly attribute float previousScale; - [SameObject] readonly attribute DOMPointReadOnly previousTranslate; - readonly attribute float newScale; - [SameObject] readonly attribute DOMPointReadOnly newTranslate; -}; - interface SVGAElement : SVGGraphicsElement { [SameObject] readonly attribute SVGAnimatedString target; };
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/README.md b/third_party/WebKit/LayoutTests/external/wpt/url/README.md new file mode 100644 index 0000000..4cb3c00 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/README.md
@@ -0,0 +1,23 @@ +These tests are for browsers, but the data for +`a-element.html`, `url-constructor.html`, and `a-element-xhtml.xhtml` +is in `urltestdata.json` and can be re-used by non-browser implementations. +This file contains a JSON array of comments as strings and test cases as objects. +The keys for each test case are: + +* `base`: an absolute URL as a string whose [parsing] without a base of its own should succeed. + This key is always present, + and may have a value like `"about:blank"` when `input` is an absolute URL. +* `input`: an URL as a string to be [parsed][parsing] with `base` as its base URL. +* Either: + * `failure` with the value `true`, indicating that parsing `input` should return failure, + * or `href`, `origin`, `protocol`, `username`, `password`, `host`, `hostname`, `port`, + `pathname`, `search`, and `hash` with string values; + indicating that parsing `input` should return an URL record + and that the getters of each corresponding attribute in that URL’s [API] + should return the corresponding value. + + The `origin` key may be missing. + In that case, the API’s `origin` attribute is not tested. + +[parsing]: https://url.spec.whatwg.org/#concept-basic-url-parser +[API]: https://url.spec.whatwg.org/#api
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin-xhtml.xhtml b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin-xhtml.xhtml new file mode 100644 index 0000000..3d0d72e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin-xhtml.xhtml
@@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>URL Test</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <base id="base"/> + </head> + <body> + <div id="log"></div> + <script src="a-element-origin.js"></script> + </body> +</html> +<!-- Other dependencies: urltestdata.json -->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin.html b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin.html new file mode 100644 index 0000000..28ef696 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin.html
@@ -0,0 +1,8 @@ +<!doctype html> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<base id=base> +<div id=log></div> +<script src=a-element-origin.js></script> +<!-- Other dependencies: urltestdata.json -->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin.js b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin.js new file mode 100644 index 0000000..a1202db5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-origin.js
@@ -0,0 +1,35 @@ +var setup = async_test("Loading data…") +setup.step(function() { + var request = new XMLHttpRequest() + request.open("GET", "urltestdata.json") + request.send() + request.responseType = "json" + request.onload = setup.step_func(function() { + runURLTests(request.response) + setup.done() + }) +}) + +function setBase(base) { + document.getElementById("base").href = base +} + +function bURL(url, base) { + base = base || "about:blank" + setBase(base) + var a = document.createElement("a") + a.setAttribute("href", url) + return a +} + +function runURLTests(urltests) { + for(var i = 0, l = urltests.length; i < l; i++) { + var expected = urltests[i] + if (typeof expected === "string" || !("origin" in expected)) continue + + test(function() { + var url = bURL(expected.input, expected.base) + assert_equals(url.origin, expected.origin, "origin") + }, "Parsing origin: <" + expected.input + "> against <" + expected.base + ">") + } +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/a-element-xhtml.xhtml b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-xhtml.xhtml new file mode 100644 index 0000000..fda4c360 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/a-element-xhtml.xhtml
@@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>URL Test</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <base id="base"/> + </head> + <body> + <div id="log"></div> + <script src="a-element.js"></script> + </body> +</html> +<!-- Other dependencies: urltestdata.json -->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/a-element.html b/third_party/WebKit/LayoutTests/external/wpt/url/a-element.html new file mode 100644 index 0000000..1b7e2fdd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/a-element.html
@@ -0,0 +1,8 @@ +<!doctype html> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<base id=base> +<div id=log></div> +<script src=a-element.js></script> +<!-- Other dependencies: urltestdata.json -->
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/a-element.js b/third_party/WebKit/LayoutTests/external/wpt/url/a-element.js new file mode 100644 index 0000000..a3d78139 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/a-element.js
@@ -0,0 +1,52 @@ +var setup = async_test("Loading data…") +setup.step(function() { + var request = new XMLHttpRequest() + request.open("GET", "urltestdata.json") + request.send() + request.responseType = "json" + request.onload = setup.step_func(function() { + runURLTests(request.response) + setup.done() + }) +}) + +function setBase(base) { + document.getElementById("base").href = base +} + +function bURL(url, base) { + base = base || "about:blank" + setBase(base) + var a = document.createElement("a") + a.setAttribute("href", url) + return a +} + +function runURLTests(urltests) { + for(var i = 0, l = urltests.length; i < l; i++) { + var expected = urltests[i] + if (typeof expected === "string") continue // skip comments + + test(function() { + var url = bURL(expected.input, expected.base) + if(expected.failure) { + if(url.protocol !== ':') { + assert_unreached("Expected URL to fail parsing") + } + assert_equals(url.href, expected.input, "failure should set href to input") + return + } + + assert_equals(url.href, expected.href, "href") + assert_equals(url.protocol, expected.protocol, "protocol") + assert_equals(url.username, expected.username, "username") + assert_equals(url.password, expected.password, "password") + assert_equals(url.host, expected.host, "host") + assert_equals(url.hostname, expected.hostname, "hostname") + assert_equals(url.port, expected.port, "port") + assert_equals(url.pathname, expected.pathname, "pathname") + assert_equals(url.search, expected.search, "search") + assert_equals(url.hash, expected.hash, "hash") + }, "Parsing: <" + expected.input + "> against <" + expected.base + ">") + } +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/failure.html b/third_party/WebKit/LayoutTests/external/wpt/url/failure.html new file mode 100644 index 0000000..d097d4e3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/failure.html
@@ -0,0 +1,42 @@ +<!doctype html> +<meta charset=utf-8> +<title>Test URL parser failure consistency</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<iframe></iframe> +<script> +promise_test(() => fetch("urltestdata.json").then(res => res.json()).then(runTests), "Loading data…") + +function runTests(testData) { + for(const test of testData) { + if (typeof test === "string" || !test.failure || test.base !== "about:blank") { + continue + } + + const name = test.input + " should throw" + + self.test(() => { // new URL itself is already tested by url-constructor.html + const url = new URL("about:blank") + assert_throws(new TypeError, () => url.href = test.input) + }, "URL's href: " + name) + + self.test(() => { + const client = new XMLHttpRequest() + assert_throws("SyntaxError", () => client.open("GET", test.input)) + }, "XHR: " + name) + + self.test(() => { + assert_throws(new TypeError, () => self.navigator.sendBeacon(test.input)) + }, "sendBeacon(): " + name) + + self.test(() => { + assert_throws(new TypeError, () => self[0].location = test.input) + }, "Location's href: " + name) + + self.test(() => { + assert_throws("SyntaxError", () => self.open(test.input).close()) + }, "window.open(): " + name) + } +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/historical.any.js b/third_party/WebKit/LayoutTests/external/wpt/url/historical.any.js new file mode 100644 index 0000000..c3797ad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/historical.any.js
@@ -0,0 +1,29 @@ +test(function() { + assert_false("searchParams" in self.location, + "location object should not have a searchParams attribute"); +}, "searchParams on location object"); + +if(self.GLOBAL.isWindow()) { + test(() => { + assert_false("searchParams" in document.createElement("a")) + assert_false("searchParams" in document.createElement("area")) + }, "<a> and <area>.searchParams should be undefined"); +} + +test(function() { + var url = new URL("./foo", "http://www.example.org"); + assert_equals(url.href, "http://www.example.org/foo"); + assert_throws(new TypeError(), function() { + url.href = "./bar"; + }); +}, "Setting URL's href attribute and base URLs"); + +test(function() { + assert_equals(URL.domainToASCII, undefined); +}, "URL.domainToASCII should be undefined"); + +test(function() { + assert_equals(URL.domainToUnicode, undefined); +}, "URL.domainToUnicode should be undefined"); + +done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces-expected.txt new file mode 100644 index 0000000..6845f54 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces-expected.txt
@@ -0,0 +1,56 @@ +This is a testharness.js-based test. +Found 52 tests; 48 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS URL interface: existence and properties of interface object +PASS URL interface object length +PASS URL interface object name +PASS URL interface: existence and properties of interface prototype object +PASS URL interface: existence and properties of interface prototype object's "constructor" property +PASS URL interface: attribute href +PASS URL interface: stringifier +PASS URL interface: attribute origin +PASS URL interface: attribute protocol +PASS URL interface: attribute username +PASS URL interface: attribute password +PASS URL interface: attribute host +PASS URL interface: attribute hostname +PASS URL interface: attribute port +PASS URL interface: attribute pathname +PASS URL interface: attribute search +PASS URL interface: attribute searchParams +PASS URL interface: attribute hash +FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing +PASS URL must be primary interface of new URL("http://foo") +PASS Stringification of new URL("http://foo") +PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type (0) +PASS URL interface: new URL("http://foo") must inherit property "origin" with the proper type (1) +PASS URL interface: new URL("http://foo") must inherit property "protocol" with the proper type (2) +PASS URL interface: new URL("http://foo") must inherit property "username" with the proper type (3) +PASS URL interface: new URL("http://foo") must inherit property "password" with the proper type (4) +PASS URL interface: new URL("http://foo") must inherit property "host" with the proper type (5) +PASS URL interface: new URL("http://foo") must inherit property "hostname" with the proper type (6) +PASS URL interface: new URL("http://foo") must inherit property "port" with the proper type (7) +PASS URL interface: new URL("http://foo") must inherit property "pathname" with the proper type (8) +PASS URL interface: new URL("http://foo") must inherit property "search" with the proper type (9) +PASS URL interface: new URL("http://foo") must inherit property "searchParams" with the proper type (10) +PASS URL interface: new URL("http://foo") must inherit property "hash" with the proper type (11) +FAIL URL interface: new URL("http://foo") must inherit property "toJSON" with the proper type (12) assert_inherits: property "toJSON" not found in prototype chain +PASS URLSearchParams interface: existence and properties of interface object +PASS URLSearchParams interface object length +PASS URLSearchParams interface object name +PASS URLSearchParams interface: existence and properties of interface prototype object +PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property +PASS URLSearchParams interface: operation append(USVString,USVString) +PASS URLSearchParams interface: operation delete(USVString) +PASS URLSearchParams interface: operation get(USVString) +PASS URLSearchParams interface: operation getAll(USVString) +PASS URLSearchParams interface: operation has(USVString) +PASS URLSearchParams interface: operation set(USVString,USVString) +FAIL Testing Symbol.iterator property of iterable interface URLSearchParams assert_equals: @@iterator function does not have the right name expected "entries" but got "" +FAIL Testing pair iterable interface URLSearchParams assert_equals: entries method is not the same as @@iterator expected function "function entries() { [native code] }" but got function "function () { [native code] }" +PASS URLSearchParams interface: stringifier +PASS URLSearchParams interface: operation entries() +PASS URLSearchParams interface: operation keys() +PASS URLSearchParams interface: operation values() +PASS URLSearchParams interface: operation forEach(function,any) +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.html b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.html new file mode 100644 index 0000000..0daf3f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.html
@@ -0,0 +1,64 @@ +<!doctype html> +<title>URL IDL tests</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/WebIDLParser.js></script> +<script src=/resources/idlharness.js></script> + +<h1>URL IDL tests</h1> +<div id=log></div> + +<script type=text/plain> +[Constructor(USVString url, optional USVString base), + Exposed=(Window,Worker)] +interface URL { + stringifier attribute USVString href; + readonly attribute USVString origin; + attribute USVString protocol; + attribute USVString username; + attribute USVString password; + attribute USVString host; + attribute USVString hostname; + attribute USVString port; + attribute USVString pathname; + attribute USVString search; + readonly attribute URLSearchParams searchParams; + attribute USVString hash; + + USVString toJSON(); +}; + +[Constructor(optional (USVString or URLSearchParams) init = ""), + Exposed=(Window,Worker)] +interface URLSearchParams { + void append(USVString name, USVString value); + void delete(USVString name); + USVString? get(USVString name); + sequence<USVString> getAll(USVString name); + boolean has(USVString name); + void set(USVString name, USVString value); + iterable<USVString, USVString>; + stringifier; +}; +</script> +<script> +"use strict"; +var idlArray; +setup(function() { + idlArray = new IdlArray(); + [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) { + if (node.className == "untested") { + idlArray.add_untested_idls(node.textContent); + } else { + idlArray.add_idls(node.textContent); + } + }); +}, {explicit_done:true}); +window.onload = function() { + idlArray.add_objects({ + URL: ['new URL("http://foo")'] + }); + idlArray.test(); + done(); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/setters_tests.json b/third_party/WebKit/LayoutTests/external/wpt/url/setters_tests.json new file mode 100644 index 0000000..fa40dda --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/setters_tests.json
@@ -0,0 +1,1805 @@ +{ + "comment": [ + "## Tests for setters of https://url.spec.whatwg.org/#urlutils-members", + "", + "This file contains a JSON object.", + "Other than 'comment', each key is an attribute of the `URL` interface", + "defined in WHATWG’s URL Standard.", + "The values are arrays of test case objects for that attribute.", + "", + "To run a test case for the attribute `attr`:", + "", + "* Create a new `URL` object with the value for the 'href' key", + " the constructor single parameter. (Without a base URL.)", + " This must not throw.", + "* Set the attribute `attr` to (invoke its setter with)", + " with the value of for 'new_value' key.", + "* The value for the 'expected' key is another object.", + " For each `key` / `value` pair of that object,", + " get the attribute `key` (invoke its getter).", + " The returned string must be equal to `value`.", + "", + "Note: the 'href' setter is already covered by urltestdata.json." + ], + "protocol": [ + { + "comment": "The empty string is not a valid scheme. Setter leaves the URL unchanged.", + "href": "a://example.net", + "new_value": "", + "expected": { + "href": "a://example.net", + "protocol": "a:" + } + }, + { + "href": "a://example.net", + "new_value": "b", + "expected": { + "href": "b://example.net", + "protocol": "b:" + } + }, + { + "href": "javascript:alert(1)", + "new_value": "defuse", + "expected": { + "href": "defuse:alert(1)", + "protocol": "defuse:" + } + }, + { + "comment": "Upper-case ASCII is lower-cased", + "href": "a://example.net", + "new_value": "B", + "expected": { + "href": "b://example.net", + "protocol": "b:" + } + }, + { + "comment": "Non-ASCII is rejected", + "href": "a://example.net", + "new_value": "é", + "expected": { + "href": "a://example.net", + "protocol": "a:" + } + }, + { + "comment": "No leading digit", + "href": "a://example.net", + "new_value": "0b", + "expected": { + "href": "a://example.net", + "protocol": "a:" + } + }, + { + "comment": "No leading punctuation", + "href": "a://example.net", + "new_value": "+b", + "expected": { + "href": "a://example.net", + "protocol": "a:" + } + }, + { + "href": "a://example.net", + "new_value": "bC0+-.", + "expected": { + "href": "bc0+-.://example.net", + "protocol": "bc0+-.:" + } + }, + { + "comment": "Only some punctuation is acceptable", + "href": "a://example.net", + "new_value": "b,c", + "expected": { + "href": "a://example.net", + "protocol": "a:" + } + }, + { + "comment": "Non-ASCII is rejected", + "href": "a://example.net", + "new_value": "bé", + "expected": { + "href": "a://example.net", + "protocol": "a:" + } + }, + { + "comment": "Can’t switch from URL containing username/password/port to file", + "href": "http://test@example.net", + "new_value": "file", + "expected": { + "href": "http://test@example.net/", + "protocol": "http:" + } + }, + { + "href": "gopher://example.net:1234", + "new_value": "file", + "expected": { + "href": "gopher://example.net:1234/", + "protocol": "gopher:" + } + }, + { + "href": "wss://x:x@example.net:1234", + "new_value": "file", + "expected": { + "href": "wss://x:x@example.net:1234/", + "protocol": "wss:" + } + }, + { + "comment": "Can’t switch from file URL with no host", + "href": "file://localhost/", + "new_value": "http", + "expected": { + "href": "file:///", + "protocol": "file:" + } + }, + { + "href": "file:///test", + "new_value": "gopher", + "expected": { + "href": "file:///test", + "protocol": "file:" + } + }, + { + "href": "file:", + "new_value": "wss", + "expected": { + "href": "file:///", + "protocol": "file:" + } + }, + { + "comment": "Can’t switch from special scheme to non-special", + "href": "http://example.net", + "new_value": "b", + "expected": { + "href": "http://example.net/", + "protocol": "http:" + } + }, + { + "href": "file://hi/path", + "new_value": "s", + "expected": { + "href": "file://hi/path", + "protocol": "file:" + } + }, + { + "href": "https://example.net", + "new_value": "s", + "expected": { + "href": "https://example.net/", + "protocol": "https:" + } + }, + { + "href": "ftp://example.net", + "new_value": "test", + "expected": { + "href": "ftp://example.net/", + "protocol": "ftp:" + } + }, + { + "comment": "Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.", + "href": "mailto:me@example.net", + "new_value": "http", + "expected": { + "href": "mailto:me@example.net", + "protocol": "mailto:" + } + }, + { + "comment": "Can’t switch from non-special scheme to special", + "href": "ssh://me@example.net", + "new_value": "http", + "expected": { + "href": "ssh://me@example.net", + "protocol": "ssh:" + } + }, + { + "href": "ssh://me@example.net", + "new_value": "gopher", + "expected": { + "href": "ssh://me@example.net", + "protocol": "ssh:" + } + }, + { + "href": "ssh://me@example.net", + "new_value": "file", + "expected": { + "href": "ssh://me@example.net", + "protocol": "ssh:" + } + }, + { + "href": "ssh://example.net", + "new_value": "file", + "expected": { + "href": "ssh://example.net", + "protocol": "ssh:" + } + }, + { + "href": "nonsense:///test", + "new_value": "https", + "expected": { + "href": "nonsense:///test", + "protocol": "nonsense:" + } + }, + { + "comment": "Stuff after the first ':' is ignored", + "href": "http://example.net", + "new_value": "https:foo : bar", + "expected": { + "href": "https://example.net/", + "protocol": "https:" + } + }, + { + "comment": "Stuff after the first ':' is ignored", + "href": "data:text/html,<p>Test", + "new_value": "view-source+data:foo : bar", + "expected": { + "href": "view-source+data:text/html,<p>Test", + "protocol": "view-source+data:" + } + } + ], + "username": [ + { + "comment": "No host means no username", + "href": "file:///home/you/index.html", + "new_value": "me", + "expected": { + "href": "file:///home/you/index.html", + "username": "" + } + }, + { + "comment": "No host means no username", + "href": "unix:/run/foo.socket", + "new_value": "me", + "expected": { + "href": "unix:/run/foo.socket", + "username": "" + } + }, + { + "comment": "Cannot-be-a-base means no username", + "href": "mailto:you@example.net", + "new_value": "me", + "expected": { + "href": "mailto:you@example.net", + "username": "" + } + }, + { + "href": "javascript:alert(1)", + "new_value": "wario", + "expected": { + "href": "javascript:alert(1)", + "username": "" + } + }, + { + "href": "http://example.net", + "new_value": "me", + "expected": { + "href": "http://me@example.net/", + "username": "me" + } + }, + { + "href": "http://:secret@example.net", + "new_value": "me", + "expected": { + "href": "http://me:secret@example.net/", + "username": "me" + } + }, + { + "href": "http://me@example.net", + "new_value": "", + "expected": { + "href": "http://example.net/", + "username": "" + } + }, + { + "href": "http://me:secret@example.net", + "new_value": "", + "expected": { + "href": "http://:secret@example.net/", + "username": "" + } + }, + { + "comment": "UTF-8 percent encoding with the userinfo encode set.", + "href": "http://example.net", + "new_value": "\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\u007f\u0080\u0081Éé", + "expected": { + "href": "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/", + "username": "%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9" + } + }, + { + "comment": "Bytes already percent-encoded are left as-is.", + "href": "http://example.net", + "new_value": "%c3%89té", + "expected": { + "href": "http://%c3%89t%C3%A9@example.net/", + "username": "%c3%89t%C3%A9" + } + }, + { + "href": "sc:///", + "new_value": "x", + "expected": { + "href": "sc:///", + "username": "" + } + }, + { + "href": "javascript://x/", + "new_value": "wario", + "expected": { + "href": "javascript://wario@x/", + "username": "wario" + } + }, + { + "href": "file://test/", + "new_value": "test", + "expected": { + "href": "file://test/", + "username": "" + } + } + ], + "password": [ + { + "comment": "No host means no password", + "href": "file:///home/me/index.html", + "new_value": "secret", + "expected": { + "href": "file:///home/me/index.html", + "password": "" + } + }, + { + "comment": "No host means no password", + "href": "unix:/run/foo.socket", + "new_value": "secret", + "expected": { + "href": "unix:/run/foo.socket", + "password": "" + } + }, + { + "comment": "Cannot-be-a-base means no password", + "href": "mailto:me@example.net", + "new_value": "secret", + "expected": { + "href": "mailto:me@example.net", + "password": "" + } + }, + { + "href": "http://example.net", + "new_value": "secret", + "expected": { + "href": "http://:secret@example.net/", + "password": "secret" + } + }, + { + "href": "http://me@example.net", + "new_value": "secret", + "expected": { + "href": "http://me:secret@example.net/", + "password": "secret" + } + }, + { + "href": "http://:secret@example.net", + "new_value": "", + "expected": { + "href": "http://example.net/", + "password": "" + } + }, + { + "href": "http://me:secret@example.net", + "new_value": "", + "expected": { + "href": "http://me@example.net/", + "password": "" + } + }, + { + "comment": "UTF-8 percent encoding with the userinfo encode set.", + "href": "http://example.net", + "new_value": "\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\u007f\u0080\u0081Éé", + "expected": { + "href": "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/", + "password": "%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9" + } + }, + { + "comment": "Bytes already percent-encoded are left as-is.", + "href": "http://example.net", + "new_value": "%c3%89té", + "expected": { + "href": "http://:%c3%89t%C3%A9@example.net/", + "password": "%c3%89t%C3%A9" + } + }, + { + "href": "sc:///", + "new_value": "x", + "expected": { + "href": "sc:///", + "password": "" + } + }, + { + "href": "javascript://x/", + "new_value": "bowser", + "expected": { + "href": "javascript://:bowser@x/", + "password": "bowser" + } + }, + { + "href": "file://test/", + "new_value": "test", + "expected": { + "href": "file://test/", + "password": "" + } + } + ], + "host": [ + { + "comment": "Non-special scheme", + "href": "sc://x/", + "new_value": "\u0000", + "expected": { + "href": "sc://x/", + "host": "x", + "hostname": "x" + } + }, + { + "href": "sc://x/", + "new_value": "\u0009", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "\u000A", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "\u000D", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": " ", + "expected": { + "href": "sc://x/", + "host": "x", + "hostname": "x" + } + }, + { + "href": "sc://x/", + "new_value": "#", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "/", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "?", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "@", + "expected": { + "href": "sc://x/", + "host": "x", + "hostname": "x" + } + }, + { + "href": "sc://x/", + "new_value": "ß", + "expected": { + "href": "sc://%C3%9F/", + "host": "%C3%9F", + "hostname": "%C3%9F" + } + }, + { + "comment": "IDNA Nontransitional_Processing", + "href": "https://x/", + "new_value": "ß", + "expected": { + "href": "https://xn--zca/", + "host": "xn--zca", + "hostname": "xn--zca" + } + }, + { + "comment": "Cannot-be-a-base means no host", + "href": "mailto:me@example.net", + "new_value": "example.com", + "expected": { + "href": "mailto:me@example.net", + "host": "" + } + }, + { + "comment": "Cannot-be-a-base means no password", + "href": "data:text/plain,Stuff", + "new_value": "example.net", + "expected": { + "href": "data:text/plain,Stuff", + "host": "" + } + }, + { + "href": "http://example.net", + "new_value": "example.com:8080", + "expected": { + "href": "http://example.com:8080/", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Port number is unchanged if not specified in the new value", + "href": "http://example.net:8080", + "new_value": "example.com", + "expected": { + "href": "http://example.com:8080/", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Port number is unchanged if not specified", + "href": "http://example.net:8080", + "new_value": "example.com:", + "expected": { + "href": "http://example.com:8080/", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "The empty host is not valid for special schemes", + "href": "http://example.net", + "new_value": "", + "expected": { + "href": "http://example.net/", + "host": "example.net" + } + }, + { + "comment": "The empty host is OK for non-special schemes", + "href": "view-source+http://example.net/foo", + "new_value": "", + "expected": { + "href": "view-source+http:///foo", + "host": "" + } + }, + { + "comment": "Path-only URLs can gain a host", + "href": "a:/foo", + "new_value": "example.net", + "expected": { + "href": "a://example.net/foo", + "host": "example.net" + } + }, + { + "comment": "IPv4 address syntax is normalized", + "href": "http://example.net", + "new_value": "0x7F000001:8080", + "expected": { + "href": "http://127.0.0.1:8080/", + "host": "127.0.0.1:8080", + "hostname": "127.0.0.1", + "port": "8080" + } + }, + { + "comment": "IPv6 address syntax is normalized", + "href": "http://example.net", + "new_value": "[::0:01]:2", + "expected": { + "href": "http://[::1]:2/", + "host": "[::1]:2", + "hostname": "[::1]", + "port": "2" + } + }, + { + "comment": "Default port number is removed", + "href": "http://example.net", + "new_value": "example.com:80", + "expected": { + "href": "http://example.com/", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Default port number is removed", + "href": "https://example.net", + "new_value": "example.com:443", + "expected": { + "href": "https://example.com/", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Default port number is only removed for the relevant scheme", + "href": "https://example.net", + "new_value": "example.com:80", + "expected": { + "href": "https://example.com:80/", + "host": "example.com:80", + "hostname": "example.com", + "port": "80" + } + }, + { + "comment": "Stuff after a / delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com/stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a / delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com:8080/stuff", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Stuff after a ? delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com?stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a ? delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com:8080?stuff", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Stuff after a # delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com#stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a # delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com:8080#stuff", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Stuff after a \\ delimiter is ignored for special schemes", + "href": "http://example.net/path", + "new_value": "example.com\\stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a \\ delimiter is ignored for special schemes", + "href": "http://example.net/path", + "new_value": "example.com:8080\\stuff", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "\\ is not a delimiter for non-special schemes, but still forbidden in hosts", + "href": "view-source+http://example.net/path", + "new_value": "example.com\\stuff", + "expected": { + "href": "view-source+http://example.net/path", + "host": "example.net", + "hostname": "example.net", + "port": "" + } + }, + { + "comment": "Anything other than ASCII digit stops the port parser in a setter but is not an error", + "href": "view-source+http://example.net/path", + "new_value": "example.com:8080stuff2", + "expected": { + "href": "view-source+http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Anything other than ASCII digit stops the port parser in a setter but is not an error", + "href": "http://example.net/path", + "new_value": "example.com:8080stuff2", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Anything other than ASCII digit stops the port parser in a setter but is not an error", + "href": "http://example.net/path", + "new_value": "example.com:8080+2", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Port numbers are 16 bit integers", + "href": "http://example.net/path", + "new_value": "example.com:65535", + "expected": { + "href": "http://example.com:65535/path", + "host": "example.com:65535", + "hostname": "example.com", + "port": "65535" + } + }, + { + "comment": "Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.", + "href": "http://example.net/path", + "new_value": "example.com:65536", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Broken IPv6", + "href": "http://example.net/", + "new_value": "[google.com]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.2.3.4x]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.2.3.]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.2.]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "file://y/", + "new_value": "x:123", + "expected": { + "href": "file://y/", + "host": "y", + "hostname": "y", + "port": "" + } + }, + { + "href": "file://y/", + "new_value": "loc%41lhost", + "expected": { + "href": "file:///", + "host": "", + "hostname": "", + "port": "" + } + }, + { + "href": "file://hi/x", + "new_value": "", + "expected": { + "href": "file:///x", + "host": "", + "hostname": "", + "port": "" + } + }, + { + "href": "sc://test@test/", + "new_value": "", + "expected": { + "href": "sc://test@test/", + "host": "test", + "hostname": "test", + "username": "test" + } + }, + { + "href": "sc://test:12/", + "new_value": "", + "expected": { + "href": "sc://test:12/", + "host": "test:12", + "hostname": "test", + "port": "12" + } + } + ], + "hostname": [ + { + "comment": "Non-special scheme", + "href": "sc://x/", + "new_value": "\u0000", + "expected": { + "href": "sc://x/", + "host": "x", + "hostname": "x" + } + }, + { + "href": "sc://x/", + "new_value": "\u0009", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "\u000A", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "\u000D", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": " ", + "expected": { + "href": "sc://x/", + "host": "x", + "hostname": "x" + } + }, + { + "href": "sc://x/", + "new_value": "#", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "/", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "?", + "expected": { + "href": "sc:///", + "host": "", + "hostname": "" + } + }, + { + "href": "sc://x/", + "new_value": "@", + "expected": { + "href": "sc://x/", + "host": "x", + "hostname": "x" + } + }, + { + "comment": "Cannot-be-a-base means no host", + "href": "mailto:me@example.net", + "new_value": "example.com", + "expected": { + "href": "mailto:me@example.net", + "host": "" + } + }, + { + "comment": "Cannot-be-a-base means no password", + "href": "data:text/plain,Stuff", + "new_value": "example.net", + "expected": { + "href": "data:text/plain,Stuff", + "host": "" + } + }, + { + "href": "http://example.net:8080", + "new_value": "example.com", + "expected": { + "href": "http://example.com:8080/", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "The empty host is not valid for special schemes", + "href": "http://example.net", + "new_value": "", + "expected": { + "href": "http://example.net/", + "host": "example.net" + } + }, + { + "comment": "The empty host is OK for non-special schemes", + "href": "view-source+http://example.net/foo", + "new_value": "", + "expected": { + "href": "view-source+http:///foo", + "host": "" + } + }, + { + "comment": "Path-only URLs can gain a host", + "href": "a:/foo", + "new_value": "example.net", + "expected": { + "href": "a://example.net/foo", + "host": "example.net" + } + }, + { + "comment": "IPv4 address syntax is normalized", + "href": "http://example.net:8080", + "new_value": "0x7F000001", + "expected": { + "href": "http://127.0.0.1:8080/", + "host": "127.0.0.1:8080", + "hostname": "127.0.0.1", + "port": "8080" + } + }, + { + "comment": "IPv6 address syntax is normalized", + "href": "http://example.net", + "new_value": "[::0:01]", + "expected": { + "href": "http://[::1]/", + "host": "[::1]", + "hostname": "[::1]", + "port": "" + } + }, + { + "comment": "Stuff after a : delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com:8080", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a : delimiter is ignored", + "href": "http://example.net:8080/path", + "new_value": "example.com:", + "expected": { + "href": "http://example.com:8080/path", + "host": "example.com:8080", + "hostname": "example.com", + "port": "8080" + } + }, + { + "comment": "Stuff after a / delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com/stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a ? delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com?stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a # delimiter is ignored", + "href": "http://example.net/path", + "new_value": "example.com#stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "Stuff after a \\ delimiter is ignored for special schemes", + "href": "http://example.net/path", + "new_value": "example.com\\stuff", + "expected": { + "href": "http://example.com/path", + "host": "example.com", + "hostname": "example.com", + "port": "" + } + }, + { + "comment": "\\ is not a delimiter for non-special schemes, but still forbidden in hosts", + "href": "view-source+http://example.net/path", + "new_value": "example.com\\stuff", + "expected": { + "href": "view-source+http://example.net/path", + "host": "example.net", + "hostname": "example.net", + "port": "" + } + }, + { + "comment": "Broken IPv6", + "href": "http://example.net/", + "new_value": "[google.com]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.2.3.4x]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.2.3.]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.2.]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "http://example.net/", + "new_value": "[::1.]", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net" + } + }, + { + "href": "file://y/", + "new_value": "x:123", + "expected": { + "href": "file://y/", + "host": "y", + "hostname": "y", + "port": "" + } + }, + { + "href": "file://y/", + "new_value": "loc%41lhost", + "expected": { + "href": "file:///", + "host": "", + "hostname": "", + "port": "" + } + }, + { + "href": "file://hi/x", + "new_value": "", + "expected": { + "href": "file:///x", + "host": "", + "hostname": "", + "port": "" + } + }, + { + "href": "sc://test@test/", + "new_value": "", + "expected": { + "href": "sc://test@test/", + "host": "test", + "hostname": "test", + "username": "test" + } + }, + { + "href": "sc://test:12/", + "new_value": "", + "expected": { + "href": "sc://test:12/", + "host": "test:12", + "hostname": "test", + "port": "12" + } + } + ], + "port": [ + { + "href": "http://example.net", + "new_value": "8080", + "expected": { + "href": "http://example.net:8080/", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Port number is removed if empty is the new value", + "href": "http://example.net:8080", + "new_value": "", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net", + "port": "" + } + }, + { + "comment": "Default port number is removed", + "href": "http://example.net:8080", + "new_value": "80", + "expected": { + "href": "http://example.net/", + "host": "example.net", + "hostname": "example.net", + "port": "" + } + }, + { + "comment": "Default port number is removed", + "href": "https://example.net:4433", + "new_value": "443", + "expected": { + "href": "https://example.net/", + "host": "example.net", + "hostname": "example.net", + "port": "" + } + }, + { + "comment": "Default port number is only removed for the relevant scheme", + "href": "https://example.net", + "new_value": "80", + "expected": { + "href": "https://example.net:80/", + "host": "example.net:80", + "hostname": "example.net", + "port": "80" + } + }, + { + "comment": "Stuff after a / delimiter is ignored", + "href": "http://example.net/path", + "new_value": "8080/stuff", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Stuff after a ? delimiter is ignored", + "href": "http://example.net/path", + "new_value": "8080?stuff", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Stuff after a # delimiter is ignored", + "href": "http://example.net/path", + "new_value": "8080#stuff", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Stuff after a \\ delimiter is ignored for special schemes", + "href": "http://example.net/path", + "new_value": "8080\\stuff", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Anything other than ASCII digit stops the port parser in a setter but is not an error", + "href": "view-source+http://example.net/path", + "new_value": "8080stuff2", + "expected": { + "href": "view-source+http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Anything other than ASCII digit stops the port parser in a setter but is not an error", + "href": "http://example.net/path", + "new_value": "8080stuff2", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Anything other than ASCII digit stops the port parser in a setter but is not an error", + "href": "http://example.net/path", + "new_value": "8080+2", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Port numbers are 16 bit integers", + "href": "http://example.net/path", + "new_value": "65535", + "expected": { + "href": "http://example.net:65535/path", + "host": "example.net:65535", + "hostname": "example.net", + "port": "65535" + } + }, + { + "comment": "Port numbers are 16 bit integers, overflowing is an error", + "href": "http://example.net:8080/path", + "new_value": "65536", + "expected": { + "href": "http://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "comment": "Port numbers are 16 bit integers, overflowing is an error", + "href": "non-special://example.net:8080/path", + "new_value": "65536", + "expected": { + "href": "non-special://example.net:8080/path", + "host": "example.net:8080", + "hostname": "example.net", + "port": "8080" + } + }, + { + "href": "file://test/", + "new_value": "12", + "expected": { + "href": "file://test/", + "port": "" + } + }, + { + "href": "file://localhost/", + "new_value": "12", + "expected": { + "href": "file:///", + "port": "" + } + }, + { + "href": "non-base:value", + "new_value": "12", + "expected": { + "href": "non-base:value", + "port": "" + } + }, + { + "href": "sc:///", + "new_value": "12", + "expected": { + "href": "sc:///", + "port": "" + } + }, + { + "href": "sc://x/", + "new_value": "12", + "expected": { + "href": "sc://x:12/", + "port": "12" + } + }, + { + "href": "javascript://x/", + "new_value": "12", + "expected": { + "href": "javascript://x:12/", + "port": "12" + } + } + ], + "pathname": [ + { + "comment": "Cannot-be-a-base don’t have a path", + "href": "mailto:me@example.net", + "new_value": "/foo", + "expected": { + "href": "mailto:me@example.net", + "pathname": "me@example.net" + } + }, + { + "href": "unix:/run/foo.socket?timeout=10", + "new_value": "/var/log/../run/bar.socket", + "expected": { + "href": "unix:/var/run/bar.socket?timeout=10", + "pathname": "/var/run/bar.socket" + } + }, + { + "href": "https://example.net#nav", + "new_value": "home", + "expected": { + "href": "https://example.net/home#nav", + "pathname": "/home" + } + }, + { + "href": "https://example.net#nav", + "new_value": "../home", + "expected": { + "href": "https://example.net/home#nav", + "pathname": "/home" + } + }, + { + "comment": "\\ is a segment delimiter for 'special' URLs", + "href": "http://example.net/home?lang=fr#nav", + "new_value": "\\a\\%2E\\b\\%2e.\\c", + "expected": { + "href": "http://example.net/a/c?lang=fr#nav", + "pathname": "/a/c" + } + }, + { + "comment": "\\ is *not* a segment delimiter for non-'special' URLs", + "href": "view-source+http://example.net/home?lang=fr#nav", + "new_value": "\\a\\%2E\\b\\%2e.\\c", + "expected": { + "href": "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav", + "pathname": "/\\a\\%2E\\b\\%2e.\\c" + } + }, + { + "comment": "UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.", + "href": "a:/", + "new_value": "\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\u007f\u0080\u0081Éé", + "expected": { + "href": "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9", + "pathname": "/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" + } + }, + { + "comment": "Bytes already percent-encoded are left as-is, including %2E outside dotted segments.", + "href": "http://example.net", + "new_value": "%2e%2E%c3%89té", + "expected": { + "href": "http://example.net/%2e%2E%c3%89t%C3%A9", + "pathname": "/%2e%2E%c3%89t%C3%A9" + } + }, + { + "comment": "? needs to be encoded", + "href": "http://example.net", + "new_value": "?", + "expected": { + "href": "http://example.net/%3F", + "pathname": "/%3F" + } + }, + { + "comment": "# needs to be encoded", + "href": "http://example.net", + "new_value": "#", + "expected": { + "href": "http://example.net/%23", + "pathname": "/%23" + } + }, + { + "comment": "? needs to be encoded, non-special scheme", + "href": "sc://example.net", + "new_value": "?", + "expected": { + "href": "sc://example.net/%3F", + "pathname": "/%3F" + } + }, + { + "comment": "# needs to be encoded, non-special scheme", + "href": "sc://example.net", + "new_value": "#", + "expected": { + "href": "sc://example.net/%23", + "pathname": "/%23" + } + }, + { + "comment": "File URLs and (back)slashes", + "href": "file://monkey/", + "new_value": "\\\\", + "expected": { + "href": "file://monkey/", + "pathname": "/" + } + }, + { + "comment": "File URLs and (back)slashes", + "href": "file:///unicorn", + "new_value": "//\\/", + "expected": { + "href": "file:///", + "pathname": "/" + } + }, + { + "comment": "File URLs and (back)slashes", + "href": "file:///unicorn", + "new_value": "//monkey/..//", + "expected": { + "href": "file:///", + "pathname": "/" + } + } + ], + "search": [ + { + "href": "https://example.net#nav", + "new_value": "lang=fr", + "expected": { + "href": "https://example.net/?lang=fr#nav", + "search": "?lang=fr" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "lang=fr", + "expected": { + "href": "https://example.net/?lang=fr#nav", + "search": "?lang=fr" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "?lang=fr", + "expected": { + "href": "https://example.net/?lang=fr#nav", + "search": "?lang=fr" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "??lang=fr", + "expected": { + "href": "https://example.net/??lang=fr#nav", + "search": "??lang=fr" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "?", + "expected": { + "href": "https://example.net/?#nav", + "search": "" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "", + "expected": { + "href": "https://example.net/#nav", + "search": "" + } + }, + { + "href": "https://example.net?lang=en-US", + "new_value": "", + "expected": { + "href": "https://example.net/", + "search": "" + } + }, + { + "href": "https://example.net", + "new_value": "", + "expected": { + "href": "https://example.net/", + "search": "" + } + }, + { + "comment": "UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.", + "href": "a:/", + "new_value": "\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\u007f\u0080\u0081Éé", + "expected": { + "href": "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9", + "search": "?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" + } + }, + { + "comment": "Bytes already percent-encoded are left as-is", + "href": "http://example.net", + "new_value": "%c3%89té", + "expected": { + "href": "http://example.net/?%c3%89t%C3%A9", + "search": "?%c3%89t%C3%A9" + } + } + ], + "hash": [ + { + "href": "https://example.net", + "new_value": "main", + "expected": { + "href": "https://example.net/#main", + "hash": "#main" + } + }, + { + "href": "https://example.net#nav", + "new_value": "main", + "expected": { + "href": "https://example.net/#main", + "hash": "#main" + } + }, + { + "href": "https://example.net?lang=en-US", + "new_value": "##nav", + "expected": { + "href": "https://example.net/?lang=en-US##nav", + "hash": "##nav" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "#main", + "expected": { + "href": "https://example.net/?lang=en-US#main", + "hash": "#main" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "#", + "expected": { + "href": "https://example.net/?lang=en-US#", + "hash": "" + } + }, + { + "href": "https://example.net?lang=en-US#nav", + "new_value": "", + "expected": { + "href": "https://example.net/?lang=en-US", + "hash": "" + } + }, + { + "comment": "Simple percent-encoding; nuls, tabs, and newlines are removed", + "href": "a:/", + "new_value": "\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\u007f\u0080\u0081Éé", + "expected": { + "href": "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9", + "hash": "#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" + } + }, + { + "comment": "Bytes already percent-encoded are left as-is", + "href": "http://example.net", + "new_value": "%c3%89té", + "expected": { + "href": "http://example.net/#%c3%89t%C3%A9", + "hash": "#%c3%89t%C3%A9" + } + }, + { + "href": "javascript:alert(1)", + "new_value": "castle", + "expected": { + "href": "javascript:alert(1)#castle", + "hash": "#castle" + } + } + ] +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/url-constructor.html b/third_party/WebKit/LayoutTests/external/wpt/url/url-constructor.html new file mode 100644 index 0000000..490917c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/url-constructor.html
@@ -0,0 +1,126 @@ +<!doctype html> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +function runURLConstructorTests() { + var setup = async_test("Loading data…") + setup.step(function() { + var request = new XMLHttpRequest() + request.open("GET", "urltestdata.json") + request.send() + request.responseType = "json" + request.onload = setup.step_func(function() { + runURLTests(request.response) + setup.done() + }) + }) +} + +function bURL(url, base) { + return new URL(url, base || "about:blank") +} + +function runURLTests(urltests) { + for(var i = 0, l = urltests.length; i < l; i++) { + var expected = urltests[i] + if (typeof expected === "string") continue // skip comments + + test(function() { + if (expected.failure) { + assert_throws(new TypeError(), function() { + bURL(expected.input, expected.base) + }) + return + } + + var url = bURL(expected.input, expected.base) + assert_equals(url.href, expected.href, "href") + assert_equals(url.protocol, expected.protocol, "protocol") + assert_equals(url.username, expected.username, "username") + assert_equals(url.password, expected.password, "password") + assert_equals(url.host, expected.host, "host") + assert_equals(url.hostname, expected.hostname, "hostname") + assert_equals(url.port, expected.port, "port") + assert_equals(url.pathname, expected.pathname, "pathname") + assert_equals(url.search, expected.search, "search") + if ("searchParams" in expected) { + assert_true("searchParams" in url) + assert_equals(url.searchParams.toString(), expected.searchParams, "searchParams") + } + assert_equals(url.hash, expected.hash, "hash") + }, "Parsing: <" + expected.input + "> against <" + expected.base + ">") + } +} + +function runURLSearchParamTests() { + test(function() { + var url = bURL('http://example.org/?a=b') + assert_true("searchParams" in url) + var searchParams = url.searchParams + assert_true(url.searchParams === searchParams, 'Object identity should hold.') + }, 'URL.searchParams getter') + + test(function() { + var url = bURL('http://example.org/?a=b') + assert_true("searchParams" in url) + var searchParams = url.searchParams + assert_equals(searchParams.toString(), 'a=b') + + searchParams.set('a', 'b') + assert_equals(url.searchParams.toString(), 'a=b') + assert_equals(url.search, '?a=b') + url.search = '' + assert_equals(url.searchParams.toString(), '') + assert_equals(url.search, '') + assert_equals(searchParams.toString(), '') + }, 'URL.searchParams updating, clearing') + + test(function() { + 'use strict' + var urlString = 'http://example.org' + var url = bURL(urlString) + assert_throws(TypeError(), function() { url.searchParams = new URLSearchParams(urlString) }) + }, 'URL.searchParams setter, invalid values') + + test(function() { + var url = bURL('http://example.org/file?a=b&c=d') + assert_true("searchParams" in url) + var searchParams = url.searchParams + assert_equals(url.search, '?a=b&c=d') + assert_equals(searchParams.toString(), 'a=b&c=d') + + // Test that setting 'search' propagates to the URL object's query object. + url.search = 'e=f&g=h' + assert_equals(url.search, '?e=f&g=h') + assert_equals(searchParams.toString(), 'e=f&g=h') + + // ..and same but with a leading '?'. + url.search = '?e=f&g=h' + assert_equals(url.search, '?e=f&g=h') + assert_equals(searchParams.toString(), 'e=f&g=h') + + // And in the other direction, altering searchParams propagates + // back to 'search'. + searchParams.append('i', ' j ') + assert_equals(url.search, '?e=f&g=h&i=+j+') + assert_equals(url.searchParams.toString(), 'e=f&g=h&i=+j+') + assert_equals(searchParams.get('i'), ' j ') + + searchParams.set('e', 'updated') + assert_equals(url.search, '?e=updated&g=h&i=+j+') + assert_equals(searchParams.get('e'), 'updated') + + var url2 = bURL('http://example.org/file??a=b&c=d') + assert_equals(url2.search, '??a=b&c=d') + assert_equals(url2.searchParams.toString(), '%3Fa=b&c=d') + + url2.href = 'http://example.org/file??a=b' + assert_equals(url2.search, '??a=b') + assert_equals(url2.searchParams.toString(), '%3Fa=b') + }, 'URL.searchParams and URL.search setters, update propagation') +} +runURLSearchParamTests() +runURLConstructorTests() +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/url-origin.html b/third_party/WebKit/LayoutTests/external/wpt/url/url-origin.html new file mode 100644 index 0000000..f9d4b3d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/url-origin.html
@@ -0,0 +1,37 @@ +<!doctype html> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +function runURLOriginTests() { + var setup = async_test("Loading data…") + setup.step(function() { + var request = new XMLHttpRequest() + request.open("GET", "urltestdata.json") + request.send() + request.responseType = "json" + request.onload = setup.step_func(function() { + runURLTests(request.response) + setup.done() + }) + }) +} + +function bURL(url, base) { + return new URL(url, base || "about:blank") +} + +function runURLTests(urltests) { + for(var i = 0, l = urltests.length; i < l; i++) { + var expected = urltests[i] + if (typeof expected === "string" || !("origin" in expected)) continue + + test(function() { + var url = bURL(expected.input, expected.base) + assert_equals(url.origin, expected.origin, "origin") + }, "Origin parsing: <" + expected.input + "> against <" + expected.base + ">") + } +} +runURLOriginTests() +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/url-setters.html b/third_party/WebKit/LayoutTests/external/wpt/url/url-setters.html new file mode 100644 index 0000000..b8b8ee5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/url-setters.html
@@ -0,0 +1,62 @@ +<!doctype html> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +function startURLSettersTests() { + var setup = async_test("Loading data…") + setup.step(function() { + var request = new XMLHttpRequest() + request.open("GET", "setters_tests.json") + request.send() + request.responseType = "json" + request.onload = setup.step_func(function() { + runURLSettersTests(request.response) + setup.done() + }) + }) +} + +function runURLSettersTests(all_test_cases) { + for (var attribute_to_be_set in all_test_cases) { + if (attribute_to_be_set == "comment") { + continue; + } + var test_cases = all_test_cases[attribute_to_be_set]; + for(var i = 0, l = test_cases.length; i < l; i++) { + var test_case = test_cases[i]; + var name = "Setting <" + test_case.href + ">." + attribute_to_be_set + + " = '" + test_case.new_value + "'"; + if ("comment" in test_case) { + name += " " + test_case.comment; + } + test(function() { + var url = new URL(test_case.href); + url[attribute_to_be_set] = test_case.new_value; + for (var attribute in test_case.expected) { + assert_equals(url[attribute], test_case.expected[attribute]) + } + }, "URL: " + name) + test(function() { + var url = document.createElement("a"); + url.href = test_case.href; + url[attribute_to_be_set] = test_case.new_value; + for (var attribute in test_case.expected) { + assert_equals(url[attribute], test_case.expected[attribute]) + } + }, "<a>: " + name) + test(function() { + var url = document.createElement("area"); + url.href = test_case.href; + url[attribute_to_be_set] = test_case.new_value; + for (var attribute in test_case.expected) { + assert_equals(url[attribute], test_case.expected[attribute]) + } + }, "<area>: " + name) + } + } +} + +startURLSettersTests() +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/url-tojson-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/url-tojson-expected.txt new file mode 100644 index 0000000..da07123d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/url-tojson-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL URL's toJSON() assert_equals: expected "\"https://example.com/\"" but got "{}" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/url-tojson.html b/third_party/WebKit/LayoutTests/external/wpt/url/url-tojson.html new file mode 100644 index 0000000..3e8798c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/url-tojson.html
@@ -0,0 +1,12 @@ +<!doctype html> +<meta charset=utf-8> +<title>URL's toJSON()</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +test(() => { + const a = new URL("https://example.com/") + assert_equals(JSON.stringify(a), "\"https://example.com/\"") +}) +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlencoded-parser-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/urlencoded-parser-expected.txt new file mode 100644 index 0000000..467598df2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlencoded-parser-expected.txt
@@ -0,0 +1,94 @@ +This is a testharness.js-based test. +Found 90 tests; 25 PASS, 65 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS URLSearchParams constructed with: test +FAIL request.formData() with input: test (intermediate value).formData is not a function +FAIL response.formData() with input: test (intermediate value).formData is not a function +PASS URLSearchParams constructed with: test= +FAIL request.formData() with input: test= (intermediate value).formData is not a function +FAIL response.formData() with input: test= (intermediate value).formData is not a function +PASS URLSearchParams constructed with: %EF%BB%BFtest=%EF%BB%BF +FAIL request.formData() with input: %EF%BB%BFtest=%EF%BB%BF (intermediate value).formData is not a function +FAIL response.formData() with input: %EF%BB%BFtest=%EF%BB%BF (intermediate value).formData is not a function +FAIL URLSearchParams constructed with: %FE%FF assert_array_equals: property 0, expected "\ufffd\ufffd" but got "þÿ" +FAIL request.formData() with input: %FE%FF (intermediate value).formData is not a function +FAIL response.formData() with input: %FE%FF (intermediate value).formData is not a function +FAIL URLSearchParams constructed with: %FF%FE assert_array_equals: property 0, expected "\ufffd\ufffd" but got "ÿþ" +FAIL request.formData() with input: %FF%FE (intermediate value).formData is not a function +FAIL response.formData() with input: %FF%FE (intermediate value).formData is not a function +PASS URLSearchParams constructed with: †&†=x +FAIL request.formData() with input: †&†=x (intermediate value).formData is not a function +FAIL response.formData() with input: †&†=x (intermediate value).formData is not a function +FAIL URLSearchParams constructed with: %C2 assert_array_equals: property 0, expected "\ufffd" but got "Â" +FAIL request.formData() with input: %C2 (intermediate value).formData is not a function +FAIL response.formData() with input: %C2 (intermediate value).formData is not a function +FAIL URLSearchParams constructed with: %C2x assert_array_equals: property 0, expected "\ufffdx" but got "Âx" +FAIL request.formData() with input: %C2x (intermediate value).formData is not a function +FAIL response.formData() with input: %C2x (intermediate value).formData is not a function +FAIL URLSearchParams constructed with: _charset_=windows-1252&test=%C2x assert_array_equals: property 1, expected "\ufffdx" but got "Âx" +FAIL request.formData() with input: _charset_=windows-1252&test=%C2x (intermediate value).formData is not a function +FAIL response.formData() with input: _charset_=windows-1252&test=%C2x (intermediate value).formData is not a function +PASS URLSearchParams constructed with: +FAIL request.formData() with input: (intermediate value).formData is not a function +FAIL response.formData() with input: (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a +FAIL request.formData() with input: a (intermediate value).formData is not a function +FAIL response.formData() with input: a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a=b +FAIL request.formData() with input: a=b (intermediate value).formData is not a function +FAIL response.formData() with input: a=b (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a= +FAIL request.formData() with input: a= (intermediate value).formData is not a function +FAIL response.formData() with input: a= (intermediate value).formData is not a function +PASS URLSearchParams constructed with: =b +FAIL request.formData() with input: =b (intermediate value).formData is not a function +FAIL response.formData() with input: =b (intermediate value).formData is not a function +PASS URLSearchParams constructed with: & +FAIL request.formData() with input: & (intermediate value).formData is not a function +FAIL response.formData() with input: & (intermediate value).formData is not a function +PASS URLSearchParams constructed with: &a +FAIL request.formData() with input: &a (intermediate value).formData is not a function +FAIL response.formData() with input: &a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a& +FAIL request.formData() with input: a& (intermediate value).formData is not a function +FAIL response.formData() with input: a& (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a&a +FAIL request.formData() with input: a&a (intermediate value).formData is not a function +FAIL response.formData() with input: a&a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a&b&c +FAIL request.formData() with input: a&b&c (intermediate value).formData is not a function +FAIL response.formData() with input: a&b&c (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a=b&c=d +FAIL request.formData() with input: a=b&c=d (intermediate value).formData is not a function +FAIL response.formData() with input: a=b&c=d (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a=b&c=d& +FAIL request.formData() with input: a=b&c=d& (intermediate value).formData is not a function +FAIL response.formData() with input: a=b&c=d& (intermediate value).formData is not a function +PASS URLSearchParams constructed with: &&&a=b&&&&c=d& +FAIL request.formData() with input: &&&a=b&&&&c=d& (intermediate value).formData is not a function +FAIL response.formData() with input: &&&a=b&&&&c=d& (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a=a&a=b&a=c +FAIL request.formData() with input: a=a&a=b&a=c (intermediate value).formData is not a function +FAIL response.formData() with input: a=a&a=b&a=c (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a==a +FAIL request.formData() with input: a==a (intermediate value).formData is not a function +FAIL response.formData() with input: a==a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: a=a+b+c+d +FAIL request.formData() with input: a=a+b+c+d (intermediate value).formData is not a function +FAIL response.formData() with input: a=a+b+c+d (intermediate value).formData is not a function +PASS URLSearchParams constructed with: %=a +FAIL request.formData() with input: %=a (intermediate value).formData is not a function +FAIL response.formData() with input: %=a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: %a=a +FAIL request.formData() with input: %a=a (intermediate value).formData is not a function +FAIL response.formData() with input: %a=a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: %a_=a +FAIL request.formData() with input: %a_=a (intermediate value).formData is not a function +FAIL response.formData() with input: %a_=a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: %61=a +FAIL request.formData() with input: %61=a (intermediate value).formData is not a function +FAIL response.formData() with input: %61=a (intermediate value).formData is not a function +PASS URLSearchParams constructed with: %61+%4d%4D= +FAIL request.formData() with input: %61+%4d%4D= (intermediate value).formData is not a function +FAIL response.formData() with input: %61+%4d%4D= (intermediate value).formData is not a function +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlencoded-parser.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlencoded-parser.html new file mode 100644 index 0000000..40a54f1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlencoded-parser.html
@@ -0,0 +1,71 @@ +<!doctype html> +<meta charset=utf-8> +<title>application/x-www-form-urlencoded parser test</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +[ + { "input": "test", "output": [["test", ""]] }, + { "input": "\uFEFFtest=\uFEFF", "output": [["\uFEFFtest", "\uFEFF"]] }, + { "input": "%EF%BB%BFtest=%EF%BB%BF", "output": [["\uFEFFtest", "\uFEFF"]] }, + { "input": "%FE%FF", "output": [["\uFFFD\uFFFD", ""]] }, + { "input": "%FF%FE", "output": [["\uFFFD\uFFFD", ""]] }, + { "input": "†&†=x", "output": [["†", ""], ["†", "x"]] }, + { "input": "%C2", "output": [["\uFFFD", ""]] }, + { "input": "%C2x", "output": [["\uFFFDx", ""]] }, + { "input": "_charset_=windows-1252&test=%C2x", "output": [["_charset_", "windows-1252"], ["test", "\uFFFDx"]] }, + { "input": '', "output": [] }, + { "input": 'a', "output": [['a', '']] }, + { "input": 'a=b', "output": [['a', 'b']] }, + { "input": 'a=', "output": [['a', '']] }, + { "input": '=b', "output": [['', 'b']] }, + { "input": '&', "output": [] }, + { "input": '&a', "output": [['a', '']] }, + { "input": 'a&', "output": [['a', '']] }, + { "input": 'a&a', "output": [['a', ''], ['a', '']] }, + { "input": 'a&b&c', "output": [['a', ''], ['b', ''], ['c', '']] }, + { "input": 'a=b&c=d', "output": [['a', 'b'], ['c', 'd']] }, + { "input": 'a=b&c=d&', "output": [['a', 'b'], ['c', 'd']] }, + { "input": '&&&a=b&&&&c=d&', "output": [['a', 'b'], ['c', 'd']] }, + { "input": 'a=a&a=b&a=c', "output": [['a', 'a'], ['a', 'b'], ['a', 'c']] }, + { "input": 'a==a', "output": [['a', '=a']] }, + { "input": 'a=a+b+c+d', "output": [['a', 'a b c d']] }, + { "input": '%=a', "output": [['%', 'a']] }, + { "input": '%a=a', "output": [['%a', 'a']] }, + { "input": '%a_=a', "output": [['%a_', 'a']] }, + { "input": '%61=a', "output": [['a', 'a']] }, + { "input": '%61+%4d%4D=', "output": [['a MM', '']] } +].forEach((val) => { + test(() => { + let sp = new URLSearchParams(val.input), + i = 0 + for (let item of sp) { + assert_array_equals(item, val.output[i]) + i++ + } + }, "URLSearchParams constructed with: " + val.input) + + promise_test(() => { + let init = new Request("about:blank", { body: val.input, method: "LADIDA", headers: {"Content-Type": "application/x-www-form-urlencoded;charset=windows-1252"} }).formData() + return init.then((fd) => { + let i = 0 + for (let item of fd) { + assert_array_equals(item, val.output[i]) + i++ + } + }) + }, "request.formData() with input: " + val.input) + + promise_test(() => { + let init = new Response(val.input, { headers: {"Content-Type": "application/x-www-form-urlencoded;charset=shift_jis"} }).formData() + return init.then((fd) => { + let i = 0 + for (let item of fd) { + assert_array_equals(item, val.output[i]) + i++ + } + }) + }, "response.formData() with input: " + val.input) +}) +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-append.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-append.html new file mode 100644 index 0000000..ca367e6f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-append.html
@@ -0,0 +1,50 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-append"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams(); + params.append('a', 'b'); + assert_equals(params + '', 'a=b'); + params.append('a', 'b'); + assert_equals(params + '', 'a=b&a=b'); + params.append('a', 'c'); + assert_equals(params + '', 'a=b&a=b&a=c'); +}, 'Append same name'); + +test(function() { + var params = new URLSearchParams(); + params.append('', ''); + assert_equals(params + '', '='); + params.append('', ''); + assert_equals(params + '', '=&='); +}, 'Append empty strings'); + +test(function() { + var params = new URLSearchParams(); + params.append(null, null); + assert_equals(params + '', 'null=null'); + params.append(null, null); + assert_equals(params + '', 'null=null&null=null'); +}, 'Append null'); + +test(function() { + var params = new URLSearchParams(); + params.append('first', 1); + params.append('second', 2); + params.append('third', ''); + params.append('first', 10); + assert_true(params.has('first'), 'Search params object has name "first"'); + assert_equals(params.get('first'), '1', 'Search params object has name "first" with value "1"'); + assert_equals(params.get('second'), '2', 'Search params object has name "second" with value "2"'); + assert_equals(params.get('third'), '', 'Search params object has name "third" with value ""'); + params.append('first', 10); + assert_equals(params.get('first'), '1', 'Search params object has name "first" with value "1"'); +}, 'Append multiple'); +</script> +</head> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-constructor-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-constructor-expected.txt new file mode 100644 index 0000000..9cc74ec4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-constructor-expected.txt
@@ -0,0 +1,26 @@ +This is a testharness.js-based test. +PASS Basic URLSearchParams construction +PASS URLSearchParams constructor, no arguments +FAIL URLSearchParams constructor, DOMException.prototype as argument Illegal invocation +PASS URLSearchParams constructor, empty string as argument +FAIL URLSearchParams constructor, {} as argument assert_equals: expected "" but got "%5Bobject+Object%5D=" +PASS URLSearchParams constructor, string. +PASS URLSearchParams constructor, object. +PASS Parse + +PASS Parse encoded + +PASS Parse space +PASS Parse %20 +PASS Parse \0 +PASS Parse %00 +PASS Parse ⎄ +PASS Parse %e2%8e%84 +PASS Parse 💩 +PASS Parse %f0%9f%92%a9 +PASS Constructor with sequence of sequences of strings +FAIL Construct with object with + assert_array_equals: property 0, expected "+" but got "[object Object]" +FAIL Construct with object with two keys assert_array_equals: property 0, expected "c" but got "[object Object]" +PASS Construct with array with two keys +FAIL Construct with object with NULL, non-ASCII, and surrogate keys assert_array_equals: property 0, expected "a\0b" but got "[object Object]" +FAIL Custom [Symbol.iterator] assert_equals: expected (string) "b" but got (object) null +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-constructor.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-constructor.html new file mode 100644 index 0000000..1e214e04 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-constructor.html
@@ -0,0 +1,185 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#urlsearchparams"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams(); + assert_equals(params + '', ''); + params = new URLSearchParams(''); + assert_equals(params + '', ''); + params = new URLSearchParams('a=b'); + assert_equals(params + '', 'a=b'); + params = new URLSearchParams(params); + assert_equals(params + '', 'a=b'); +}, 'Basic URLSearchParams construction'); + +test(function() { + var params = new URLSearchParams() + assert_equals(params.toString(), "") +}, "URLSearchParams constructor, no arguments") + +test(() => { + params = new URLSearchParams(DOMException.prototype); + assert_equals(params.toString(), "INDEX_SIZE_ERR=1&DOMSTRING_SIZE_ERR=2&HIERARCHY_REQUEST_ERR=3&WRONG_DOCUMENT_ERR=4&INVALID_CHARACTER_ERR=5&NO_DATA_ALLOWED_ERR=6&NO_MODIFICATION_ALLOWED_ERR=7&NOT_FOUND_ERR=8&NOT_SUPPORTED_ERR=9&INUSE_ATTRIBUTE_ERR=10&INVALID_STATE_ERR=11&SYNTAX_ERR=12&INVALID_MODIFICATION_ERR=13&NAMESPACE_ERR=14&INVALID_ACCESS_ERR=15&VALIDATION_ERR=16&TYPE_MISMATCH_ERR=17&SECURITY_ERR=18&NETWORK_ERR=19&ABORT_ERR=20&URL_MISMATCH_ERR=21"A_EXCEEDED_ERR=22&TIMEOUT_ERR=23&INVALID_NODE_TYPE_ERR=24&DATA_CLONE_ERR=25") +}, "URLSearchParams constructor, DOMException.prototype as argument") + +test(() => { + params = new URLSearchParams(''); + assert_true(params != null, 'constructor returned non-null value.'); + assert_equals(params.__proto__, URLSearchParams.prototype, 'expected URLSearchParams.prototype as prototype.'); +}, "URLSearchParams constructor, empty string as argument") + +test(() => { + params = new URLSearchParams({}); + assert_equals(params + '', ""); +}, 'URLSearchParams constructor, {} as argument'); + +test(function() { + var params = new URLSearchParams('a=b'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_false(params.has('b'), 'Search params object has not got name "b"'); + var params = new URLSearchParams('a=b&c'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_true(params.has('c'), 'Search params object has name "c"'); + var params = new URLSearchParams('&a&&& &&&&&a+b=& c&m%c3%b8%c3%b8'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_true(params.has('a b'), 'Search params object has name "a b"'); + assert_true(params.has(' '), 'Search params object has name " "'); + assert_false(params.has('c'), 'Search params object did not have the name "c"'); + assert_true(params.has(' c'), 'Search params object has name " c"'); + assert_true(params.has('møø'), 'Search params object has name "møø"'); +}, 'URLSearchParams constructor, string.'); + +test(function() { + var seed = new URLSearchParams('a=b&c=d'); + var params = new URLSearchParams(seed); + assert_true(params != null, 'constructor returned non-null value.'); + assert_equals(params.get('a'), 'b'); + assert_equals(params.get('c'), 'd'); + assert_false(params.has('d')); + // The name-value pairs are copied when created; later updates + // should not be observable. + seed.append('e', 'f'); + assert_false(params.has('e')); + params.append('g', 'h'); + assert_false(seed.has('g')); +}, 'URLSearchParams constructor, object.'); + +test(function() { + var params = new URLSearchParams('a=b+c'); + assert_equals(params.get('a'), 'b c'); + params = new URLSearchParams('a+b=c'); + assert_equals(params.get('a b'), 'c'); +}, 'Parse +'); + +test(function() { + const testValue = '+15555555555'; + const params = new URLSearchParams(); + params.set('query', testValue); + var newParams = new URLSearchParams(params.toString()); + + assert_equals(params.toString(), 'query=%2B15555555555'); + assert_equals(params.get('query'), testValue); + assert_equals(newParams.get('query'), testValue); +}, 'Parse encoded +'); + +test(function() { + var params = new URLSearchParams('a=b c'); + assert_equals(params.get('a'), 'b c'); + params = new URLSearchParams('a b=c'); + assert_equals(params.get('a b'), 'c'); +}, 'Parse space'); + +test(function() { + var params = new URLSearchParams('a=b%20c'); + assert_equals(params.get('a'), 'b c'); + params = new URLSearchParams('a%20b=c'); + assert_equals(params.get('a b'), 'c'); +}, 'Parse %20'); + +test(function() { + var params = new URLSearchParams('a=b\0c'); + assert_equals(params.get('a'), 'b\0c'); + params = new URLSearchParams('a\0b=c'); + assert_equals(params.get('a\0b'), 'c'); +}, 'Parse \\0'); + +test(function() { + var params = new URLSearchParams('a=b%00c'); + assert_equals(params.get('a'), 'b\0c'); + params = new URLSearchParams('a%00b=c'); + assert_equals(params.get('a\0b'), 'c'); +}, 'Parse %00'); + +test(function() { + var params = new URLSearchParams('a=b\u2384'); + assert_equals(params.get('a'), 'b\u2384'); + params = new URLSearchParams('a\u2384b=c'); + assert_equals(params.get('a\u2384b'), 'c'); +}, 'Parse \u2384'); // Unicode Character 'COMPOSITION SYMBOL' (U+2384) + +test(function() { + var params = new URLSearchParams('a=b%e2%8e%84'); + assert_equals(params.get('a'), 'b\u2384'); + params = new URLSearchParams('a%e2%8e%84b=c'); + assert_equals(params.get('a\u2384b'), 'c'); +}, 'Parse %e2%8e%84'); // Unicode Character 'COMPOSITION SYMBOL' (U+2384) + +test(function() { + var params = new URLSearchParams('a=b\uD83D\uDCA9c'); + assert_equals(params.get('a'), 'b\uD83D\uDCA9c'); + params = new URLSearchParams('a\uD83D\uDCA9b=c'); + assert_equals(params.get('a\uD83D\uDCA9b'), 'c'); +}, 'Parse \uD83D\uDCA9'); // Unicode Character 'PILE OF POO' (U+1F4A9) + +test(function() { + var params = new URLSearchParams('a=b%f0%9f%92%a9c'); + assert_equals(params.get('a'), 'b\uD83D\uDCA9c'); + params = new URLSearchParams('a%f0%9f%92%a9b=c'); + assert_equals(params.get('a\uD83D\uDCA9b'), 'c'); +}, 'Parse %f0%9f%92%a9'); // Unicode Character 'PILE OF POO' (U+1F4A9) + +test(function() { + var params = new URLSearchParams([]); + assert_true(params != null, 'constructor returned non-null value.'); + params = new URLSearchParams([['a', 'b'], ['c', 'd']]); + assert_equals(params.get("a"), "b"); + assert_equals(params.get("c"), "d"); + assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); }); + assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); }); +}, "Constructor with sequence of sequences of strings"); + +[ + { "input": {"+": "%C2"}, "output": [["+", "%C2"]], "name": "object with +" }, + { "input": {c: "x", a: "?"}, "output": [["c", "x"], ["a", "?"]], "name": "object with two keys" }, + { "input": [["c", "x"], ["a", "?"]], "output": [["c", "x"], ["a", "?"]], "name": "array with two keys" }, + { "input": {"a\0b": "42", "c\uD83D": "23", "d\u1234": "foo"}, "output": [["a\0b", "42"], ["c\uFFFD", "23"], ["d\u1234", "foo"]], "name": "object with NULL, non-ASCII, and surrogate keys" } +].forEach((val) => { + test(() => { + let params = new URLSearchParams(val.input), + i = 0 + for (let param of params) { + assert_array_equals(param, val.output[i]) + i++ + } + }, "Construct with " + val.name) +}) + +test(() => { + params = new URLSearchParams() + params[Symbol.iterator] = function *() { + yield ["a", "b"] + } + let params2 = new URLSearchParams(params) + assert_equals(params2.get("a"), "b") +}, "Custom [Symbol.iterator]") +</script> +</head> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-delete.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-delete.html new file mode 100644 index 0000000..fca64621 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-delete.html
@@ -0,0 +1,41 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-delete"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams('a=b&c=d'); + params.delete('a'); + assert_equals(params + '', 'c=d'); + params = new URLSearchParams('a=a&b=b&a=a&c=c'); + params.delete('a'); + assert_equals(params + '', 'b=b&c=c'); + params = new URLSearchParams('a=a&=&b=b&c=c'); + params.delete(''); + assert_equals(params + '', 'a=a&b=b&c=c'); + params = new URLSearchParams('a=a&null=null&b=b'); + params.delete(null); + assert_equals(params + '', 'a=a&b=b'); + params = new URLSearchParams('a=a&undefined=undefined&b=b'); + params.delete(undefined); + assert_equals(params + '', 'a=a&b=b'); +}, 'Delete basics'); + +test(function() { + var params = new URLSearchParams(); + params.append('first', 1); + assert_true(params.has('first'), 'Search params object has name "first"'); + assert_equals(params.get('first'), '1', 'Search params object has name "first" with value "1"'); + params.delete('first'); + assert_false(params.has('first'), 'Search params object has no "first" name'); + params.append('first', 1); + params.append('first', 10); + params.delete('first'); + assert_false(params.has('first'), 'Search params object has no "first" name'); +}, 'Deleting appended multiple'); +</script> +</head> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-foreach-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-foreach-expected.txt new file mode 100644 index 0000000..9fb83aa --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-foreach-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +PASS ForEach Check +FAIL For-of Check assert_array_equals: property 0, expected "y" but got "b" +PASS empty +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-foreach.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-foreach.html new file mode 100644 index 0000000..faa699cae --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-foreach.html
@@ -0,0 +1,39 @@ +<!doctype html> +<meta charset="utf-8"> +<link rel="help" href="https://url.spec.whatwg.org/#dom-urlsearchparams-has"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams('a=1&b=2&c=3'); + var keys = []; + var values = []; + params.forEach(function(value, key) { + keys.push(key); + values.push(value); + }); + assert_array_equals(keys, ['a', 'b', 'c']); + assert_array_equals(values, ['1', '2', '3']); +}, "ForEach Check"); + +test(function() { + let a = new URL("http://a.b/c?a=1&b=2&c=3&d=4"); + let b = a.searchParams; + var c = []; + for (i of b) { + a.search = "x=1&y=2&z=3"; + c.push(i); + } + assert_array_equals(c[0], ["a","1"]); + assert_array_equals(c[1], ["y","2"]); + assert_array_equals(c[2], ["z","3"]); +}, "For-of Check"); + +test(function() { + let a = new URL("http://a.b/c"); + let b = a.searchParams; + for (i of b) { + assert_unreached(i); + } +}, "empty"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-get.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-get.html new file mode 100644 index 0000000..1d27727c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-get.html
@@ -0,0 +1,32 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-get"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams('a=b&c=d'); + assert_equals(params.get('a'), 'b'); + assert_equals(params.get('c'), 'd'); + assert_equals(params.get('e'), null); + params = new URLSearchParams('a=b&c=d&a=e'); + assert_equals(params.get('a'), 'b'); + params = new URLSearchParams('=b&c=d'); + assert_equals(params.get(''), 'b'); + params = new URLSearchParams('a=&c=d&a=e'); + assert_equals(params.get('a'), ''); +}, 'Get basics'); + +test(function() { + var params = new URLSearchParams('first=second&third&&'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('first'), 'Search params object has name "first"'); + assert_equals(params.get('first'), 'second', 'Search params object has name "first" with value "second"'); + assert_equals(params.get('third'), '', 'Search params object has name "third" with the empty value.'); + assert_equals(params.get('fourth'), null, 'Search params object has no "fourth" name and value.'); +}, 'More get() basics'); +</script> +</head> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-getall.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-getall.html new file mode 100644 index 0000000..db6c7e3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-getall.html
@@ -0,0 +1,36 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-getAll"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams('a=b&c=d'); + assert_array_equals(params.getAll('a'), ['b']); + assert_array_equals(params.getAll('c'), ['d']); + assert_array_equals(params.getAll('e'), []); + params = new URLSearchParams('a=b&c=d&a=e'); + assert_array_equals(params.getAll('a'), ['b', 'e']); + params = new URLSearchParams('=b&c=d'); + assert_array_equals(params.getAll(''), ['b']); + params = new URLSearchParams('a=&c=d&a=e'); + assert_array_equals(params.getAll('a'), ['', 'e']); +}, 'getAll() basics'); + +test(function() { + var params = new URLSearchParams('a=1&a=2&a=3&a'); + assert_true(params.has('a'), 'Search params object has name "a"'); + var matches = params.getAll('a'); + assert_true(matches && matches.length == 4, 'Search params object has values for name "a"'); + assert_array_equals(matches, ['1', '2', '3', ''], 'Search params object has expected name "a" values'); + params.set('a', 'one'); + assert_equals(params.get('a'), 'one', 'Search params object has name "a" with value "one"'); + var matches = params.getAll('a'); + assert_true(matches && matches.length == 1, 'Search params object has values for name "a"'); + assert_array_equals(matches, ['one'], 'Search params object has expected name "a" values'); +}, 'getAll() multiples'); +</script> +</head> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-has.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-has.html new file mode 100644 index 0000000..ad045f73 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-has.html
@@ -0,0 +1,35 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-has"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams('a=b&c=d'); + assert_true(params.has('a')); + assert_true(params.has('c')); + assert_false(params.has('e')); + params = new URLSearchParams('a=b&c=d&a=e'); + assert_true(params.has('a')); + params = new URLSearchParams('=b&c=d'); + assert_true(params.has('')); + params = new URLSearchParams('null=a'); + assert_true(params.has(null)); +}, 'Has basics'); + +test(function() { + var params = new URLSearchParams('a=b&c=d&&'); + params.append('first', 1); + params.append('first', 2); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_true(params.has('c'), 'Search params object has name "c"'); + assert_true(params.has('first'), 'Search params object has name "first"'); + assert_false(params.has('d'), 'Search params object has no name "d"'); + params.delete('first'); + assert_false(params.has('first'), 'Search params object has no name "first"'); +}, 'has() following delete()'); +</script> +</head> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-set.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-set.html new file mode 100644 index 0000000..61578b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-set.html
@@ -0,0 +1,34 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-set"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams('a=b&c=d'); + params.set('a', 'B'); + assert_equals(params + '', 'a=B&c=d'); + params = new URLSearchParams('a=b&c=d&a=e'); + params.set('a', 'B'); + assert_equals(params + '', 'a=B&c=d') + params.set('e', 'f'); + assert_equals(params + '', 'a=B&c=d&e=f') +}, 'Set basics'); + +test(function() { + var params = new URLSearchParams('a=1&a=2&a=3'); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_equals(params.get('a'), '1', 'Search params object has name "a" with value "1"'); + params.set('first', 4); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_equals(params.get('a'), '1', 'Search params object has name "a" with value "1"'); + params.set('a', 4); + assert_true(params.has('a'), 'Search params object has name "a"'); + assert_equals(params.get('a'), '4', 'Search params object has name "a" with value "4"'); +}, 'URLSearchParams.set'); +</script> +</head> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-sort-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-sort-expected.txt new file mode 100644 index 0000000..9066ba7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-sort-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +FAIL Parse and sort: z=b&a=b&z=a&a=a params.sort is not a function +FAIL URL parse and sort: z=b&a=b&z=a&a=a url.searchParams.sort is not a function +FAIL Parse and sort: �=x&&�=a params.sort is not a function +FAIL URL parse and sort: �=x&&�=a url.searchParams.sort is not a function +FAIL Parse and sort: ffi&🌈 params.sort is not a function +FAIL URL parse and sort: ffi&🌈 url.searchParams.sort is not a function +FAIL Parse and sort: é&e�&é params.sort is not a function +FAIL URL parse and sort: é&e�&é url.searchParams.sort is not a function +FAIL Parse and sort: z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g params.sort is not a function +FAIL URL parse and sort: z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g url.searchParams.sort is not a function +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-sort.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-sort.html new file mode 100644 index 0000000..e643ed3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-sort.html
@@ -0,0 +1,50 @@ +<!doctype html> +<meta charset="utf8"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id=log></div> +<script> +[ + { + "input": "z=b&a=b&z=a&a=a", + "output": [["a", "b"], ["a", "a"], ["z", "b"], ["z", "a"]] + }, + { + "input": "\uFFFD=x&\uFFFC&\uFFFD=a", + "output": [["\uFFFC", ""], ["\uFFFD", "x"], ["\uFFFD", "a"]] + }, + { + "input": "ffi&🌈", // 🌈 > code point, but < code unit because two code units + "output": [["🌈", ""], ["ffi", ""]] + }, + { + "input": "é&e\uFFFD&e\u0301", + "output": [["e\u0301", ""], ["e\uFFFD", ""], ["é", ""]] + }, + { + "input": "z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g", + "output": [["a", "a"], ["a", "b"], ["a", "c"], ["a", "d"], ["a", "e"], ["a", "f"], ["a", "g"], ["z", "z"], ["z", "y"], ["z", "x"], ["z", "w"], ["z", "v"], ["z", "u"], ["z", "t"]] + } +].forEach((val) => { + test(() => { + let params = new URLSearchParams(val.input), + i = 0 + params.sort() + for(let param of params) { + assert_array_equals(param, val.output[i]) + i++ + } + }, "Parse and sort: " + val.input) + + test(() => { + let url = new URL("?" + val.input, "https://example/") + url.searchParams.sort() + let params = new URLSearchParams(url.search), + i = 0 + for(let param of params) { + assert_array_equals(param, val.output[i]) + i++ + } + }, "URL parse and sort: " + val.input) +}) +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-stringifier.html b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-stringifier.html new file mode 100644 index 0000000..5c573ba --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urlsearchparams-stringifier.html
@@ -0,0 +1,122 @@ +<!doctype html> +<html> +<head> +<meta charset="utf8"> +<link rel="help" href="http://url.spec.whatwg.org/#dom-urlsearchparams-set"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + var params = new URLSearchParams(); + params.append('a', 'b c'); + assert_equals(params + '', 'a=b+c'); + params.delete('a'); + params.append('a b', 'c'); + assert_equals(params + '', 'a+b=c'); +}, 'Serialize space'); + +test(function() { + var params = new URLSearchParams(); + params.append('a', ''); + assert_equals(params + '', 'a='); + params.append('a', ''); + assert_equals(params + '', 'a=&a='); + params.append('', 'b'); + assert_equals(params + '', 'a=&a=&=b'); + params.append('', ''); + assert_equals(params + '', 'a=&a=&=b&='); + params.append('', ''); + assert_equals(params + '', 'a=&a=&=b&=&='); +}, 'Serialize empty value'); + +test(function() { + var params = new URLSearchParams(); + params.append('', 'b'); + assert_equals(params + '', '=b'); + params.append('', 'b'); + assert_equals(params + '', '=b&=b'); +}, 'Serialize empty name'); + +test(function() { + var params = new URLSearchParams(); + params.append('', ''); + assert_equals(params + '', '='); + params.append('', ''); + assert_equals(params + '', '=&='); +}, 'Serialize empty name and value'); + +test(function() { + var params = new URLSearchParams(); + params.append('a', 'b+c'); + assert_equals(params + '', 'a=b%2Bc'); + params.delete('a'); + params.append('a+b', 'c'); + assert_equals(params + '', 'a%2Bb=c'); +}, 'Serialize +'); + +test(function() { + var params = new URLSearchParams(); + params.append('=', 'a'); + assert_equals(params + '', '%3D=a'); + params.append('b', '='); + assert_equals(params + '', '%3D=a&b=%3D'); +}, 'Serialize ='); + +test(function() { + var params = new URLSearchParams(); + params.append('&', 'a'); + assert_equals(params + '', '%26=a'); + params.append('b', '&'); + assert_equals(params + '', '%26=a&b=%26'); +}, 'Serialize &'); + +test(function() { + var params = new URLSearchParams(); + params.append('a', '*-._'); + assert_equals(params + '', 'a=*-._'); + params.delete('a'); + params.append('*-._', 'c'); + assert_equals(params + '', '*-._=c'); +}, 'Serialize *-._'); + +test(function() { + var params = new URLSearchParams(); + params.append('a', 'b%c'); + assert_equals(params + '', 'a=b%25c'); + params.delete('a'); + params.append('a%b', 'c'); + assert_equals(params + '', 'a%25b=c'); +}, 'Serialize %'); + +test(function() { + var params = new URLSearchParams(); + params.append('a', 'b\0c'); + assert_equals(params + '', 'a=b%00c'); + params.delete('a'); + params.append('a\0b', 'c'); + assert_equals(params + '', 'a%00b=c'); +}, 'Serialize \\0'); + +test(function() { + var params = new URLSearchParams(); + params.append('a', 'b\uD83D\uDCA9c'); + assert_equals(params + '', 'a=b%F0%9F%92%A9c'); + params.delete('a'); + params.append('a\uD83D\uDCA9b', 'c'); + assert_equals(params + '', 'a%F0%9F%92%A9b=c'); +}, 'Serialize \uD83D\uDCA9'); // Unicode Character 'PILE OF POO' (U+1F4A9) + +test(function() { + var params; + params = new URLSearchParams('a=b&c=d&&e&&'); + assert_equals(params.toString(), 'a=b&c=d&e='); + params = new URLSearchParams('a = b &a=b&c=d%20'); + assert_equals(params.toString(), 'a+=+b+&a=b&c=d+'); + // The lone '=' _does_ survive the roundtrip. + params = new URLSearchParams('a=&a=b'); + assert_equals(params.toString(), 'a=&a=b'); +}, 'URLSearchParams.toString'); +</script> +</head> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/urltestdata.json b/third_party/WebKit/LayoutTests/external/wpt/url/urltestdata.json new file mode 100644 index 0000000..fe13d3f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/url/urltestdata.json
@@ -0,0 +1,6138 @@ +[ + "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/segments.js", + { + "input": "http://example\t.\norg", + "base": "http://example.org/foo/bar", + "href": "http://example.org/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://user:pass@foo:21/bar;par?b#c", + "base": "http://example.org/foo/bar", + "href": "http://user:pass@foo:21/bar;par?b#c", + "origin": "http://foo:21", + "protocol": "http:", + "username": "user", + "password": "pass", + "host": "foo:21", + "hostname": "foo", + "port": "21", + "pathname": "/bar;par", + "search": "?b", + "hash": "#c" + }, + { + "input": "https://test:@test", + "base": "about:blank", + "href": "https://test@test/", + "origin": "https://test", + "protocol": "https:", + "username": "test", + "password": "", + "host": "test", + "hostname": "test", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https://:@test", + "base": "about:blank", + "href": "https://test/", + "origin": "https://test", + "protocol": "https:", + "username": "", + "password": "", + "host": "test", + "hostname": "test", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "non-special://test:@test/x", + "base": "about:blank", + "href": "non-special://test@test/x", + "origin": "null", + "protocol": "non-special:", + "username": "test", + "password": "", + "host": "test", + "hostname": "test", + "port": "", + "pathname": "/x", + "search": "", + "hash": "" + }, + { + "input": "non-special://:@test/x", + "base": "about:blank", + "href": "non-special://test/x", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "test", + "hostname": "test", + "port": "", + "pathname": "/x", + "search": "", + "hash": "" + }, + { + "input": "http:foo.com", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/foo.com", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/foo.com", + "search": "", + "hash": "" + }, + { + "input": "\t :foo.com \n", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:foo.com", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:foo.com", + "search": "", + "hash": "" + }, + { + "input": " foo.com ", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/foo.com", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/foo.com", + "search": "", + "hash": "" + }, + { + "input": "a:\t foo.com", + "base": "http://example.org/foo/bar", + "href": "a: foo.com", + "origin": "null", + "protocol": "a:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": " foo.com", + "search": "", + "hash": "" + }, + { + "input": "http://f:21/ b ? d # e ", + "base": "http://example.org/foo/bar", + "href": "http://f:21/%20b%20?%20d%20# e", + "origin": "http://f:21", + "protocol": "http:", + "username": "", + "password": "", + "host": "f:21", + "hostname": "f", + "port": "21", + "pathname": "/%20b%20", + "search": "?%20d%20", + "hash": "# e" + }, + { + "input": "lolscheme:x x#x x", + "base": "about:blank", + "href": "lolscheme:x x#x x", + "protocol": "lolscheme:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "x x", + "search": "", + "hash": "#x x" + }, + { + "input": "http://f:/c", + "base": "http://example.org/foo/bar", + "href": "http://f/c", + "origin": "http://f", + "protocol": "http:", + "username": "", + "password": "", + "host": "f", + "hostname": "f", + "port": "", + "pathname": "/c", + "search": "", + "hash": "" + }, + { + "input": "http://f:0/c", + "base": "http://example.org/foo/bar", + "href": "http://f:0/c", + "origin": "http://f:0", + "protocol": "http:", + "username": "", + "password": "", + "host": "f:0", + "hostname": "f", + "port": "0", + "pathname": "/c", + "search": "", + "hash": "" + }, + { + "input": "http://f:00000000000000/c", + "base": "http://example.org/foo/bar", + "href": "http://f:0/c", + "origin": "http://f:0", + "protocol": "http:", + "username": "", + "password": "", + "host": "f:0", + "hostname": "f", + "port": "0", + "pathname": "/c", + "search": "", + "hash": "" + }, + { + "input": "http://f:00000000000000000000080/c", + "base": "http://example.org/foo/bar", + "href": "http://f/c", + "origin": "http://f", + "protocol": "http:", + "username": "", + "password": "", + "host": "f", + "hostname": "f", + "port": "", + "pathname": "/c", + "search": "", + "hash": "" + }, + { + "input": "http://f:b/c", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://f: /c", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://f:\n/c", + "base": "http://example.org/foo/bar", + "href": "http://f/c", + "origin": "http://f", + "protocol": "http:", + "username": "", + "password": "", + "host": "f", + "hostname": "f", + "port": "", + "pathname": "/c", + "search": "", + "hash": "" + }, + { + "input": "http://f:fifty-two/c", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://f:999999/c", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "non-special://f:999999/c", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://f: 21 / b ? d # e ", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "" + }, + { + "input": " \t", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "" + }, + { + "input": ":foo.com/", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:foo.com/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:foo.com/", + "search": "", + "hash": "" + }, + { + "input": ":foo.com\\", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:foo.com/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:foo.com/", + "search": "", + "hash": "" + }, + { + "input": ":", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:", + "search": "", + "hash": "" + }, + { + "input": ":a", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:a", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:a", + "search": "", + "hash": "" + }, + { + "input": ":/", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:/", + "search": "", + "hash": "" + }, + { + "input": ":\\", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:/", + "search": "", + "hash": "" + }, + { + "input": ":#", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:#", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:", + "search": "", + "hash": "" + }, + { + "input": "#", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar#", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "" + }, + { + "input": "#/", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar#/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "#/" + }, + { + "input": "#\\", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar#\\", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "#\\" + }, + { + "input": "#;?", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar#;?", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "#;?" + }, + { + "input": "?", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar?", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "" + }, + { + "input": "/", + "base": "http://example.org/foo/bar", + "href": "http://example.org/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": ":23", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:23", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:23", + "search": "", + "hash": "" + }, + { + "input": "/:23", + "base": "http://example.org/foo/bar", + "href": "http://example.org/:23", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/:23", + "search": "", + "hash": "" + }, + { + "input": "::", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/::", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/::", + "search": "", + "hash": "" + }, + { + "input": "::23", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/::23", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/::23", + "search": "", + "hash": "" + }, + { + "input": "foo://", + "base": "http://example.org/foo/bar", + "href": "foo://", + "origin": "null", + "protocol": "foo:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "", + "search": "", + "hash": "" + }, + { + "input": "http://a:b@c:29/d", + "base": "http://example.org/foo/bar", + "href": "http://a:b@c:29/d", + "origin": "http://c:29", + "protocol": "http:", + "username": "a", + "password": "b", + "host": "c:29", + "hostname": "c", + "port": "29", + "pathname": "/d", + "search": "", + "hash": "" + }, + { + "input": "http::@c:29", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/:@c:29", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/:@c:29", + "search": "", + "hash": "" + }, + { + "input": "http://&a:foo(b]c@d:2/", + "base": "http://example.org/foo/bar", + "href": "http://&a:foo(b%5Dc@d:2/", + "origin": "http://d:2", + "protocol": "http:", + "username": "&a", + "password": "foo(b%5Dc", + "host": "d:2", + "hostname": "d", + "port": "2", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://::@c@d:2", + "base": "http://example.org/foo/bar", + "href": "http://:%3A%40c@d:2/", + "origin": "http://d:2", + "protocol": "http:", + "username": "", + "password": "%3A%40c", + "host": "d:2", + "hostname": "d", + "port": "2", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://foo.com:b@d/", + "base": "http://example.org/foo/bar", + "href": "http://foo.com:b@d/", + "origin": "http://d", + "protocol": "http:", + "username": "foo.com", + "password": "b", + "host": "d", + "hostname": "d", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://foo.com/\\@", + "base": "http://example.org/foo/bar", + "href": "http://foo.com//@", + "origin": "http://foo.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo.com", + "hostname": "foo.com", + "port": "", + "pathname": "//@", + "search": "", + "hash": "" + }, + { + "input": "http:\\\\foo.com\\", + "base": "http://example.org/foo/bar", + "href": "http://foo.com/", + "origin": "http://foo.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo.com", + "hostname": "foo.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:\\\\a\\b:c\\d@foo.com\\", + "base": "http://example.org/foo/bar", + "href": "http://a/b:c/d@foo.com/", + "origin": "http://a", + "protocol": "http:", + "username": "", + "password": "", + "host": "a", + "hostname": "a", + "port": "", + "pathname": "/b:c/d@foo.com/", + "search": "", + "hash": "" + }, + { + "input": "foo:/", + "base": "http://example.org/foo/bar", + "href": "foo:/", + "origin": "null", + "protocol": "foo:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "foo:/bar.com/", + "base": "http://example.org/foo/bar", + "href": "foo:/bar.com/", + "origin": "null", + "protocol": "foo:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/bar.com/", + "search": "", + "hash": "" + }, + { + "input": "foo://///////", + "base": "http://example.org/foo/bar", + "href": "foo://///////", + "origin": "null", + "protocol": "foo:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "///////", + "search": "", + "hash": "" + }, + { + "input": "foo://///////bar.com/", + "base": "http://example.org/foo/bar", + "href": "foo://///////bar.com/", + "origin": "null", + "protocol": "foo:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "///////bar.com/", + "search": "", + "hash": "" + }, + { + "input": "foo:////://///", + "base": "http://example.org/foo/bar", + "href": "foo:////://///", + "origin": "null", + "protocol": "foo:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "//://///", + "search": "", + "hash": "" + }, + { + "input": "c:/foo", + "base": "http://example.org/foo/bar", + "href": "c:/foo", + "origin": "null", + "protocol": "c:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/foo", + "search": "", + "hash": "" + }, + { + "input": "//foo/bar", + "base": "http://example.org/foo/bar", + "href": "http://foo/bar", + "origin": "http://foo", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/bar", + "search": "", + "hash": "" + }, + { + "input": "http://foo/path;a??e#f#g", + "base": "http://example.org/foo/bar", + "href": "http://foo/path;a??e#f#g", + "origin": "http://foo", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/path;a", + "search": "??e", + "hash": "#f#g" + }, + { + "input": "http://foo/abcd?efgh?ijkl", + "base": "http://example.org/foo/bar", + "href": "http://foo/abcd?efgh?ijkl", + "origin": "http://foo", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/abcd", + "search": "?efgh?ijkl", + "hash": "" + }, + { + "input": "http://foo/abcd#foo?bar", + "base": "http://example.org/foo/bar", + "href": "http://foo/abcd#foo?bar", + "origin": "http://foo", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/abcd", + "search": "", + "hash": "#foo?bar" + }, + { + "input": "[61:24:74]:98", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/[61:24:74]:98", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/[61:24:74]:98", + "search": "", + "hash": "" + }, + { + "input": "http:[61:27]/:foo", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/[61:27]/:foo", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/[61:27]/:foo", + "search": "", + "hash": "" + }, + { + "input": "http://[1::2]:3:4", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://2001::1", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://2001::1]", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://2001::1]:80", + "base": "http://example.org/foo/bar", + "failure": true + }, + { + "input": "http://[2001::1]", + "base": "http://example.org/foo/bar", + "href": "http://[2001::1]/", + "origin": "http://[2001::1]", + "protocol": "http:", + "username": "", + "password": "", + "host": "[2001::1]", + "hostname": "[2001::1]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://[::127.0.0.1]", + "base": "http://example.org/foo/bar", + "href": "http://[::7f00:1]/", + "origin": "http://[::7f00:1]", + "protocol": "http:", + "username": "", + "password": "", + "host": "[::7f00:1]", + "hostname": "[::7f00:1]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://[0:0:0:0:0:0:13.1.68.3]", + "base": "http://example.org/foo/bar", + "href": "http://[::d01:4403]/", + "origin": "http://[::d01:4403]", + "protocol": "http:", + "username": "", + "password": "", + "host": "[::d01:4403]", + "hostname": "[::d01:4403]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://[2001::1]:80", + "base": "http://example.org/foo/bar", + "href": "http://[2001::1]/", + "origin": "http://[2001::1]", + "protocol": "http:", + "username": "", + "password": "", + "host": "[2001::1]", + "hostname": "[2001::1]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/example.com/", + "base": "http://example.org/foo/bar", + "href": "http://example.org/example.com/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "ftp:/example.com/", + "base": "http://example.org/foo/bar", + "href": "ftp://example.com/", + "origin": "ftp://example.com", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https:/example.com/", + "base": "http://example.org/foo/bar", + "href": "https://example.com/", + "origin": "https://example.com", + "protocol": "https:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "madeupscheme:/example.com/", + "base": "http://example.org/foo/bar", + "href": "madeupscheme:/example.com/", + "origin": "null", + "protocol": "madeupscheme:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "file:/example.com/", + "base": "http://example.org/foo/bar", + "href": "file:///example.com/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "file://example:1/", + "base": "about:blank", + "failure": true + }, + { + "input": "file://example:test/", + "base": "about:blank", + "failure": true + }, + { + "input": "file://example%/", + "base": "about:blank", + "failure": true + }, + { + "input": "file://[example]/", + "base": "about:blank", + "failure": true + }, + { + "input": "ftps:/example.com/", + "base": "http://example.org/foo/bar", + "href": "ftps:/example.com/", + "origin": "null", + "protocol": "ftps:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "gopher:/example.com/", + "base": "http://example.org/foo/bar", + "href": "gopher://example.com/", + "origin": "gopher://example.com", + "protocol": "gopher:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws:/example.com/", + "base": "http://example.org/foo/bar", + "href": "ws://example.com/", + "origin": "ws://example.com", + "protocol": "ws:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss:/example.com/", + "base": "http://example.org/foo/bar", + "href": "wss://example.com/", + "origin": "wss://example.com", + "protocol": "wss:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "data:/example.com/", + "base": "http://example.org/foo/bar", + "href": "data:/example.com/", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "javascript:/example.com/", + "base": "http://example.org/foo/bar", + "href": "javascript:/example.com/", + "origin": "null", + "protocol": "javascript:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "mailto:/example.com/", + "base": "http://example.org/foo/bar", + "href": "mailto:/example.com/", + "origin": "null", + "protocol": "mailto:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "http:example.com/", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/example.com/", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/example.com/", + "search": "", + "hash": "" + }, + { + "input": "ftp:example.com/", + "base": "http://example.org/foo/bar", + "href": "ftp://example.com/", + "origin": "ftp://example.com", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https:example.com/", + "base": "http://example.org/foo/bar", + "href": "https://example.com/", + "origin": "https://example.com", + "protocol": "https:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "madeupscheme:example.com/", + "base": "http://example.org/foo/bar", + "href": "madeupscheme:example.com/", + "origin": "null", + "protocol": "madeupscheme:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "ftps:example.com/", + "base": "http://example.org/foo/bar", + "href": "ftps:example.com/", + "origin": "null", + "protocol": "ftps:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "gopher:example.com/", + "base": "http://example.org/foo/bar", + "href": "gopher://example.com/", + "origin": "gopher://example.com", + "protocol": "gopher:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws:example.com/", + "base": "http://example.org/foo/bar", + "href": "ws://example.com/", + "origin": "ws://example.com", + "protocol": "ws:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss:example.com/", + "base": "http://example.org/foo/bar", + "href": "wss://example.com/", + "origin": "wss://example.com", + "protocol": "wss:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "data:example.com/", + "base": "http://example.org/foo/bar", + "href": "data:example.com/", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "javascript:example.com/", + "base": "http://example.org/foo/bar", + "href": "javascript:example.com/", + "origin": "null", + "protocol": "javascript:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "mailto:example.com/", + "base": "http://example.org/foo/bar", + "href": "mailto:example.com/", + "origin": "null", + "protocol": "mailto:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "/a/b/c", + "base": "http://example.org/foo/bar", + "href": "http://example.org/a/b/c", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/a/b/c", + "search": "", + "hash": "" + }, + { + "input": "/a/ /c", + "base": "http://example.org/foo/bar", + "href": "http://example.org/a/%20/c", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/a/%20/c", + "search": "", + "hash": "" + }, + { + "input": "/a%2fc", + "base": "http://example.org/foo/bar", + "href": "http://example.org/a%2fc", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/a%2fc", + "search": "", + "hash": "" + }, + { + "input": "/a/%2f/c", + "base": "http://example.org/foo/bar", + "href": "http://example.org/a/%2f/c", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/a/%2f/c", + "search": "", + "hash": "" + }, + { + "input": "#β", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar#%CE%B2", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "#%CE%B2" + }, + { + "input": "data:text/html,test#test", + "base": "http://example.org/foo/bar", + "href": "data:text/html,test#test", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "text/html,test", + "search": "", + "hash": "#test" + }, + { + "input": "tel:1234567890", + "base": "http://example.org/foo/bar", + "href": "tel:1234567890", + "origin": "null", + "protocol": "tel:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "1234567890", + "search": "", + "hash": "" + }, + "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/file.html", + { + "input": "file:c:\\foo\\bar.html", + "base": "file:///tmp/mock/path", + "href": "file:///c:/foo/bar.html", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/c:/foo/bar.html", + "search": "", + "hash": "" + }, + { + "input": " File:c|////foo\\bar.html", + "base": "file:///tmp/mock/path", + "href": "file:///c:////foo/bar.html", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/c:////foo/bar.html", + "search": "", + "hash": "" + }, + { + "input": "C|/foo/bar", + "base": "file:///tmp/mock/path", + "href": "file:///C:/foo/bar", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/foo/bar", + "search": "", + "hash": "" + }, + { + "input": "/C|\\foo\\bar", + "base": "file:///tmp/mock/path", + "href": "file:///C:/foo/bar", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/foo/bar", + "search": "", + "hash": "" + }, + { + "input": "//C|/foo/bar", + "base": "file:///tmp/mock/path", + "href": "file:///C:/foo/bar", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/foo/bar", + "search": "", + "hash": "" + }, + { + "input": "//server/file", + "base": "file:///tmp/mock/path", + "href": "file://server/file", + "protocol": "file:", + "username": "", + "password": "", + "host": "server", + "hostname": "server", + "port": "", + "pathname": "/file", + "search": "", + "hash": "" + }, + { + "input": "\\\\server\\file", + "base": "file:///tmp/mock/path", + "href": "file://server/file", + "protocol": "file:", + "username": "", + "password": "", + "host": "server", + "hostname": "server", + "port": "", + "pathname": "/file", + "search": "", + "hash": "" + }, + { + "input": "/\\server/file", + "base": "file:///tmp/mock/path", + "href": "file://server/file", + "protocol": "file:", + "username": "", + "password": "", + "host": "server", + "hostname": "server", + "port": "", + "pathname": "/file", + "search": "", + "hash": "" + }, + { + "input": "file:///foo/bar.txt", + "base": "file:///tmp/mock/path", + "href": "file:///foo/bar.txt", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/foo/bar.txt", + "search": "", + "hash": "" + }, + { + "input": "file:///home/me", + "base": "file:///tmp/mock/path", + "href": "file:///home/me", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/home/me", + "search": "", + "hash": "" + }, + { + "input": "//", + "base": "file:///tmp/mock/path", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "///", + "base": "file:///tmp/mock/path", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "///test", + "base": "file:///tmp/mock/path", + "href": "file:///test", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "", + "hash": "" + }, + { + "input": "file://test", + "base": "file:///tmp/mock/path", + "href": "file://test/", + "protocol": "file:", + "username": "", + "password": "", + "host": "test", + "hostname": "test", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file://localhost", + "base": "file:///tmp/mock/path", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file://localhost/", + "base": "file:///tmp/mock/path", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file://localhost/test", + "base": "file:///tmp/mock/path", + "href": "file:///test", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "", + "hash": "" + }, + { + "input": "test", + "base": "file:///tmp/mock/path", + "href": "file:///tmp/mock/test", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/tmp/mock/test", + "search": "", + "hash": "" + }, + { + "input": "file:test", + "base": "file:///tmp/mock/path", + "href": "file:///tmp/mock/test", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/tmp/mock/test", + "search": "", + "hash": "" + }, + "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/path.js", + { + "input": "http://example.com/././foo", + "base": "about:blank", + "href": "http://example.com/foo", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/./.foo", + "base": "about:blank", + "href": "http://example.com/.foo", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/.foo", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/.", + "base": "about:blank", + "href": "http://example.com/foo/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/./", + "base": "about:blank", + "href": "http://example.com/foo/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/bar/..", + "base": "about:blank", + "href": "http://example.com/foo/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/bar/../", + "base": "about:blank", + "href": "http://example.com/foo/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/..bar", + "base": "about:blank", + "href": "http://example.com/foo/..bar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/..bar", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/bar/../ton", + "base": "about:blank", + "href": "http://example.com/foo/ton", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/ton", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/bar/../ton/../../a", + "base": "about:blank", + "href": "http://example.com/a", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/a", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/../../..", + "base": "about:blank", + "href": "http://example.com/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/../../../ton", + "base": "about:blank", + "href": "http://example.com/ton", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/ton", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/%2e", + "base": "about:blank", + "href": "http://example.com/foo/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/%2e%2", + "base": "about:blank", + "href": "http://example.com/foo/%2e%2", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/%2e%2", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar", + "base": "about:blank", + "href": "http://example.com/%2e.bar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%2e.bar", + "search": "", + "hash": "" + }, + { + "input": "http://example.com////../..", + "base": "about:blank", + "href": "http://example.com//", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "//", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/bar//../..", + "base": "about:blank", + "href": "http://example.com/foo/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo/bar//..", + "base": "about:blank", + "href": "http://example.com/foo/bar/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo/bar/", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo", + "base": "about:blank", + "href": "http://example.com/foo", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/%20foo", + "base": "about:blank", + "href": "http://example.com/%20foo", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%20foo", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo%", + "base": "about:blank", + "href": "http://example.com/foo%", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo%2", + "base": "about:blank", + "href": "http://example.com/foo%2", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%2", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo%2zbar", + "base": "about:blank", + "href": "http://example.com/foo%2zbar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%2zbar", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo%2©zbar", + "base": "about:blank", + "href": "http://example.com/foo%2%C3%82%C2%A9zbar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%2%C3%82%C2%A9zbar", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo%41%7a", + "base": "about:blank", + "href": "http://example.com/foo%41%7a", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%41%7a", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo\t\u0091%91", + "base": "about:blank", + "href": "http://example.com/foo%C2%91%91", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%C2%91%91", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo%00%51", + "base": "about:blank", + "href": "http://example.com/foo%00%51", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foo%00%51", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/(%28:%3A%29)", + "base": "about:blank", + "href": "http://example.com/(%28:%3A%29)", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/(%28:%3A%29)", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/%3A%3a%3C%3c", + "base": "about:blank", + "href": "http://example.com/%3A%3a%3C%3c", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%3A%3a%3C%3c", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/foo\tbar", + "base": "about:blank", + "href": "http://example.com/foobar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/foobar", + "search": "", + "hash": "" + }, + { + "input": "http://example.com\\\\foo\\\\bar", + "base": "about:blank", + "href": "http://example.com//foo//bar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "//foo//bar", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd", + "base": "about:blank", + "href": "http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%7Ffp3%3Eju%3Dduvgw%3Dd", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/@asdf%40", + "base": "about:blank", + "href": "http://example.com/@asdf%40", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/@asdf%40", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/你好你好", + "base": "about:blank", + "href": "http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD", + "search": "", + "hash": "" + }, + { + "input": "http://example.com/‥/foo", + "base": "about:blank", + "href": "http://example.com/%E2%80%A5/foo", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%E2%80%A5/foo", + "search": "", + "hash": "" + }, + { + "input": "http://example.com//foo", + "base": "about:blank", + "href": "http://example.com/%EF%BB%BF/foo", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%EF%BB%BF/foo", + "search": "", + "hash": "" + }, + { + "input": "http://example.com//foo//bar", + "base": "about:blank", + "href": "http://example.com/%E2%80%AE/foo/%E2%80%AD/bar", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/%E2%80%AE/foo/%E2%80%AD/bar", + "search": "", + "hash": "" + }, + "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/relative.js", + { + "input": "http://www.google.com/foo?bar=baz#", + "base": "about:blank", + "href": "http://www.google.com/foo?bar=baz#", + "origin": "http://www.google.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.google.com", + "hostname": "www.google.com", + "port": "", + "pathname": "/foo", + "search": "?bar=baz", + "hash": "" + }, + { + "input": "http://www.google.com/foo?bar=baz# »", + "base": "about:blank", + "href": "http://www.google.com/foo?bar=baz# %C2%BB", + "origin": "http://www.google.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.google.com", + "hostname": "www.google.com", + "port": "", + "pathname": "/foo", + "search": "?bar=baz", + "hash": "# %C2%BB" + }, + { + "input": "data:test# »", + "base": "about:blank", + "href": "data:test# %C2%BB", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "test", + "search": "", + "hash": "# %C2%BB" + }, + { + "input": "http://www.google.com", + "base": "about:blank", + "href": "http://www.google.com/", + "origin": "http://www.google.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.google.com", + "hostname": "www.google.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://192.0x00A80001", + "base": "about:blank", + "href": "http://192.168.0.1/", + "origin": "http://192.168.0.1", + "protocol": "http:", + "username": "", + "password": "", + "host": "192.168.0.1", + "hostname": "192.168.0.1", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://www/foo%2Ehtml", + "base": "about:blank", + "href": "http://www/foo%2Ehtml", + "origin": "http://www", + "protocol": "http:", + "username": "", + "password": "", + "host": "www", + "hostname": "www", + "port": "", + "pathname": "/foo%2Ehtml", + "search": "", + "hash": "" + }, + { + "input": "http://www/foo/%2E/html", + "base": "about:blank", + "href": "http://www/foo/html", + "origin": "http://www", + "protocol": "http:", + "username": "", + "password": "", + "host": "www", + "hostname": "www", + "port": "", + "pathname": "/foo/html", + "search": "", + "hash": "" + }, + { + "input": "http://user:pass@/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://%25DOMAIN:foobar@foodomain.com/", + "base": "about:blank", + "href": "http://%25DOMAIN:foobar@foodomain.com/", + "origin": "http://foodomain.com", + "protocol": "http:", + "username": "%25DOMAIN", + "password": "foobar", + "host": "foodomain.com", + "hostname": "foodomain.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:\\\\www.google.com\\foo", + "base": "about:blank", + "href": "http://www.google.com/foo", + "origin": "http://www.google.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.google.com", + "hostname": "www.google.com", + "port": "", + "pathname": "/foo", + "search": "", + "hash": "" + }, + { + "input": "http://foo:80/", + "base": "about:blank", + "href": "http://foo/", + "origin": "http://foo", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://foo:81/", + "base": "about:blank", + "href": "http://foo:81/", + "origin": "http://foo:81", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo:81", + "hostname": "foo", + "port": "81", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "httpa://foo:80/", + "base": "about:blank", + "href": "httpa://foo:80/", + "origin": "null", + "protocol": "httpa:", + "username": "", + "password": "", + "host": "foo:80", + "hostname": "foo", + "port": "80", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://foo:-80/", + "base": "about:blank", + "failure": true + }, + { + "input": "https://foo:443/", + "base": "about:blank", + "href": "https://foo/", + "origin": "https://foo", + "protocol": "https:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https://foo:80/", + "base": "about:blank", + "href": "https://foo:80/", + "origin": "https://foo:80", + "protocol": "https:", + "username": "", + "password": "", + "host": "foo:80", + "hostname": "foo", + "port": "80", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ftp://foo:21/", + "base": "about:blank", + "href": "ftp://foo/", + "origin": "ftp://foo", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ftp://foo:80/", + "base": "about:blank", + "href": "ftp://foo:80/", + "origin": "ftp://foo:80", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "foo:80", + "hostname": "foo", + "port": "80", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "gopher://foo:70/", + "base": "about:blank", + "href": "gopher://foo/", + "origin": "gopher://foo", + "protocol": "gopher:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "gopher://foo:443/", + "base": "about:blank", + "href": "gopher://foo:443/", + "origin": "gopher://foo:443", + "protocol": "gopher:", + "username": "", + "password": "", + "host": "foo:443", + "hostname": "foo", + "port": "443", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws://foo:80/", + "base": "about:blank", + "href": "ws://foo/", + "origin": "ws://foo", + "protocol": "ws:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws://foo:81/", + "base": "about:blank", + "href": "ws://foo:81/", + "origin": "ws://foo:81", + "protocol": "ws:", + "username": "", + "password": "", + "host": "foo:81", + "hostname": "foo", + "port": "81", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws://foo:443/", + "base": "about:blank", + "href": "ws://foo:443/", + "origin": "ws://foo:443", + "protocol": "ws:", + "username": "", + "password": "", + "host": "foo:443", + "hostname": "foo", + "port": "443", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws://foo:815/", + "base": "about:blank", + "href": "ws://foo:815/", + "origin": "ws://foo:815", + "protocol": "ws:", + "username": "", + "password": "", + "host": "foo:815", + "hostname": "foo", + "port": "815", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss://foo:80/", + "base": "about:blank", + "href": "wss://foo:80/", + "origin": "wss://foo:80", + "protocol": "wss:", + "username": "", + "password": "", + "host": "foo:80", + "hostname": "foo", + "port": "80", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss://foo:81/", + "base": "about:blank", + "href": "wss://foo:81/", + "origin": "wss://foo:81", + "protocol": "wss:", + "username": "", + "password": "", + "host": "foo:81", + "hostname": "foo", + "port": "81", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss://foo:443/", + "base": "about:blank", + "href": "wss://foo/", + "origin": "wss://foo", + "protocol": "wss:", + "username": "", + "password": "", + "host": "foo", + "hostname": "foo", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss://foo:815/", + "base": "about:blank", + "href": "wss://foo:815/", + "origin": "wss://foo:815", + "protocol": "wss:", + "username": "", + "password": "", + "host": "foo:815", + "hostname": "foo", + "port": "815", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/example.com/", + "base": "about:blank", + "href": "http://example.com/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ftp:/example.com/", + "base": "about:blank", + "href": "ftp://example.com/", + "origin": "ftp://example.com", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https:/example.com/", + "base": "about:blank", + "href": "https://example.com/", + "origin": "https://example.com", + "protocol": "https:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "madeupscheme:/example.com/", + "base": "about:blank", + "href": "madeupscheme:/example.com/", + "origin": "null", + "protocol": "madeupscheme:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "file:/example.com/", + "base": "about:blank", + "href": "file:///example.com/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "ftps:/example.com/", + "base": "about:blank", + "href": "ftps:/example.com/", + "origin": "null", + "protocol": "ftps:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "gopher:/example.com/", + "base": "about:blank", + "href": "gopher://example.com/", + "origin": "gopher://example.com", + "protocol": "gopher:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws:/example.com/", + "base": "about:blank", + "href": "ws://example.com/", + "origin": "ws://example.com", + "protocol": "ws:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss:/example.com/", + "base": "about:blank", + "href": "wss://example.com/", + "origin": "wss://example.com", + "protocol": "wss:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "data:/example.com/", + "base": "about:blank", + "href": "data:/example.com/", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "javascript:/example.com/", + "base": "about:blank", + "href": "javascript:/example.com/", + "origin": "null", + "protocol": "javascript:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "mailto:/example.com/", + "base": "about:blank", + "href": "mailto:/example.com/", + "origin": "null", + "protocol": "mailto:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/example.com/", + "search": "", + "hash": "" + }, + { + "input": "http:example.com/", + "base": "about:blank", + "href": "http://example.com/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ftp:example.com/", + "base": "about:blank", + "href": "ftp://example.com/", + "origin": "ftp://example.com", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https:example.com/", + "base": "about:blank", + "href": "https://example.com/", + "origin": "https://example.com", + "protocol": "https:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "madeupscheme:example.com/", + "base": "about:blank", + "href": "madeupscheme:example.com/", + "origin": "null", + "protocol": "madeupscheme:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "ftps:example.com/", + "base": "about:blank", + "href": "ftps:example.com/", + "origin": "null", + "protocol": "ftps:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "gopher:example.com/", + "base": "about:blank", + "href": "gopher://example.com/", + "origin": "gopher://example.com", + "protocol": "gopher:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ws:example.com/", + "base": "about:blank", + "href": "ws://example.com/", + "origin": "ws://example.com", + "protocol": "ws:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "wss:example.com/", + "base": "about:blank", + "href": "wss://example.com/", + "origin": "wss://example.com", + "protocol": "wss:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "data:example.com/", + "base": "about:blank", + "href": "data:example.com/", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "javascript:example.com/", + "base": "about:blank", + "href": "javascript:example.com/", + "origin": "null", + "protocol": "javascript:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + { + "input": "mailto:example.com/", + "base": "about:blank", + "href": "mailto:example.com/", + "origin": "null", + "protocol": "mailto:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "example.com/", + "search": "", + "hash": "" + }, + "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/segments-userinfo-vs-host.html", + { + "input": "http:@www.example.com", + "base": "about:blank", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/@www.example.com", + "base": "about:blank", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://@www.example.com", + "base": "about:blank", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:a:b@www.example.com", + "base": "about:blank", + "href": "http://a:b@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "a", + "password": "b", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/a:b@www.example.com", + "base": "about:blank", + "href": "http://a:b@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "a", + "password": "b", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://a:b@www.example.com", + "base": "about:blank", + "href": "http://a:b@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "a", + "password": "b", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://@pple.com", + "base": "about:blank", + "href": "http://pple.com/", + "origin": "http://pple.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "pple.com", + "hostname": "pple.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http::b@www.example.com", + "base": "about:blank", + "href": "http://:b@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "b", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/:b@www.example.com", + "base": "about:blank", + "href": "http://:b@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "b", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://:b@www.example.com", + "base": "about:blank", + "href": "http://:b@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "b", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/:@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http://user@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http:@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http:/@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http://@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "https:@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http:a:b@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http:/a:b@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http://a:b@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http::@/www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http:a:@www.example.com", + "base": "about:blank", + "href": "http://a@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "a", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:/a:@www.example.com", + "base": "about:blank", + "href": "http://a@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "a", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://a:@www.example.com", + "base": "about:blank", + "href": "http://a@www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "a", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://www.@pple.com", + "base": "about:blank", + "href": "http://www.@pple.com/", + "origin": "http://pple.com", + "protocol": "http:", + "username": "www.", + "password": "", + "host": "pple.com", + "hostname": "pple.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http:@:www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http:/@:www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http://@:www.example.com", + "base": "about:blank", + "failure": true + }, + { + "input": "http://:@www.example.com", + "base": "about:blank", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "# Others", + { + "input": "/", + "base": "http://www.example.com/test", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "/test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/test.txt", + "search": "", + "hash": "" + }, + { + "input": ".", + "base": "http://www.example.com/test", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "..", + "base": "http://www.example.com/test", + "href": "http://www.example.com/", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/test.txt", + "search": "", + "hash": "" + }, + { + "input": "./test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/test.txt", + "search": "", + "hash": "" + }, + { + "input": "../test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/test.txt", + "search": "", + "hash": "" + }, + { + "input": "../aaa/test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/aaa/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/aaa/test.txt", + "search": "", + "hash": "" + }, + { + "input": "../../test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/test.txt", + "search": "", + "hash": "" + }, + { + "input": "中/test.txt", + "base": "http://www.example.com/test", + "href": "http://www.example.com/%E4%B8%AD/test.txt", + "origin": "http://www.example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example.com", + "hostname": "www.example.com", + "port": "", + "pathname": "/%E4%B8%AD/test.txt", + "search": "", + "hash": "" + }, + { + "input": "http://www.example2.com", + "base": "http://www.example.com/test", + "href": "http://www.example2.com/", + "origin": "http://www.example2.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example2.com", + "hostname": "www.example2.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "//www.example2.com", + "base": "http://www.example.com/test", + "href": "http://www.example2.com/", + "origin": "http://www.example2.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.example2.com", + "hostname": "www.example2.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:...", + "base": "http://www.example.com/test", + "href": "file:///...", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/...", + "search": "", + "hash": "" + }, + { + "input": "file:..", + "base": "http://www.example.com/test", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:a", + "base": "http://www.example.com/test", + "href": "file:///a", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/a", + "search": "", + "hash": "" + }, + "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/host.html", + "Basic canonicalization, uppercase should be converted to lowercase", + { + "input": "http://ExAmPlE.CoM", + "base": "http://other.com/", + "href": "http://example.com/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://example example.com", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://Goo%20 goo%7C|.com", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://[]", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://[:]", + "base": "http://other.com/", + "failure": true + }, + "U+3000 is mapped to U+0020 (space) which is disallowed", + { + "input": "http://GOO\u00a0\u3000goo.com", + "base": "http://other.com/", + "failure": true + }, + "Other types of space (no-break, zero-width, zero-width-no-break) are name-prepped away to nothing. U+200B, U+2060, and U+FEFF, are ignored", + { + "input": "http://GOO\u200b\u2060\ufeffgoo.com", + "base": "http://other.com/", + "href": "http://googoo.com/", + "origin": "http://googoo.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "googoo.com", + "hostname": "googoo.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "Ideographic full stop (full-width period for Chinese, etc.) should be treated as a dot. U+3002 is mapped to U+002E (dot)", + { + "input": "http://www.foo。bar.com", + "base": "http://other.com/", + "href": "http://www.foo.bar.com/", + "origin": "http://www.foo.bar.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "www.foo.bar.com", + "hostname": "www.foo.bar.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "Invalid unicode characters should fail... U+FDD0 is disallowed; %ef%b7%90 is U+FDD0", + { + "input": "http://\ufdd0zyx.com", + "base": "http://other.com/", + "failure": true + }, + "This is the same as previous but escaped", + { + "input": "http://%ef%b7%90zyx.com", + "base": "http://other.com/", + "failure": true + }, + "U+FFFD", + { + "input": "https://\ufffd", + "base": "about:blank", + "failure": true + }, + { + "input": "https://%EF%BF%BD", + "base": "about:blank", + "failure": true + }, + { + "input": "https://x/\ufffd?\ufffd#\ufffd", + "base": "about:blank", + "href": "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD", + "origin": "https://x", + "protocol": "https:", + "username": "", + "password": "", + "host": "x", + "hostname": "x", + "port": "", + "pathname": "/%EF%BF%BD", + "search": "?%EF%BF%BD", + "hash": "#%EF%BF%BD" + }, + "Test name prepping, fullwidth input should be converted to ASCII and NOT IDN-ized. This is 'Go' in fullwidth UTF-8/UTF-16.", + { + "input": "http://Go.com", + "base": "http://other.com/", + "href": "http://go.com/", + "origin": "http://go.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "go.com", + "hostname": "go.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "URL spec forbids the following. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24257", + { + "input": "http://%41.com", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://%ef%bc%85%ef%bc%94%ef%bc%91.com", + "base": "http://other.com/", + "failure": true + }, + "...%00 in fullwidth should fail (also as escaped UTF-8 input)", + { + "input": "http://%00.com", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://%ef%bc%85%ef%bc%90%ef%bc%90.com", + "base": "http://other.com/", + "failure": true + }, + "Basic IDN support, UTF-8 and UTF-16 input should be converted to IDN", + { + "input": "http://你好你好", + "base": "http://other.com/", + "href": "http://xn--6qqa088eba/", + "origin": "http://你好你好", + "protocol": "http:", + "username": "", + "password": "", + "host": "xn--6qqa088eba", + "hostname": "xn--6qqa088eba", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https://faß.ExAmPlE/", + "base": "about:blank", + "href": "https://xn--fa-hia.example/", + "origin": "https://faß.example", + "protocol": "https:", + "username": "", + "password": "", + "host": "xn--fa-hia.example", + "hostname": "xn--fa-hia.example", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "sc://faß.ExAmPlE/", + "base": "about:blank", + "href": "sc://fa%C3%9F.ExAmPlE/", + "protocol": "sc:", + "username": "", + "password": "", + "host": "fa%C3%9F.ExAmPlE", + "hostname": "fa%C3%9F.ExAmPlE", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "Invalid escaped characters should fail and the percents should be escaped. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24191", + { + "input": "http://%zz%66%a.com", + "base": "http://other.com/", + "failure": true + }, + "If we get an invalid character that has been escaped.", + { + "input": "http://%25", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://hello%00", + "base": "http://other.com/", + "failure": true + }, + "Escaped numbers should be treated like IP addresses if they are.", + { + "input": "http://%30%78%63%30%2e%30%32%35%30.01", + "base": "http://other.com/", + "href": "http://192.168.0.1/", + "origin": "http://192.168.0.1", + "protocol": "http:", + "username": "", + "password": "", + "host": "192.168.0.1", + "hostname": "192.168.0.1", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://%30%78%63%30%2e%30%32%35%30.01%2e", + "base": "http://other.com/", + "href": "http://192.168.0.1/", + "origin": "http://192.168.0.1", + "protocol": "http:", + "username": "", + "password": "", + "host": "192.168.0.1", + "hostname": "192.168.0.1", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://192.168.0.257", + "base": "http://other.com/", + "failure": true + }, + "Invalid escaping in hosts causes failure", + { + "input": "http://%3g%78%63%30%2e%30%32%35%30%2E.01", + "base": "http://other.com/", + "failure": true + }, + "A space in a host causes failure", + { + "input": "http://192.168.0.1 hello", + "base": "http://other.com/", + "failure": true + }, + { + "input": "https://x x:12", + "base": "about:blank", + "failure": true + }, + "Fullwidth and escaped UTF-8 fullwidth should still be treated as IP", + { + "input": "http://0Xc0.0250.01", + "base": "http://other.com/", + "href": "http://192.168.0.1/", + "origin": "http://192.168.0.1", + "protocol": "http:", + "username": "", + "password": "", + "host": "192.168.0.1", + "hostname": "192.168.0.1", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "Domains with empty labels", + { + "input": "http://./", + "base": "about:blank", + "href": "http://./", + "origin": "http://.", + "protocol": "http:", + "username": "", + "password": "", + "host": ".", + "hostname": ".", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://../", + "base": "about:blank", + "href": "http://../", + "origin": "http://..", + "protocol": "http:", + "username": "", + "password": "", + "host": "..", + "hostname": "..", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://0..0x300/", + "base": "about:blank", + "href": "http://0..0x300/", + "origin": "http://0..0x300", + "protocol": "http:", + "username": "", + "password": "", + "host": "0..0x300", + "hostname": "0..0x300", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "Broken IPv6", + { + "input": "http://[www.google.com]/", + "base": "about:blank", + "failure": true + }, + { + "input": "http://[google.com]", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://[::1.2.3.4x]", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://[::1.2.3.]", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://[::1.2.]", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://[::1.]", + "base": "http://other.com/", + "failure": true + }, + "Misc Unicode", + { + "input": "http://foo:💩@example.com/bar", + "base": "http://other.com/", + "href": "http://foo:%F0%9F%92%A9@example.com/bar", + "origin": "http://example.com", + "protocol": "http:", + "username": "foo", + "password": "%F0%9F%92%A9", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/bar", + "search": "", + "hash": "" + }, + "# resolving a fragment against any scheme succeeds", + { + "input": "#", + "base": "test:test", + "href": "test:test#", + "origin": "null", + "protocol": "test:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "test", + "search": "", + "hash": "" + }, + { + "input": "#x", + "base": "mailto:x@x.com", + "href": "mailto:x@x.com#x", + "origin": "null", + "protocol": "mailto:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "x@x.com", + "search": "", + "hash": "#x" + }, + { + "input": "#x", + "base": "data:,", + "href": "data:,#x", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": ",", + "search": "", + "hash": "#x" + }, + { + "input": "#x", + "base": "about:blank", + "href": "about:blank#x", + "origin": "null", + "protocol": "about:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "blank", + "search": "", + "hash": "#x" + }, + { + "input": "#", + "base": "test:test?test", + "href": "test:test?test#", + "origin": "null", + "protocol": "test:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "test", + "search": "?test", + "hash": "" + }, + "# multiple @ in authority state", + { + "input": "https://@test@test@example:800/", + "base": "http://doesnotmatter/", + "href": "https://%40test%40test@example:800/", + "origin": "https://example:800", + "protocol": "https:", + "username": "%40test%40test", + "password": "", + "host": "example:800", + "hostname": "example", + "port": "800", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https://@@@example", + "base": "http://doesnotmatter/", + "href": "https://%40%40@example/", + "origin": "https://example", + "protocol": "https:", + "username": "%40%40", + "password": "", + "host": "example", + "hostname": "example", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "non-az-09 characters", + { + "input": "http://`{}:`{}@h/`{}?`{}", + "base": "http://doesnotmatter/", + "href": "http://%60%7B%7D:%60%7B%7D@h/%60%7B%7D?`{}", + "origin": "http://h", + "protocol": "http:", + "username": "%60%7B%7D", + "password": "%60%7B%7D", + "host": "h", + "hostname": "h", + "port": "", + "pathname": "/%60%7B%7D", + "search": "?`{}", + "hash": "" + }, + "# Credentials in base", + { + "input": "/some/path", + "base": "http://user@example.org/smth", + "href": "http://user@example.org/some/path", + "origin": "http://example.org", + "protocol": "http:", + "username": "user", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/some/path", + "search": "", + "hash": "" + }, + { + "input": "", + "base": "http://user:pass@example.org:21/smth", + "href": "http://user:pass@example.org:21/smth", + "origin": "http://example.org:21", + "protocol": "http:", + "username": "user", + "password": "pass", + "host": "example.org:21", + "hostname": "example.org", + "port": "21", + "pathname": "/smth", + "search": "", + "hash": "" + }, + { + "input": "/some/path", + "base": "http://user:pass@example.org:21/smth", + "href": "http://user:pass@example.org:21/some/path", + "origin": "http://example.org:21", + "protocol": "http:", + "username": "user", + "password": "pass", + "host": "example.org:21", + "hostname": "example.org", + "port": "21", + "pathname": "/some/path", + "search": "", + "hash": "" + }, + "# a set of tests designed by zcorpan for relative URLs with unknown schemes", + { + "input": "i", + "base": "sc:sd", + "failure": true + }, + { + "input": "i", + "base": "sc:sd/sd", + "failure": true + }, + { + "input": "i", + "base": "sc:/pa/pa", + "href": "sc:/pa/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pa/i", + "search": "", + "hash": "" + }, + { + "input": "i", + "base": "sc://ho/pa", + "href": "sc://ho/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "ho", + "hostname": "ho", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "i", + "base": "sc:///pa/pa", + "href": "sc:///pa/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pa/i", + "search": "", + "hash": "" + }, + { + "input": "../i", + "base": "sc:sd", + "failure": true + }, + { + "input": "../i", + "base": "sc:sd/sd", + "failure": true + }, + { + "input": "../i", + "base": "sc:/pa/pa", + "href": "sc:/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "../i", + "base": "sc://ho/pa", + "href": "sc://ho/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "ho", + "hostname": "ho", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "../i", + "base": "sc:///pa/pa", + "href": "sc:///i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "/i", + "base": "sc:sd", + "failure": true + }, + { + "input": "/i", + "base": "sc:sd/sd", + "failure": true + }, + { + "input": "/i", + "base": "sc:/pa/pa", + "href": "sc:/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "/i", + "base": "sc://ho/pa", + "href": "sc://ho/i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "ho", + "hostname": "ho", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "/i", + "base": "sc:///pa/pa", + "href": "sc:///i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/i", + "search": "", + "hash": "" + }, + { + "input": "?i", + "base": "sc:sd", + "failure": true + }, + { + "input": "?i", + "base": "sc:sd/sd", + "failure": true + }, + { + "input": "?i", + "base": "sc:/pa/pa", + "href": "sc:/pa/pa?i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pa/pa", + "search": "?i", + "hash": "" + }, + { + "input": "?i", + "base": "sc://ho/pa", + "href": "sc://ho/pa?i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "ho", + "hostname": "ho", + "port": "", + "pathname": "/pa", + "search": "?i", + "hash": "" + }, + { + "input": "?i", + "base": "sc:///pa/pa", + "href": "sc:///pa/pa?i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pa/pa", + "search": "?i", + "hash": "" + }, + { + "input": "#i", + "base": "sc:sd", + "href": "sc:sd#i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "sd", + "search": "", + "hash": "#i" + }, + { + "input": "#i", + "base": "sc:sd/sd", + "href": "sc:sd/sd#i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "sd/sd", + "search": "", + "hash": "#i" + }, + { + "input": "#i", + "base": "sc:/pa/pa", + "href": "sc:/pa/pa#i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pa/pa", + "search": "", + "hash": "#i" + }, + { + "input": "#i", + "base": "sc://ho/pa", + "href": "sc://ho/pa#i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "ho", + "hostname": "ho", + "port": "", + "pathname": "/pa", + "search": "", + "hash": "#i" + }, + { + "input": "#i", + "base": "sc:///pa/pa", + "href": "sc:///pa/pa#i", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pa/pa", + "search": "", + "hash": "#i" + }, + "# make sure that relative URL logic works on known typically non-relative schemes too", + { + "input": "about:/../", + "base": "about:blank", + "href": "about:/", + "origin": "null", + "protocol": "about:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "data:/../", + "base": "about:blank", + "href": "data:/", + "origin": "null", + "protocol": "data:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "javascript:/../", + "base": "about:blank", + "href": "javascript:/", + "origin": "null", + "protocol": "javascript:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "mailto:/../", + "base": "about:blank", + "href": "mailto:/", + "origin": "null", + "protocol": "mailto:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "# unknown schemes and their hosts", + { + "input": "sc://ñ.test/", + "base": "about:blank", + "href": "sc://%C3%B1.test/", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1.test", + "hostname": "%C3%B1.test", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "sc://\u001F!\"$&'()*+,-.;<=>^_`{|}~/", + "base": "about:blank", + "href": "sc://%1F!\"$&'()*+,-.;<=>^_`{|}~/", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%1F!\"$&'()*+,-.;<=>^_`{|}~", + "hostname": "%1F!\"$&'()*+,-.;<=>^_`{|}~", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "sc://\u0000/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc:// /", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://%/", + "base": "about:blank", + "href": "sc://%/", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%", + "hostname": "%", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "sc://@/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://te@s:t@/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://:/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://:12/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://[/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://\\/", + "base": "about:blank", + "failure": true + }, + { + "input": "sc://]/", + "base": "about:blank", + "failure": true + }, + { + "input": "x", + "base": "sc://ñ", + "href": "sc://%C3%B1/x", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1", + "hostname": "%C3%B1", + "port": "", + "pathname": "/x", + "search": "", + "hash": "" + }, + "# unknown schemes and backslashes", + { + "input": "sc:\\../", + "base": "about:blank", + "href": "sc:\\../", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "\\../", + "search": "", + "hash": "" + }, + "# unknown scheme with path looking like a password", + { + "input": "sc::a@example.net", + "base": "about:blank", + "href": "sc::a@example.net", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": ":a@example.net", + "search": "", + "hash": "" + }, + "# unknown scheme with bogus percent-encoding", + { + "input": "wow:%NBD", + "base": "about:blank", + "href": "wow:%NBD", + "origin": "null", + "protocol": "wow:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "%NBD", + "search": "", + "hash": "" + }, + { + "input": "wow:%1G", + "base": "about:blank", + "href": "wow:%1G", + "origin": "null", + "protocol": "wow:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "%1G", + "search": "", + "hash": "" + }, + "# Hosts and percent-encoding", + { + "input": "ftp://example.com%80/", + "base": "about:blank", + "failure": true + }, + { + "input": "ftp://example.com%A0/", + "base": "about:blank", + "failure": true + }, + { + "input": "https://example.com%80/", + "base": "about:blank", + "failure": true + }, + { + "input": "https://example.com%A0/", + "base": "about:blank", + "failure": true + }, + { + "input": "ftp://%e2%98%83", + "base": "about:blank", + "href": "ftp://xn--n3h/", + "origin": "ftp://☃", + "protocol": "ftp:", + "username": "", + "password": "", + "host": "xn--n3h", + "hostname": "xn--n3h", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https://%e2%98%83", + "base": "about:blank", + "href": "https://xn--n3h/", + "origin": "https://☃", + "protocol": "https:", + "username": "", + "password": "", + "host": "xn--n3h", + "hostname": "xn--n3h", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "# tests from jsdom/whatwg-url designed for code coverage", + { + "input": "http://127.0.0.1:10100/relative_import.html", + "base": "about:blank", + "href": "http://127.0.0.1:10100/relative_import.html", + "origin": "http://127.0.0.1:10100", + "protocol": "http:", + "username": "", + "password": "", + "host": "127.0.0.1:10100", + "hostname": "127.0.0.1", + "port": "10100", + "pathname": "/relative_import.html", + "search": "", + "hash": "" + }, + { + "input": "http://facebook.com/?foo=%7B%22abc%22", + "base": "about:blank", + "href": "http://facebook.com/?foo=%7B%22abc%22", + "origin": "http://facebook.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "facebook.com", + "hostname": "facebook.com", + "port": "", + "pathname": "/", + "search": "?foo=%7B%22abc%22", + "hash": "" + }, + { + "input": "https://localhost:3000/jqueryui@1.2.3", + "base": "about:blank", + "href": "https://localhost:3000/jqueryui@1.2.3", + "origin": "https://localhost:3000", + "protocol": "https:", + "username": "", + "password": "", + "host": "localhost:3000", + "hostname": "localhost", + "port": "3000", + "pathname": "/jqueryui@1.2.3", + "search": "", + "hash": "" + }, + "# tab/LF/CR", + { + "input": "h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg", + "base": "about:blank", + "href": "http://host:9000/path?query#frag", + "origin": "http://host:9000", + "protocol": "http:", + "username": "", + "password": "", + "host": "host:9000", + "hostname": "host", + "port": "9000", + "pathname": "/path", + "search": "?query", + "hash": "#frag" + }, + "# Stringification of URL.searchParams", + { + "input": "?a=b&c=d", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar?a=b&c=d", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "?a=b&c=d", + "searchParams": "a=b&c=d", + "hash": "" + }, + { + "input": "??a=b&c=d", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar??a=b&c=d", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "??a=b&c=d", + "searchParams": "%3Fa=b&c=d", + "hash": "" + }, + "# Scheme only", + { + "input": "http:", + "base": "http://example.org/foo/bar", + "href": "http://example.org/foo/bar", + "origin": "http://example.org", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.org", + "hostname": "example.org", + "port": "", + "pathname": "/foo/bar", + "search": "", + "searchParams": "", + "hash": "" + }, + { + "input": "http:", + "base": "https://example.org/foo/bar", + "failure": true + }, + { + "input": "sc:", + "base": "https://example.org/foo/bar", + "href": "sc:", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "", + "search": "", + "searchParams": "", + "hash": "" + }, + "# Percent encoding of fragments", + { + "input": "http://foo.bar/baz?qux#foo\bbar", + "base": "about:blank", + "href": "http://foo.bar/baz?qux#foo%08bar", + "origin": "http://foo.bar", + "protocol": "http:", + "username": "", + "password": "", + "host": "foo.bar", + "hostname": "foo.bar", + "port": "", + "pathname": "/baz", + "search": "?qux", + "searchParams": "qux=", + "hash": "#foo%08bar" + }, + "# IPv4 parsing (via https://github.com/nodejs/node/pull/10317)", + { + "input": "http://192.168.257", + "base": "http://other.com/", + "href": "http://192.168.1.1/", + "origin": "http://192.168.1.1", + "protocol": "http:", + "username": "", + "password": "", + "host": "192.168.1.1", + "hostname": "192.168.1.1", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://192.168.257.com", + "base": "http://other.com/", + "href": "http://192.168.257.com/", + "origin": "http://192.168.257.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "192.168.257.com", + "hostname": "192.168.257.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://256", + "base": "http://other.com/", + "href": "http://0.0.1.0/", + "origin": "http://0.0.1.0", + "protocol": "http:", + "username": "", + "password": "", + "host": "0.0.1.0", + "hostname": "0.0.1.0", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://256.com", + "base": "http://other.com/", + "href": "http://256.com/", + "origin": "http://256.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "256.com", + "hostname": "256.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://999999999", + "base": "http://other.com/", + "href": "http://59.154.201.255/", + "origin": "http://59.154.201.255", + "protocol": "http:", + "username": "", + "password": "", + "host": "59.154.201.255", + "hostname": "59.154.201.255", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://999999999.com", + "base": "http://other.com/", + "href": "http://999999999.com/", + "origin": "http://999999999.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "999999999.com", + "hostname": "999999999.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://10000000000", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://10000000000.com", + "base": "http://other.com/", + "href": "http://10000000000.com/", + "origin": "http://10000000000.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "10000000000.com", + "hostname": "10000000000.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://4294967295", + "base": "http://other.com/", + "href": "http://255.255.255.255/", + "origin": "http://255.255.255.255", + "protocol": "http:", + "username": "", + "password": "", + "host": "255.255.255.255", + "hostname": "255.255.255.255", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://4294967296", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://0xffffffff", + "base": "http://other.com/", + "href": "http://255.255.255.255/", + "origin": "http://255.255.255.255", + "protocol": "http:", + "username": "", + "password": "", + "host": "255.255.255.255", + "hostname": "255.255.255.255", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://0xffffffff1", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://256.256.256.256", + "base": "http://other.com/", + "failure": true + }, + { + "input": "http://256.256.256.256.256", + "base": "http://other.com/", + "href": "http://256.256.256.256.256/", + "origin": "http://256.256.256.256.256", + "protocol": "http:", + "username": "", + "password": "", + "host": "256.256.256.256.256", + "hostname": "256.256.256.256.256", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "https://0x.0x.0", + "base": "about:blank", + "href": "https://0.0.0.0/", + "origin": "https://0.0.0.0", + "protocol": "https:", + "username": "", + "password": "", + "host": "0.0.0.0", + "hostname": "0.0.0.0", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "# file URLs containing percent-encoded Windows drive letters (shouldn't work)", + { + "input": "file:///C%3A/", + "base": "about:blank", + "href": "file:///C%3A/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C%3A/", + "search": "", + "hash": "" + }, + { + "input": "file:///C%7C/", + "base": "about:blank", + "href": "file:///C%7C/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C%7C/", + "search": "", + "hash": "" + }, + "# file URLs relative to other file URLs (via https://github.com/jsdom/whatwg-url/pull/60)", + { + "input": "pix/submit.gif", + "base": "file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html", + "href": "file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif", + "search": "", + "hash": "" + }, + { + "input": "..", + "base": "file:///C:/", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "..", + "base": "file:///", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "# More file URL tests by zcorpan and annevk", + { + "input": "/", + "base": "file:///C:/a/b", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "//d:", + "base": "file:///C:/a/b", + "href": "file:///d:", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/d:", + "search": "", + "hash": "" + }, + { + "input": "//d:/..", + "base": "file:///C:/a/b", + "href": "file:///d:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/d:/", + "search": "", + "hash": "" + }, + { + "input": "..", + "base": "file:///ab:/", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "..", + "base": "file:///1:/", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "", + "base": "file:///test?test#test", + "href": "file:///test?test", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "?test", + "hash": "" + }, + { + "input": "file:", + "base": "file:///test?test#test", + "href": "file:///test?test", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "?test", + "hash": "" + }, + { + "input": "?x", + "base": "file:///test?test#test", + "href": "file:///test?x", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "?x", + "hash": "" + }, + { + "input": "file:?x", + "base": "file:///test?test#test", + "href": "file:///test?x", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "?x", + "hash": "" + }, + { + "input": "#x", + "base": "file:///test?test#test", + "href": "file:///test?test#x", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "?test", + "hash": "#x" + }, + { + "input": "file:#x", + "base": "file:///test?test#test", + "href": "file:///test?test#x", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/test", + "search": "?test", + "hash": "#x" + }, + "# File URLs and many (back)slashes", + { + "input": "file:\\\\//", + "base": "about:blank", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:\\\\\\\\", + "base": "about:blank", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:\\\\\\\\?fox", + "base": "about:blank", + "href": "file:///?fox", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "?fox", + "hash": "" + }, + { + "input": "file:\\\\\\\\#guppy", + "base": "about:blank", + "href": "file:///#guppy", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "#guppy" + }, + { + "input": "file://spider///", + "base": "about:blank", + "href": "file://spider/", + "protocol": "file:", + "username": "", + "password": "", + "host": "spider", + "hostname": "spider", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:\\\\localhost//", + "base": "about:blank", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:///localhost//cat", + "base": "about:blank", + "href": "file:///localhost//cat", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/localhost//cat", + "search": "", + "hash": "" + }, + { + "input": "file://\\/localhost//cat", + "base": "about:blank", + "href": "file:///localhost//cat", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/localhost//cat", + "search": "", + "hash": "" + }, + { + "input": "file://localhost//a//../..//", + "base": "about:blank", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "/////mouse", + "base": "file:///elephant", + "href": "file:///mouse", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/mouse", + "search": "", + "hash": "" + }, + { + "input": "\\//pig", + "base": "file://lion/", + "href": "file:///pig", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pig", + "search": "", + "hash": "" + }, + { + "input": "\\/localhost//pig", + "base": "file://lion/", + "href": "file:///pig", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pig", + "search": "", + "hash": "" + }, + { + "input": "//localhost//pig", + "base": "file://lion/", + "href": "file:///pig", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/pig", + "search": "", + "hash": "" + }, + { + "input": "/..//localhost//pig", + "base": "file://lion/", + "href": "file://lion/localhost//pig", + "protocol": "file:", + "username": "", + "password": "", + "host": "lion", + "hostname": "lion", + "port": "", + "pathname": "/localhost//pig", + "search": "", + "hash": "" + }, + { + "input": "file://", + "base": "file://ape/", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + "# File URLs with non-empty hosts", + { + "input": "/rooibos", + "base": "file://tea/", + "href": "file://tea/rooibos", + "protocol": "file:", + "username": "", + "password": "", + "host": "tea", + "hostname": "tea", + "port": "", + "pathname": "/rooibos", + "search": "", + "hash": "" + }, + { + "input": "/?chai", + "base": "file://tea/", + "href": "file://tea/?chai", + "protocol": "file:", + "username": "", + "password": "", + "host": "tea", + "hostname": "tea", + "port": "", + "pathname": "/", + "search": "?chai", + "hash": "" + }, + "# Windows drive letter handling with the 'file:' base URL", + { + "input": "C|", + "base": "file://host/dir/file", + "href": "file:///C:", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:", + "search": "", + "hash": "" + }, + { + "input": "C|#", + "base": "file://host/dir/file", + "href": "file:///C:#", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:", + "search": "", + "hash": "" + }, + { + "input": "C|?", + "base": "file://host/dir/file", + "href": "file:///C:?", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:", + "search": "", + "hash": "" + }, + { + "input": "C|/", + "base": "file://host/dir/file", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "C|\\", + "base": "file://host/dir/file", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "C", + "base": "file://host/dir/file", + "href": "file://host/dir/C", + "protocol": "file:", + "username": "", + "password": "", + "host": "host", + "hostname": "host", + "port": "", + "pathname": "/dir/C", + "search": "", + "hash": "" + }, + { + "input": "C|a", + "base": "file://host/dir/file", + "href": "file://host/dir/C|a", + "protocol": "file:", + "username": "", + "password": "", + "host": "host", + "hostname": "host", + "port": "", + "pathname": "/dir/C|a", + "search": "", + "hash": "" + }, + "# Windows drive letter quirk with not empty host", + { + "input": "file://example.net/C:/", + "base": "about:blank", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "file://1.2.3.4/C:/", + "base": "about:blank", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "file://[1::8]/C:/", + "base": "about:blank", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + "# Windows drive letter quirk (no host)", + { + "input": "file:/C|/", + "base": "about:blank", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + { + "input": "file://C|/", + "base": "about:blank", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, + "# file URLs without base URL by Rimas Misevičius", + { + "input": "file:", + "base": "about:blank", + "href": "file:///", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "file:?q=v", + "base": "about:blank", + "href": "file:///?q=v", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "?q=v", + "hash": "" + }, + { + "input": "file:#frag", + "base": "about:blank", + "href": "file:///#frag", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "#frag" + }, + "# IPv6 tests", + { + "input": "http://[1:0::]", + "base": "http://example.net/", + "href": "http://[1::]/", + "origin": "http://[1::]", + "protocol": "http:", + "username": "", + "password": "", + "host": "[1::]", + "hostname": "[1::]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "http://[0:1:2:3:4:5:6:7:8]", + "base": "http://example.net/", + "failure": true + }, + { + "input": "https://[0::0::0]", + "base": "about:blank", + "failure": true + }, + { + "input": "https://[0:.0]", + "base": "about:blank", + "failure": true + }, + { + "input": "https://[0:0:]", + "base": "about:blank", + "failure": true + }, + { + "input": "https://[0:1:2:3:4:5:6:7.0.0.0.1]", + "base": "about:blank", + "failure": true + }, + { + "input": "https://[0:1.00.0.0.0]", + "base": "about:blank", + "failure": true + }, + { + "input": "https://[0:1.290.0.0.0]", + "base": "about:blank", + "failure": true + }, + { + "input": "https://[0:1.23.23]", + "base": "about:blank", + "failure": true + }, + "# Empty host", + { + "input": "http://?", + "base": "about:blank", + "failure": true + }, + { + "input": "http://#", + "base": "about:blank", + "failure": true + }, + "# Non-special-URL path tests", + { + "input": "sc://ñ", + "base": "about:blank", + "href": "sc://%C3%B1", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1", + "hostname": "%C3%B1", + "port": "", + "pathname": "", + "search": "", + "hash": "" + }, + { + "input": "sc://ñ?x", + "base": "about:blank", + "href": "sc://%C3%B1?x", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1", + "hostname": "%C3%B1", + "port": "", + "pathname": "", + "search": "?x", + "hash": "" + }, + { + "input": "sc://ñ#x", + "base": "about:blank", + "href": "sc://%C3%B1#x", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1", + "hostname": "%C3%B1", + "port": "", + "pathname": "", + "search": "", + "hash": "#x" + }, + { + "input": "#x", + "base": "sc://ñ", + "href": "sc://%C3%B1#x", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1", + "hostname": "%C3%B1", + "port": "", + "pathname": "", + "search": "", + "hash": "#x" + }, + { + "input": "?x", + "base": "sc://ñ", + "href": "sc://%C3%B1?x", + "origin": "null", + "protocol": "sc:", + "username": "", + "password": "", + "host": "%C3%B1", + "hostname": "%C3%B1", + "port": "", + "pathname": "", + "search": "?x", + "hash": "" + }, + { + "input": "sc://?", + "base": "about:blank", + "href": "sc://?", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "", + "search": "", + "hash": "" + }, + { + "input": "sc://#", + "base": "about:blank", + "href": "sc://#", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "", + "search": "", + "hash": "" + }, + { + "input": "///", + "base": "sc://x/", + "href": "sc:///", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "////", + "base": "sc://x/", + "href": "sc:////", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "//", + "search": "", + "hash": "" + }, + { + "input": "////x/", + "base": "sc://x/", + "href": "sc:////x/", + "protocol": "sc:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "//x/", + "search": "", + "hash": "" + }, + { + "input": "tftp://foobar.com/someconfig;mode=netascii", + "base": "about:blank", + "href": "tftp://foobar.com/someconfig;mode=netascii", + "origin": "null", + "protocol": "tftp:", + "username": "", + "password": "", + "host": "foobar.com", + "hostname": "foobar.com", + "port": "", + "pathname": "/someconfig;mode=netascii", + "search": "", + "hash": "" + }, + { + "input": "telnet://user:pass@foobar.com:23/", + "base": "about:blank", + "href": "telnet://user:pass@foobar.com:23/", + "origin": "null", + "protocol": "telnet:", + "username": "user", + "password": "pass", + "host": "foobar.com:23", + "hostname": "foobar.com", + "port": "23", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "ut2004://10.10.10.10:7777/Index.ut2", + "base": "about:blank", + "href": "ut2004://10.10.10.10:7777/Index.ut2", + "origin": "null", + "protocol": "ut2004:", + "username": "", + "password": "", + "host": "10.10.10.10:7777", + "hostname": "10.10.10.10", + "port": "7777", + "pathname": "/Index.ut2", + "search": "", + "hash": "" + }, + { + "input": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz", + "base": "about:blank", + "href": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz", + "origin": "null", + "protocol": "redis:", + "username": "foo", + "password": "bar", + "host": "somehost:6379", + "hostname": "somehost", + "port": "6379", + "pathname": "/0", + "search": "?baz=bam&qux=baz", + "hash": "" + }, + { + "input": "rsync://foo@host:911/sup", + "base": "about:blank", + "href": "rsync://foo@host:911/sup", + "origin": "null", + "protocol": "rsync:", + "username": "foo", + "password": "", + "host": "host:911", + "hostname": "host", + "port": "911", + "pathname": "/sup", + "search": "", + "hash": "" + }, + { + "input": "git://github.com/foo/bar.git", + "base": "about:blank", + "href": "git://github.com/foo/bar.git", + "origin": "null", + "protocol": "git:", + "username": "", + "password": "", + "host": "github.com", + "hostname": "github.com", + "port": "", + "pathname": "/foo/bar.git", + "search": "", + "hash": "" + }, + { + "input": "irc://myserver.com:6999/channel?passwd", + "base": "about:blank", + "href": "irc://myserver.com:6999/channel?passwd", + "origin": "null", + "protocol": "irc:", + "username": "", + "password": "", + "host": "myserver.com:6999", + "hostname": "myserver.com", + "port": "6999", + "pathname": "/channel", + "search": "?passwd", + "hash": "" + }, + { + "input": "dns://fw.example.org:9999/foo.bar.org?type=TXT", + "base": "about:blank", + "href": "dns://fw.example.org:9999/foo.bar.org?type=TXT", + "origin": "null", + "protocol": "dns:", + "username": "", + "password": "", + "host": "fw.example.org:9999", + "hostname": "fw.example.org", + "port": "9999", + "pathname": "/foo.bar.org", + "search": "?type=TXT", + "hash": "" + }, + { + "input": "ldap://localhost:389/ou=People,o=JNDITutorial", + "base": "about:blank", + "href": "ldap://localhost:389/ou=People,o=JNDITutorial", + "origin": "null", + "protocol": "ldap:", + "username": "", + "password": "", + "host": "localhost:389", + "hostname": "localhost", + "port": "389", + "pathname": "/ou=People,o=JNDITutorial", + "search": "", + "hash": "" + }, + { + "input": "git+https://github.com/foo/bar", + "base": "about:blank", + "href": "git+https://github.com/foo/bar", + "origin": "null", + "protocol": "git+https:", + "username": "", + "password": "", + "host": "github.com", + "hostname": "github.com", + "port": "", + "pathname": "/foo/bar", + "search": "", + "hash": "" + }, + { + "input": "urn:ietf:rfc:2648", + "base": "about:blank", + "href": "urn:ietf:rfc:2648", + "origin": "null", + "protocol": "urn:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "ietf:rfc:2648", + "search": "", + "hash": "" + }, + { + "input": "tag:joe@example.org,2001:foo/bar", + "base": "about:blank", + "href": "tag:joe@example.org,2001:foo/bar", + "origin": "null", + "protocol": "tag:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "joe@example.org,2001:foo/bar", + "search": "", + "hash": "" + }, + "# percent encoded hosts in non-special-URLs", + { + "input": "non-special://%E2%80%A0/", + "base": "about:blank", + "href": "non-special://%E2%80%A0/", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "%E2%80%A0", + "hostname": "%E2%80%A0", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "non-special://H%4fSt/path", + "base": "about:blank", + "href": "non-special://H%4fSt/path", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "H%4fSt", + "hostname": "H%4fSt", + "port": "", + "pathname": "/path", + "search": "", + "hash": "" + }, + "# IPv6 in non-special-URLs", + { + "input": "non-special://[1:2:0:0:5:0:0:0]/", + "base": "about:blank", + "href": "non-special://[1:2:0:0:5::]/", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "[1:2:0:0:5::]", + "hostname": "[1:2:0:0:5::]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "non-special://[1:2:0:0:0:0:0:3]/", + "base": "about:blank", + "href": "non-special://[1:2::3]/", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "[1:2::3]", + "hostname": "[1:2::3]", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "non-special://[1:2::3]:80/", + "base": "about:blank", + "href": "non-special://[1:2::3]:80/", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "[1:2::3]:80", + "hostname": "[1:2::3]", + "port": "80", + "pathname": "/", + "search": "", + "hash": "" + }, + { + "input": "non-special://[:80/", + "base": "about:blank", + "failure": true + }, + { + "input": "blob:https://example.com:443/", + "base": "about:blank", + "href": "blob:https://example.com:443/", + "protocol": "blob:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "https://example.com:443/", + "search": "", + "hash": "" + }, + { + "input": "blob:d3958f5c-0777-0845-9dcf-2cb28783acaf", + "base": "about:blank", + "href": "blob:d3958f5c-0777-0845-9dcf-2cb28783acaf", + "protocol": "blob:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "d3958f5c-0777-0845-9dcf-2cb28783acaf", + "search": "", + "hash": "" + } +]
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/api-is-present.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/api-is-present.html new file mode 100644 index 0000000..f5c976df --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/api-is-present.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: test that the vibrate() method is present (with or without vendor prefix)</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom'/> + <meta name='assert' content='Check that the vibrate() method is present.'/> + </head> + <body> + <h1>Description</h1> + <p> + This test checks for the presence of the <code>vibrate()</code> method, taking + vendor prefixes into account. + </p> + <div id='log'></div> + <script src='/resources/testharness.js'></script> + <script src='/resources/testharnessreport.js'></script> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + test(function () { + assert_true(undefined !== navigator.vibrate, "navigator.vibrate exists"); + }, "vibrate() is present on navigator"); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-when-hidden-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-when-hidden-manual.html new file mode 100644 index 0000000..5699707 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-when-hidden-manual.html
@@ -0,0 +1,38 @@ +<!DOCTYPE html> +<meta charset='utf-8'> +<title>Vibration API: cancel ongoing vibrate() when hidden by switching tab/window</title> +<link rel='author' title='Intel' href='http://www.intel.com'> +<link rel='help' href='http://dev.w3.org/2009/dap/vibration/#vibration-interface'> +<meta name='flags' content='interact'> +<meta name='assert' content='If the visibilitychange event is dispatched at the Document in a browsing context, cancel the pre-existing instance of the processing vibration patterns algorithm'> +<style> + button { + height: 100px; + width: 100px; + } +</style> + +<h1>Description</h1> +<p> + After hitting the button below, your device must vibrate for a short period of time (roughly one + second). If it vibrates for a longer time (roughly five seconds, it should feel somewhat long) then + the test has failed. +</p> +<button id='vib'>Vibrate!</button> +<script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> +<script> + var win; + + if (undefined !== navigator.vibrate) { + document.getElementById('vib').onclick = function () { + navigator.vibrate(5000); + setTimeout(function () { + win = window.open('about:blank', '_blank'); + setTimeout(function() { + win.close(); + }, 100); + }, 1000); + }; + } +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-0-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-0-manual.html new file mode 100644 index 0000000..6890d57 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-0-manual.html
@@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: cancel ongoing vibrate() with 0</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, interact'/> + <meta name='assert' content='If pattern is 0, cancel the pre-existing instance of the processing vibration patterns algorithm'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate for a short period of time (roughly one + second). If it vibrates for a longer time (roughly five seconds, it should feel somewhat long) then + the test has failed. + </p> + <button id='vib'>Vibrate!</button> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + document.getElementById("vib").onclick = function () { + navigator.vibrate(5000); + setTimeout(function () { + navigator.vibrate(0); + }, 1000); + }; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-array-0-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-array-0-manual.html new file mode 100644 index 0000000..60689cc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-array-0-manual.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset='utf-8'> +<title>Vibration API: cancel ongoing vibrate() with [0]</title> +<link rel='author' title='Intel' href='http://www.intel.com'> +<link rel='help' href='http://dev.w3.org/2009/dap/vibration/#vibration-interface'> +<meta name='flags' content='interact'> +<meta name='assert' content='If pattern contains a single entry with a value of 0, cancel the pre-existing instance of the processing vibration patterns algorithm'> +<style> + button { + height: 100px; + width: 100px; + } +</style> + +<h1>Description</h1> +<p> + After hitting the button below, your device must vibrate for a short period of time (roughly one + second). If it vibrates for a longer time (roughly five seconds, it should feel somewhat long) then + the test has failed. +</p> +<button id='vib'>Vibrate!</button> +<script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> +<script> + if (undefined !== navigator.vibrate) { + document.getElementById('vib').onclick = function () { + navigator.vibrate(5000); + setTimeout(function () { + navigator.vibrate([0]); + }, 1000); + }; + } +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-empty-array-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-empty-array-manual.html new file mode 100644 index 0000000..9d4be2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-empty-array-manual.html
@@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: cancel ongoing vibrate() with []</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, interact'/> + <meta name='assert' content='If pattern is an empty list, cancel the pre-existing instance of the processing vibration patterns algorithm'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate for a short period of time (roughly one + second). If it vibrates for a longer time (roughly five seconds, it should feel somewhat long) then + the test has failed. + </p> + <button id='vib'>Vibrate!</button> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + document.getElementById("vib").onclick = function () { + navigator.vibrate(5000); + setTimeout(function () { + navigator.vibrate([]); + }, 1000); + }; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-new-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-new-manual.html new file mode 100644 index 0000000..1cd9daf1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/cancel-with-new-manual.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: cancel ongoing vibrate() with a new call to vibrate</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, interact'/> + <meta name='assert' content='Cancel the pre-existing instance of the processing vibration patterns algorithm, if any.'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate continuously for a short period of time (roughly one + second), then vibrate a series of short bursts. If the initial continuously vibration is longer (roughly five + seconds, it should feel somewhat long) or if there is no series of short vibration bursts then the test has + failed. + </p> + <button id='vib'>Vibrate!</button> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + document.getElementById("vib").onclick = function () { + navigator.vibrate(5000); + setTimeout(function () { + navigator.vibrate([200, 200, 200, 200, 200, 200, 200, 200, 200]); + }, 1000); + }; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/idl.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/idl.html new file mode 100644 index 0000000..167090cd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/idl.html
@@ -0,0 +1,23 @@ +<!doctype html> +<meta charset=utf-8> +<title>IDL harness tests for Vibration API</title> +<body> + <h1>Description</h1> + <p> + This test validates the IDL defined by the Vibration API. + </p> + <p> + This test uses <a href="/resources/idlharness.js">idlharness.js</a> + </p> +<div id="log"></div> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/WebIDLParser.js></script> +<script src=/resources/idlharness.js></script> +<script> +var idl_array = new IdlArray(); +idl_array.add_untested_idls("interface Navigator {};"); +idl_array.add_idls("partial interface Navigator { boolean vibrate ((unsigned long or sequence<unsigned long>) pattern);};"); +idl_array.add_objects({Navigator: ['navigator']}); +idl_array.test(); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/invalid-values.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/invalid-values.html new file mode 100644 index 0000000..a544ac23 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/invalid-values.html
@@ -0,0 +1,79 @@ +<!DOCTYPE html> +<meta charset='utf-8'> +<title>Vibration API: vibrate(invalid)</title> +<link rel='author' title='Intel' href='http://www.intel.com'> +<link rel='help' href='http://dev.w3.org/2009/dap/vibration/#vibration-interface'> + +<h1>Description</h1> +<p> + This test checks the <code>vibrate()</code> method with invalid parameter, + taking vendor prefixes into account. +</p> +<div id='log'></div> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='../support/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> +<script> + test(function() { + assert_throws(new TypeError(), function() { + navigator.vibrate(); + }, 'Argument is required, so was expecting a TypeError.'); + }, 'Missing pattern argument'); + + test(function() { + try { + navigator.vibrate(undefined); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of undefined resolves to []'); + + test(function() { + try { + navigator.vibrate(null); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of null resolves to []'); + + test(function() { + try { + navigator.vibrate('one'); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of empty string resolves to [""]'); + + test(function() { + try { + navigator.vibrate('one'); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of string resolves to ["one"]'); + + test(function() { + try { + navigator.vibrate(new String('one')); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of String instance resolves to ["one"]'); + + test(function() { + try { + navigator.vibrate(NaN); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of NaN resolves to [NaN]'); + + test(function() { + try { + navigator.vibrate({}); + } catch(e) { + assert_unreached('error message: ' + e.message); + } + }, 'pattern of {} resolves to [{}]'); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-extra-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-extra-manual.html new file mode 100644 index 0000000..3f5ccf3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-extra-manual.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: test a pattern array parameter to vibrate() with an extra (even) item</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, interact'/> + <meta name='assert' content='If the length of pattern is even, then remove the last entry in pattern.'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate three times for one second, separated + by one second intervals. + </p> + <button id='vib'>Vibrate!</button> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + document.getElementById("vib").onclick = function () { + navigator.vibrate([1000, 1000, 1000, 1000, 1000, 1000]); + }; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-manual.html new file mode 100644 index 0000000..43674bf8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-manual.html
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: test a pattern array parameter to vibrate()</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, interact'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate three times for one second, separated + by one second intervals. + </p> + <button id='vib'>Vibrate!</button> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + document.getElementById("vib").onclick = function () { + navigator.vibrate([1000, 1000, 1000, 1000, 1000]); + }; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-with-0-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-with-0-manual.html new file mode 100644 index 0000000..dff2f1ed --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/pattern-array-with-0-manual.html
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<meta charset='utf-8'> +<title>Vibration API: test a pattern array with 0ms vibration and still to vibrate()</title> +<link rel='author' title='Intel' href='http://www.intel.com'> +<link rel='help' href='http://dev.w3.org/2009/dap/vibration/#vibration-interface'> +<meta name='flags' content='interact'> +<style> + button { + height: 100px; + width: 100px; + } +</style> + +<h1>Description</h1> +<p> + After hitting the button below, your device must vibrate continuously for about two seconds, once. +</p> +<button id='vib'>Vibrate!</button> +<div id='log'></div> +<script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> +<script> + document.getElementById("vib").onclick = function () { + navigator.vibrate([0, 0, 2000]); + }; +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/silent-ignore-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/vibration/silent-ignore-expected.txt new file mode 100644 index 0000000..cf8e48f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/silent-ignore-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Calling vibrate returns true assert_true: vibrate() returns true when vibration is not supported expected true got false +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/silent-ignore.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/silent-ignore.html new file mode 100644 index 0000000..c7447df --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/silent-ignore.html
@@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: test that calls to vibrate() are silently ignored when the device cannot vibrate</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, no-vibrator'/> + <meta name='assert' content='If the device does not provide a vibration mechanism, or it is disabled, the user agent must silently ignore any invocations of the vibrate() method.'/> + </head> + <body> + <h1>Description</h1> + <p> + <strong>This test is only useful on devices that do not have vibration capability</strong>. + If your device supports vibration, then <strong>skip</strong> this test. An implementation + supporting this API but running on a device that cannot vibrate must silently ignore the + call (we test that it doesn't throw). + </p> + <div id='log'></div> + <script src='/resources/testharness.js'></script> + <script src='/resources/testharnessreport.js'></script> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + test(function () { + assert_true(navigator.vibrate(1000), "vibrate() returns true when vibration is not supported"); + }, "Calling vibrate returns true"); + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/simple-array-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/simple-array-manual.html new file mode 100644 index 0000000..4a85bd6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/simple-array-manual.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: test a simple array parameter to vibrate()</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate continuously for about two seconds, once. + </p> + <button id='vib'>Vibrate!</button> + <div id='log'></div> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + document.getElementById("vib").onclick = function () { + navigator.vibrate([2000]); + }; + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/vibration/simple-scalar-manual.html b/third_party/WebKit/LayoutTests/external/wpt/vibration/simple-scalar-manual.html new file mode 100644 index 0000000..0c7637bb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/vibration/simple-scalar-manual.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset='utf-8'/> + <title>Vibration API: test a simple scalar parameter to vibrate()</title> + <link rel='author' title='Robin Berjon' href='mailto:robin@berjon.com'/> + <link rel='help' href='http://www.w3.org/TR/vibration/#methods'/> + <meta name='flags' content='dom, interact'/> + </head> + <body> + <h1>Description</h1> + <p> + After hitting the button below, your device must vibrate continuously for about two seconds, once. + </p> + <button id='vib'>Vibrate!</button> + <script src='/common/vendor-prefix.js' data-prefixed-objects='[{"ancestors":["navigator"], "name":"vibrate"}]'></script> + <script> + if (undefined !== navigator.vibrate) { + document.getElementById("vib").onclick = function () { + navigator.vibrate(2000); + }; + } + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-list.js b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-list.js index 72a42e8..41513df2 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-list.js +++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-list.js
@@ -259,8 +259,7 @@ }, 'border-spacing': { // https://drafts.csswg.org/css-tables/#propdef-border-spacing - types: [ - ] + types: [ 'lengthPair' ] }, 'border-top-color': { // https://drafts.csswg.org/css-backgrounds-3/#border-top-color @@ -318,6 +317,10 @@ { type: 'discrete', options: [ [ 'top', 'bottom' ] ] } ] }, + 'caret-color': { + // https://drafts.csswg.org/css-ui/#propdef-caret-color + types: [ 'color' ] + }, 'clear': { // https://drafts.csswg.org/css-page-floats/#propdef-clear types: [ @@ -327,6 +330,11 @@ 'clip': { // https://drafts.fxtf.org/css-masking-1/#propdef-clip types: [ + 'rect', + { type: 'discrete', options: [ [ 'rect(10px, 10px, 10px, 10px)', + 'auto' ], + [ 'rect(10px, 10px, 10px, 10px)', + 'rect(10px, 10px, 10px, auto)'] ] } ] }, 'clip-path': { @@ -364,12 +372,15 @@ }, 'column-count': { // https://drafts.csswg.org/css-multicol/#propdef-column-count - types: [ + types: [ 'positiveInteger', + { type: 'discrete', options: [ [ 'auto', '10' ] ] } ] }, 'column-gap': { // https://drafts.csswg.org/css-multicol/#propdef-column-gap - types: [ 'length' ] + types: [ 'length', + { type: 'discrete', options: [ [ 'normal', '200px' ] ] } + ] }, 'column-rule-color': { // https://drafts.csswg.org/css-multicol/#propdef-column-rule-color @@ -1130,8 +1141,7 @@ }, 'perspective-origin': { // https://drafts.csswg.org/css-transforms-1/#propdef-perspective-origin - types: [ - ] + types: [ 'position' ] }, 'pointer-events': { // https://svgwg.org/svg2-draft/interact.html#PointerEventsProperty @@ -1435,8 +1445,7 @@ }, 'word-spacing': { // https://drafts.csswg.org/css-text-3/#propdef-word-spacing - types: [ - ] + types: [ 'lengthPercentageOrCalc' ] }, 'will-change': { // http://dev.w3.org/csswg/css-will-change/#propdef-will-change @@ -1520,4 +1529,13 @@ function (str) { return str.substr(1).toUpperCase(); }); } +function calcFromPercentage(idlName, percentageValue) { + var examElem = document.createElement('div'); + document.body.appendChild(examElem); + examElem.style[idlName] = percentageValue; + var calcValue = getComputedStyle(examElem)[idlName]; + document.body.removeChild(examElem); + + return calcValue; +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-types.js b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-types.js index 14c8f27..27537ee 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-types.js +++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/property-types.js
@@ -85,9 +85,7 @@ var animation = target.animate({ [idlName]: ['10px', '50px'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10px' }, - { time: 500, expected: '30px' }, - { time: 1000, expected: '50px' }]); + [{ time: 500, expected: '30px' }]); }, property + ' supports animating as a length'); test(function(t) { @@ -96,9 +94,7 @@ var animation = target.animate({ [idlName]: ['1rem', '5rem'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10px' }, - { time: 500, expected: '30px' }, - { time: 1000, expected: '50px' }]); + [{ time: 500, expected: '30px' }]); }, property + ' supports animating as a length of rem'); }, @@ -124,6 +120,49 @@ }; +const lengthPairType = { + testInterpolation: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = target.animate({ [idlName]: ['10px 10px', '50px 50px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: '30px 30px' }]); + }, property + ' supports animating as a length pair'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = target.animate({ [idlName]: ['1rem 1rem', '5rem 5rem'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: '30px 30px' }]); + }, property + ' supports animating as a length pair of rem'); + }, + + testAddition: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + target.style[idlName] = '10px 10px'; + var animation = target.animate({ [idlName]: ['10px 10px', '50px 50px'] }, + { duration: 1000, composite: 'add' }); + testAnimationSamples(animation, idlName, [{ time: 0, expected: '20px 20px' }]); + }, property + ': length pair'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + target.style[idlName] = '1rem 1rem'; + var animation = target.animate({ [idlName]: ['1rem 1rem', '5rem 5rem'] }, + { duration: 1000, composite: 'add' }); + testAnimationSamples(animation, idlName, [{ time: 0, expected: '20px 20px' }]); + }, property + ': length pair of rem'); + }, + +}; + const percentageType = { testInterpolation: function(property, setup) { test(function(t) { @@ -132,9 +171,7 @@ var animation = target.animate({ [idlName]: ['10%', '50%'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10%' }, - { time: 500, expected: '30%' }, - { time: 1000, expected: '50%' }]); + [{ time: 500, expected: '30%' }]); }, property + ' supports animating as a percentage'); }, @@ -159,9 +196,7 @@ var animation = target.animate({ [idlName]: [-2, 2] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '-2' }, - { time: 500, expected: '0' }, - { time: 1000, expected: '2' }]); + [{ time: 500, expected: '0' }]); }, property + ' supports animating as an integer'); }, @@ -179,6 +214,32 @@ }; +const positiveIntegerType = { + testInterpolation: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = target.animate({ [idlName]: [1, 3] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [ { time: 500, expected: '2' } ]); + }, property + ' supports animating as a positive integer'); + }, + + testAddition: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + target.style[idlName] = 1; + var animation = target.animate({ [idlName]: [2, 5] }, + { duration: 1000, composite: 'add' }); + testAnimationSamples(animation, idlName, + [{ time: 0, expected: '3' }]); + }, property + ': positive integer'); + }, + +}; + const lengthPercentageOrCalcType = { testInterpolation: function(property, setup) { lengthType.testInterpolation(property, setup); @@ -190,9 +251,7 @@ var animation = target.animate({ [idlName]: ['10px', '20%'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10px' }, - { time: 500, expected: 'calc(5px + 10%)' }, - { time: 1000, expected: '20%' }]); + [{ time: 500, expected: 'calc(5px + 10%)' }]); }, property + ' supports animating as combination units "px" and "%"'); test(function(t) { @@ -201,9 +260,7 @@ var animation = target.animate({ [idlName]: ['10%', '2em'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10%' }, - { time: 500, expected: 'calc(10px + 5%)' }, - { time: 1000, expected: '20px' }]); + [{ time: 500, expected: 'calc(10px + 5%)' }]); }, property + ' supports animating as combination units "%" and "em"'); test(function(t) { @@ -212,9 +269,7 @@ var animation = target.animate({ [idlName]: ['1em', '2rem'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10px' }, - { time: 500, expected: '15px' }, - { time: 1000, expected: '20px' }]); + [{ time: 500, expected: '15px' }]); }, property + ' supports animating as combination units "em" and "rem"'); test(function(t) { @@ -223,9 +278,7 @@ var animation = target.animate({ [idlName]: ['10px', 'calc(1em + 20%)'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '10px' }, - { time: 500, expected: 'calc(10px + 10%)' }, - { time: 1000, expected: 'calc(10px + 20%)' }]); + [{ time: 500, expected: 'calc(10px + 10%)' }]); }, property + ' supports animating as combination units "px" and "calc"'); test(function(t) { @@ -235,12 +288,8 @@ { [idlName]: ['calc(10px + 10%)', 'calc(1em + 1rem + 20%)'] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, - expected: 'calc(10px + 10%)' }, - { time: 500, - expected: 'calc(15px + 15%)' }, - { time: 1000, - expected: 'calc(20px + 20%)' }]); + [{ time: 500, + expected: 'calc(15px + 15%)' }]); }, property + ' supports animating as a calc'); }, @@ -339,9 +388,7 @@ var animation = target.animate({ [idlName]: [1.1, 1.5] }, { duration: 1000, fill: 'both' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '1.1' }, - { time: 500, expected: '1.3' }, - { time: 1000, expected: '1.5' }]); + [{ time: 500, expected: '1.3' }]); }, property + ' supports animating as a positive number'); }, @@ -921,6 +968,83 @@ }; const textShadowListType = { + testInterpolation: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'none', + 'rgb(100, 100, 100) 10px 10px 10px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + // Premultiplied + [{ time: 500, expected: 'rgba(100, 100, 100, 0.5) 5px 5px 5px' }]); + }, property + ': from none to other'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(100, 100, 100) 10px 10px 10px', + 'none' ] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + // Premultiplied + [{ time: 500, expected: 'rgba(100, 100, 100, 0.5) 5px 5px 5px' }]); + }, property + ': from other to none'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(0, 0, 0) 0px 0px 0px', + 'rgb(100, 100, 100) 10px 10px 10px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(50, 50, 50) 5px 5px 5px' }]); + }, property + ': single shadow'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(0, 0, 0) 0px 0px 0px, ' + + 'rgb(200, 200, 200) 20px 20px 20px', + 'rgb(100, 100, 100) 10px 10px 10px, ' + + 'rgb(100, 100, 100) 10px 10px 10px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(50, 50, 50) 5px 5px 5px, ' + + 'rgb(150, 150, 150) 15px 15px 15px' }]); + }, property + ': shadow list'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(200, 200, 200) 20px 20px 20px', + 'rgb(100, 100, 100) 10px 10px 10px, ' + + 'rgb(100, 100, 100) 10px 10px 10px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(150, 150, 150) 15px 15px 15px, ' + + 'rgba(100, 100, 100, 0.5) 5px 5px 5px' }]); + }, property + ': mismatched list length (from longer to shorter)'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(100, 100, 100) 10px 10px 10px, ' + + 'rgb(100, 100, 100) 10px 10px 10px', + 'rgb(200, 200, 200) 20px 20px 20px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(150, 150, 150) 15px 15px 15px, ' + + 'rgba(100, 100, 100, 0.5) 5px 5px 5px' }]); + }, property + ': mismatched list length (from shorter to longer)'); + }, + testAddition: function(property, setup) { test(function(t) { var idlName = propertyToIDL(property); @@ -939,6 +1063,83 @@ const boxShadowListType = { + testInterpolation: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'none', + 'rgb(100, 100, 100) 10px 10px 10px 0px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + // Premultiplied + [{ time: 500, expected: 'rgba(100, 100, 100, 0.5) 5px 5px 5px 0px' }]); + }, property + ': from none to other'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(100, 100, 100) 10px 10px 10px 0px', + 'none' ] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + // Premultiplied + [{ time: 500, expected: 'rgba(100, 100, 100, 0.5) 5px 5px 5px 0px' }]); + }, property + ': from other to none'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(0, 0, 0) 0px 0px 0px 0px', + 'rgb(100, 100, 100) 10px 10px 10px 0px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(50, 50, 50) 5px 5px 5px 0px' }]); + }, property + ': single shadow'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(0, 0, 0) 0px 0px 0px 0px, ' + + 'rgb(200, 200, 200) 20px 20px 20px 20px', + 'rgb(100, 100, 100) 10px 10px 10px 0px, ' + + 'rgb(100, 100, 100) 10px 10px 10px 0px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(50, 50, 50) 5px 5px 5px 0px, ' + + 'rgb(150, 150, 150) 15px 15px 15px 10px' }]); + }, property + ': shadow list'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(200, 200, 200) 20px 20px 20px 20px', + 'rgb(100, 100, 100) 10px 10px 10px 0px, ' + + 'rgb(100, 100, 100) 10px 10px 10px 0px'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(150, 150, 150) 15px 15px 15px 10px, ' + + 'rgba(100, 100, 100, 0.5) 5px 5px 5px 0px' }]); + }, property + ': mismatched list length (from shorter to longer)'); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = + target.animate({ [idlName]: [ 'rgb(100, 100, 100) 10px 10px 10px 0px, ' + + 'rgb(100, 100, 100) 10px 10px 10px 0px', + 'rgb(200, 200, 200) 20px 20px 20px 20px']}, + { duration: 1000, fill: 'both' }); + testAnimationSamples(animation, idlName, + [{ time: 500, expected: 'rgb(150, 150, 150) 15px 15px 15px 10px, ' + + 'rgba(100, 100, 100, 0.5) 5px 5px 5px 0px' }]); + }, property + ': mismatched list length (from longer to shorter)'); + }, + testAddition: function(property, setup) { test(function(t) { var idlName = propertyToIDL(property); @@ -955,18 +1156,84 @@ }, }; +const positionType = { + testInterpolation: function(property, setup) { + lengthPairType.testInterpolation(property, setup); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = target.animate({ [idlName]: ['10% 10%', '50% 50%'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples( + animation, idlName, + [{ time: 500, expected: calcFromPercentage(idlName, '30% 30%') }]); + }, property + ' supports animating as a position of percent'); + }, + + testAddition: function(property, setup) { + lengthPairType.testAddition(property, setup); + + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + target.style[idlName] = '60% 60%'; + var animation = target.animate({ [idlName]: ['70% 70%', '100% 100%'] }, + { duration: 1000, composite: 'add' }); + testAnimationSamples( + animation, idlName, + [{ time: 0, expected: calcFromPercentage(idlName, '130% 130%') }]); + }, property + ': position of percentage'); + }, +}; + +const rectType = { + testInterpolation: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + var animation = target.animate({ [idlName]: + ['rect(10px, 10px, 10px, 10px)', + 'rect(50px, 50px, 50px, 50px)'] }, + { duration: 1000, fill: 'both' }); + testAnimationSamples( + animation, idlName, + [{ time: 500, expected: 'rect(30px, 30px, 30px, 30px)' }]); + }, property + ' supports animating as a rect'); + }, + + testAddition: function(property, setup) { + test(function(t) { + var idlName = propertyToIDL(property); + var target = createTestElement(t, setup); + target.style[idlName] = 'rect(100px, 100px, 100px, 100px)'; + var animation = target.animate({ [idlName]: + ['rect(10px, 10px, 10px, 10px)', + 'rect(10px, 10px, 10px, 10px)'] }, + { duration: 1000, composite: 'add' }); + testAnimationSamples( + animation, idlName, + [{ time: 0, expected: 'rect(110px, 110px, 110px, 110px)' }]); + }, property + ': rect'); + }, +} + const types = { color: colorType, discrete: discreteType, filterList: filterListType, integer: integerType, + positiveInteger: positiveIntegerType, length: lengthType, percentage: percentageType, lengthPercentageOrCalc: lengthPercentageOrCalcType, + lengthPair: lengthPairType, positiveNumber: positiveNumberType, transformList: transformListType, visibility: visibilityType, boxShadowList: boxShadowListType, textShadowList: textShadowListType, + rect: rectType, + position: positionType, };
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/reverse-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/reverse-expected.txt deleted file mode 100644 index c78b28b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/reverse-expected.txt +++ /dev/null
@@ -1,14 +0,0 @@ -This is a testharness.js-based test. -PASS reverse() inverts playbackRate -PASS reverse() starts to play when pausing animation -PASS reverse() maintains the same currentTime -PASS reverse() when playbackRate > 0 and currentTime > effect end -PASS reverse() when playbackRate > 0 and currentTime < 0 -PASS reverse() when playbackRate < 0 and currentTime < 0 -PASS reverse() when playbackRate < 0 and currentTime > effect end -PASS reverse() when playbackRate > 0 and currentTime < 0 and the target effect end is positive infinity -PASS reverse() when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity -PASS reverse() when playbackRate == 0 -FAIL Reversing an animation without an active timeline throws an InvalidStateError Animation is not defined -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/reverse.html b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/reverse.html deleted file mode 100644 index 5552261..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/reverse.html +++ /dev/null
@@ -1,158 +0,0 @@ -<!DOCTYPE html> -<meta charset=utf-8> -<title>Animation.reverse()</title> -<link rel="help" href="https://w3c.github.io/web-animations/#dom-animation-reverse"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="../../testcommon.js"></script> -<body> -<div id="log"></div> -<script> -"use strict"; - -promise_test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, {duration: 100 * MS_PER_SEC, - iterations: Infinity}); - - // Wait a frame because if currentTime is still 0 when we call - // reverse(), it will throw (per spec). - return animation.ready.then(waitForAnimationFrames(1)).then(function() { - assert_greater_than_equal(animation.currentTime, 0, - 'currentTime expected to be greater than 0, one frame after starting'); - animation.currentTime = 50 * MS_PER_SEC; - var previousPlaybackRate = animation.playbackRate; - animation.reverse(); - assert_equals(animation.playbackRate, -previousPlaybackRate, - 'playbackRate should be inverted'); - }); -}, 'reverse() inverts playbackRate'); - -promise_test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, {duration: 100 * MS_PER_SEC, - iterations: Infinity}); - animation.currentTime = 50 * MS_PER_SEC; - animation.pause(); - - return animation.ready.then(function() { - animation.reverse(); - return animation.ready; - }).then(function() { - assert_equals(animation.playState, 'running', - 'Animation.playState should be "running" after reverse()'); - }); -}, 'reverse() starts to play when pausing animation'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, 100 * MS_PER_SEC); - animation.currentTime = 50 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.currentTime, 50 * MS_PER_SEC, - 'reverse() should not change the currentTime ' + - 'if the currentTime is in the middle of animation duration'); -}, 'reverse() maintains the same currentTime'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, 100 * MS_PER_SEC); - animation.currentTime = 200 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.currentTime, 100 * MS_PER_SEC, - 'reverse() should start playing from the animation effect end ' + - 'if the playbackRate > 0 and the currentTime > effect end'); -}, 'reverse() when playbackRate > 0 and currentTime > effect end'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, 100 * MS_PER_SEC); - - animation.currentTime = -200 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.currentTime, 100 * MS_PER_SEC, - 'reverse() should start playing from the animation effect end ' + - 'if the playbackRate > 0 and the currentTime < 0'); -}, 'reverse() when playbackRate > 0 and currentTime < 0'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, 100 * MS_PER_SEC); - animation.playbackRate = -1; - animation.currentTime = -200 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.currentTime, 0, - 'reverse() should start playing from the start of animation time ' + - 'if the playbackRate < 0 and the currentTime < 0'); -}, 'reverse() when playbackRate < 0 and currentTime < 0'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, 100 * MS_PER_SEC); - animation.playbackRate = -1; - animation.currentTime = 200 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.currentTime, 0, - 'reverse() should start playing from the start of animation time ' + - 'if the playbackRate < 0 and the currentTime > effect end'); -}, 'reverse() when playbackRate < 0 and currentTime > effect end'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, {duration: 100 * MS_PER_SEC, - iterations: Infinity}); - animation.currentTime = -200 * MS_PER_SEC; - - assert_throws('InvalidStateError', - function () { animation.reverse(); }, - 'reverse() should throw InvalidStateError ' + - 'if the playbackRate > 0 and the currentTime < 0 ' + - 'and the target effect is positive infinity'); -}, 'reverse() when playbackRate > 0 and currentTime < 0 ' + - 'and the target effect end is positive infinity'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, {duration: 100 * MS_PER_SEC, - iterations: Infinity}); - animation.playbackRate = -1; - animation.currentTime = -200 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.currentTime, 0, - 'reverse() should start playing from the start of animation time ' + - 'if the playbackRate < 0 and the currentTime < 0 ' + - 'and the target effect is positive infinity'); -}, 'reverse() when playbackRate < 0 and currentTime < 0 ' + - 'and the target effect end is positive infinity'); - -test(function(t) { - var div = createDiv(t); - var animation = div.animate({}, 100 * MS_PER_SEC); - animation.playbackRate = 0; - animation.currentTime = 50 * MS_PER_SEC; - animation.reverse(); - - assert_equals(animation.playbackRate, 0, - 'reverse() should preserve playbackRate if the playbackRate == 0'); - assert_equals(animation.currentTime, 50 * MS_PER_SEC, - 'reverse() should not affect the currentTime if the playbackRate == 0'); - t.done(); -}, 'reverse() when playbackRate == 0'); - -test(function(t) { - var div = createDiv(t); - var animation = - new Animation(new KeyframeEffect(div, null, 100 * MS_PER_SEC), null); - - assert_throws('InvalidStateError', function() { animation.reverse(); }); -}, 'Reversing an animation without an active timeline throws an ' + - 'InvalidStateError'); - -</script> -</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt new file mode 100644 index 0000000..a1c3d41 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
@@ -0,0 +1,18 @@ +This is a testharness.js-based test. +PASS Reversing an animation inverts the playback rate +PASS Reversing an animation plays a pausing animation +PASS Reversing an animation maintains the same current time +PASS Reversing an animation does not cause it to leave the pending state +PASS Reversing an animation does not cause it to resolve the ready promise +PASS Reversing an animation when playbackRate > 0 and currentTime > effect end should make it play from the end +PASS Reversing an animation when playbackRate > 0 and currentTime < 0 should make it play from the end +PASS Reversing an animation when playbackRate < 0 and currentTime < 0 should make it play from the start +PASS Reversing an animation when playbackRate < 0 and currentTime > effect end should make it play from the start +PASS Reversing an animation when playbackRate > 0 and currentTime < 0 and the target effect end is positive infinity should throw an exception +FAIL When reversing throws an exception, the playback rate remains unchanged assert_equals: playbackRate remains unchanged expected 1 but got -1 +PASS Reversing animation when playbackRate = 0 and currentTime < 0 and the target effect end is positive infinity should NOT throw an exception +PASS Reversing an animation when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity should make it play from the start +PASS Reversing when when playbackRate == 0 should preserve the current time and playback rate +FAIL Reversing an animation without an active timeline throws an InvalidStateError Animation is not defined +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation.html b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation.html new file mode 100644 index 0000000..42093c9c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation.html
@@ -0,0 +1,219 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Reversing an animation</title> +<link rel="help" + href="https://w3c.github.io/web-animations/#reverse-an-animation"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../../testcommon.js"></script> +<body> +<div id="log"></div> +<script> +"use strict"; + +promise_test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, {duration: 100 * MS_PER_SEC, + iterations: Infinity}); + + // Wait a frame because if currentTime is still 0 when we call + // reverse(), it will throw (per spec). + return animation.ready.then(waitForAnimationFrames(1)).then(function() { + assert_greater_than_equal(animation.currentTime, 0, + 'currentTime expected to be greater than 0, one frame after starting'); + animation.currentTime = 50 * MS_PER_SEC; + var previousPlaybackRate = animation.playbackRate; + animation.reverse(); + assert_equals(animation.playbackRate, -previousPlaybackRate, + 'playbackRate should be inverted'); + }); +}, 'Reversing an animation inverts the playback rate'); + +promise_test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, {duration: 100 * MS_PER_SEC, + iterations: Infinity}); + animation.currentTime = 50 * MS_PER_SEC; + animation.pause(); + + return animation.ready.then(function() { + animation.reverse(); + return animation.ready; + }).then(function() { + assert_equals(animation.playState, 'running', + 'Animation.playState should be "running" after reverse()'); + }); +}, 'Reversing an animation plays a pausing animation'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, 100 * MS_PER_SEC); + animation.currentTime = 50 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.currentTime, 50 * MS_PER_SEC, + 'The current time should not change it is in the middle of ' + + 'the animation duration'); +}, 'Reversing an animation maintains the same current time'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, { duration: 200 * MS_PER_SEC, + delay: -100 * MS_PER_SEC }); + assert_equals(animation.playState, 'pending', + 'The playState is pending before we call reverse'); + + animation.reverse(); + + assert_equals(animation.playState, 'pending', + 'The playState is still pending after calling reverse'); +}, 'Reversing an animation does not cause it to leave the pending state'); + +promise_test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, { duration: 200 * MS_PER_SEC, + delay: -100 * MS_PER_SEC }); + var readyResolved = false; + animation.ready.then(() => { readyResolved = true; }); + + animation.reverse(); + + return Promise.resolve(() => { + assert_false(readyResolved, + 'ready promise should not have been resolved yet'); + }); +}, 'Reversing an animation does not cause it to resolve the ready promise'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, 100 * MS_PER_SEC); + animation.currentTime = 200 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.currentTime, 100 * MS_PER_SEC, + 'reverse() should start playing from the animation effect end ' + + 'if the playbackRate > 0 and the currentTime > effect end'); +}, 'Reversing an animation when playbackRate > 0 and currentTime > ' + + 'effect end should make it play from the end'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, 100 * MS_PER_SEC); + + animation.currentTime = -200 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.currentTime, 100 * MS_PER_SEC, + 'reverse() should start playing from the animation effect end ' + + 'if the playbackRate > 0 and the currentTime < 0'); +}, 'Reversing an animation when playbackRate > 0 and currentTime < 0 ' + + 'should make it play from the end'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, 100 * MS_PER_SEC); + animation.playbackRate = -1; + animation.currentTime = -200 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.currentTime, 0, + 'reverse() should start playing from the start of animation time ' + + 'if the playbackRate < 0 and the currentTime < 0'); +}, 'Reversing an animation when playbackRate < 0 and currentTime < 0 ' + + 'should make it play from the start'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, 100 * MS_PER_SEC); + animation.playbackRate = -1; + animation.currentTime = 200 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.currentTime, 0, + 'reverse() should start playing from the start of animation time ' + + 'if the playbackRate < 0 and the currentTime > effect end'); +}, 'Reversing an animation when playbackRate < 0 and currentTime > effect ' + + 'end should make it play from the start'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, {duration: 100 * MS_PER_SEC, + iterations: Infinity}); + animation.currentTime = -200 * MS_PER_SEC; + + assert_throws('InvalidStateError', + function () { animation.reverse(); }, + 'reverse() should throw InvalidStateError ' + + 'if the playbackRate > 0 and the currentTime < 0 ' + + 'and the target effect is positive infinity'); +}, 'Reversing an animation when playbackRate > 0 and currentTime < 0 ' + + 'and the target effect end is positive infinity should throw an exception'); + +test(function(t) { + var animation = createDiv(t).animate({}, { duration: 100 * MS_PER_SEC, + iterations: Infinity }); + animation.currentTime = -200 * MS_PER_SEC; + + try { animation.reverse(); } catch(e) { } + + assert_equals(animation.playbackRate, 1, 'playbackRate remains unchanged'); +}, 'When reversing throws an exception, the playback rate remains unchanged'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, {duration: 100 * MS_PER_SEC, + iterations: Infinity}); + animation.currentTime = -200 * MS_PER_SEC; + animation.playbackRate = 0; + + try { + animation.reverse(); + } catch (e) { + assert_unreached(`Unexpected exception when calling reverse(): ${e}`); + } +}, 'Reversing animation when playbackRate = 0 and currentTime < 0 ' + + 'and the target effect end is positive infinity should NOT throw an ' + + 'exception'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, {duration: 100 * MS_PER_SEC, + iterations: Infinity}); + animation.playbackRate = -1; + animation.currentTime = -200 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.currentTime, 0, + 'reverse() should start playing from the start of animation time ' + + 'if the playbackRate < 0 and the currentTime < 0 ' + + 'and the target effect is positive infinity'); +}, 'Reversing an animation when playbackRate < 0 and currentTime < 0 ' + + 'and the target effect end is positive infinity should make it play ' + + 'from the start'); + +test(function(t) { + var div = createDiv(t); + var animation = div.animate({}, 100 * MS_PER_SEC); + animation.playbackRate = 0; + animation.currentTime = 50 * MS_PER_SEC; + animation.reverse(); + + assert_equals(animation.playbackRate, 0, + 'reverse() should preserve playbackRate if the playbackRate == 0'); + assert_equals(animation.currentTime, 50 * MS_PER_SEC, + 'reverse() should not affect the currentTime if the playbackRate == 0'); + t.done(); +}, 'Reversing when when playbackRate == 0 should preserve the current ' + + 'time and playback rate'); + +test(function(t) { + var div = createDiv(t); + var animation = + new Animation(new KeyframeEffect(div, null, 100 * MS_PER_SEC), null); + + assert_throws('InvalidStateError', function() { animation.reverse(); }); +}, 'Reversing an animation without an active timeline throws an ' + + 'InvalidStateError'); + +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/helpers.js b/third_party/WebKit/LayoutTests/external/wpt/webauthn/helpers.js new file mode 100644 index 0000000..e36cb6d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/helpers.js
@@ -0,0 +1,209 @@ +/** + * TestCase + * + * A generic template for test cases + * Is intended to be overloaded with subclasses that override testObject, testFunction and argOrder + * The testObject is the default arguments for the testFunction + * The default testObject can be modified with the modify() method, making it easy to create new tests based on the default + * The testFunction is the target of the test and is called by the test() method. test() applies the testObject as arguments via toArgs() + * toArgs() uses argOrder to make sure the resulting array is in the right order of the arguments for the testFunction + */ +class TestCase { + constructor() { + this.testFunction = function() { + throw new Error("Test Function not implemented"); + }; + this.testObject = {}; + this.argOrder = []; + } + + /** + * toObject + * + * return a copy of the testObject + */ + toObject() { + return JSON.parse(JSON.stringify(this.testObject)); // cheap clone + } + + /** + * toArgs + * + * converts test object to an array that is ordered in the same way as the arguments to the test function + */ + toArgs() { + var ret = []; + // XXX, TODO: this won't necessarily produce the args in the right order + for (let idx of this.argOrder) { + ret.push(this.testObject[idx]); + } + return ret; + } + + /** + * modify + * + * update the internal object by a path / value combination + * e.g. : + * modify ("foo.bar", 3) + * accepts three types of args: + * "foo.bar", 3 + * {path: "foo.bar", value: 3} + * [{path: "foo.bar", value: 3}, ...] + */ + modify(arg1, arg2) { + var mods; + + // check for the two argument scenario + if (typeof arg1 === "string" && arg2 !== undefined) { + mods = { + path: arg1, + value: arg2 + }; + } else { + mods = arg1; + } + + // accept a single modification object instead of an array + if (!Array.isArray(mods) && typeof mods === "object") { + mods = [mods]; + } + + // iterate through each of the desired modifications, and call recursiveSetObject on them + var obj = this.testObject; + for (let idx in mods) { + var mod = mods[idx]; + let paths = mod.path.split("."); + recursiveSetObject(this.testObject, paths, mod.value); + } + + // iterates through nested `obj` using the `pathArray`, creating the path if it doesn't exist + // when the final leaf of the path is found, it is assigned the specified value + function recursiveSetObject(obj, pathArray, value) { + var currPath = pathArray.shift(); + if (typeof obj[currPath] !== "object") { + obj[currPath] = {}; + } + if (pathArray.length > 0) { + return recursiveSetObject(obj[currPath], pathArray, value); + } + obj[currPath] = value; + } + + return this; + } + + /** + * test + * + * run the test function with the top-level properties of the test object applied as arguments + */ + test() { + return this.testFunction(...this.toArgs()); + } + + /** + * testArgs + * + * calls test() with testObject() and expects it to fail with a TypeError() + */ + testBadArgs(testDesc) { + promise_test(function(t) { + return promise_rejects(t, new TypeError(), this.test()); + }.bind(this), testDesc); + } +} + +/** + * MakeCredentialTest + * + * tests the WebAuthn makeCredential() interface + */ +class MakeCredentialTest extends TestCase { + constructor() { + // initialize the parent class + super(); + + // the function to be tested + this.testFunction = navigator.authentication.makeCredential; + + // the default object to pass to makeCredential, to be modified with modify() for various tests + // var challenge = Uint8Array.from("Y2xpbWIgYSBtb3VudGFpbg"); + this.testObject = { + accountInformation: { + rpDisplayName: "ACME", + displayName: "John P. Smith", + name: "johnpsmith@example.com", + id: "1098237235409872", + imageUri: "https://pics.acme.com/00/p/aBjjjpqPb.png" + }, + cryptoParameters: [{ + type: "ScopedCred", + algorithm: "RSASSA-PKCS1-v1_5", + }], + attestationChallenge: Uint8Array.from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]).buffer + }; + + // how to order the properties of testObject when passing them to makeCredential + this.argOrder = [ + "accountInformation", + "cryptoParameters", + "attestationChallenge", + "options" + ]; + + // enable the constructor to modify the default testObject + // would prefer to do this in the super class, but have to call super() before using `this.*` + if (arguments.length) this.modify(...arguments); + } +} + +//************* BEGIN DELETE AFTER 1/1/2017 *************** // +// XXX for development mode only!! +// debug() for debugging purposes... we can drop this later if it is considered ugly +// note that debug is currently an empty function (i.e. - prints no output) +// and debug only prints output if the polyfill is loaded +var debug = function() {}; +// if the WebAuthn API doesn't exist load a polyfill for testing +// note that the polyfill only gets loaded if navigator.authentication doesn't exist +// AND if the polyfill script is found at the right path (i.e. - the polyfill is opt-in) +function ensureInterface() { + return new Promise(function(resolve, reject) { + if (typeof navigator.authentication !== "object") { + debug = console.log; + + // dynamic loading of polyfill script by creating new <script> tag and seeing the src= + var scriptElem = document.createElement("script"); + if (typeof scriptElem !== "object") { + debug("ensureInterface: Error creating script element while attempting loading polyfill"); + return reject(new Error("ensureInterface: Error creating script element while loading polyfill")); + } + scriptElem.type = "application/javascript"; + scriptElem.onload = function() { + debug("!!! XXX - LOADING POLYFILL FOR WEBAUTHN TESTING - XXX !!!"); + return resolve(); + }; + scriptElem.onerror = function() { + return reject(new Error("navigator.authentication does not exist")); + }; + scriptElem.src = "/webauthn/webauthn-polyfill/webauthn-polyfill.js"; + if (document.body) { + document.body.appendChild(scriptElem); + } else { + debug("ensureInterface: DOM has no body"); + return reject(new Error("ensureInterface: DOM has no body")); + } + } + }); +} + +function standardSetup(cb) { + return ensureInterface() + .then(() => { + if (cb) return cb(); + }) + .catch((err) => { + return (err); + }); +} +//************* END DELETE AFTER 1/1/2017 *************** // \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https.html b/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https.html new file mode 100644 index 0000000..a09296b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https.html
@@ -0,0 +1,60 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WebAuthn WebIDL Tests</title> +<link rel="author" title="Adam Powers" href="mailto:adam@fidoalliance.org"> +<link rel="help" href="https://w3c.github.io/webauthn/#iface-credential"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src=helpers.js></script> +<!-- for testing WebIDL --> +<script src=/resources/WebIDLParser.js></script> +<script src=/resources/idlharness.js></script> +<body></body> +<script> +standardSetup(function() { + "use strict"; + + // loads an IDL file from the webserver + function fetchIdl(idlUrl) { + return new Promise(function(resolve, reject) { + if (typeof idlUrl !== "string") { + return reject("fetchIdl: expected argument to be URL string"); + } + var request = new XMLHttpRequest(); + request.open("GET", idlUrl); + request.send(); + request.onload = function() { + var idls = request.responseText; + return resolve(idls); + }; + }); + } + + // this does the real work of running the IDL tests + function runIdlTests(idls) { + return new Promise(function(resolve, reject) { + var idlArray = new window.IdlArray(); + + // static IDL tests + idlArray.add_untested_idls("interface Navigator { };"); + // TODO: change to "tested" for real browsers? + idlArray.add_untested_idls("partial interface Navigator { readonly attribute WebAuthentication authentication; };"); + idlArray.add_objects({ + WebAuthentication: ["navigator.authentication"] + }); + + // run test WebIDL tests loaded from the idls file + idlArray.add_idls(idls); + return resolve(idlArray.test()); + }); + } + + // test harness function + window.promise_test(function() { + return fetchIdl("interfaces.idl") // load the IDL file ... + .then(function(idls) { + return runIdlTests(idls); // ... then run the tests. + }); + }, "Validate WebAuthn IDL"); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.idl b/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.idl new file mode 100644 index 0000000..173e515 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.idl
@@ -0,0 +1,96 @@ +[SecureContext] interface WebAuthentication { + Promise < ScopedCredentialInfo > makeCredential ( + Account accountInformation, + sequence < ScopedCredentialParameters > cryptoParameters, + BufferSource attestationChallenge, + optional ScopedCredentialOptions options + ); + + Promise < WebAuthnAssertion > getAssertion ( + BufferSource assertionChallenge, + optional AssertionOptions options + ); +}; + +[SecureContext] +interface ScopedCredentialInfo { + readonly attribute ScopedCredential credential; + readonly attribute CryptoKey publicKey; + readonly attribute WebAuthnAttestation attestation; +}; + +dictionary Account { + required DOMString rpDisplayName; + required DOMString displayName; + required DOMString id; + DOMString name; + DOMString imageURL; +}; + +dictionary ScopedCredentialParameters { + required ScopedCredentialType type; + required AlgorithmIdentifier algorithm; +}; + +dictionary ScopedCredentialOptions { + unsigned long timeoutSeconds; + USVString rpId; + sequence < ScopedCredentialDescriptor > excludeList; + WebAuthnExtensions extensions; +}; + +[SecureContext] +interface WebAuthnAssertion { + readonly attribute ScopedCredential credential; + readonly attribute ArrayBuffer clientData; + readonly attribute ArrayBuffer authenticatorData; + readonly attribute ArrayBuffer signature; +}; + +dictionary AssertionOptions { + unsigned long timeoutSeconds; + USVString rpId; + sequence < ScopedCredentialDescriptor > allowList; + WebAuthnExtensions extensions; +}; + +dictionary WebAuthnExtensions { +}; + +[SecureContext] +interface WebAuthnAttestation { + readonly attribute USVString format; + readonly attribute ArrayBuffer clientData; + readonly attribute ArrayBuffer authenticatorData; + readonly attribute any attestation; +}; + +dictionary ClientData { + required DOMString challenge; + required DOMString origin; + required AlgorithmIdentifier hashAlg; + DOMString tokenBinding; + WebAuthnExtensions extensions; +}; + +enum ScopedCredentialType { + "ScopedCred" +}; + +[SecureContext] +interface ScopedCredential { + readonly attribute ScopedCredentialType type; + readonly attribute ArrayBuffer id; +}; + +dictionary ScopedCredentialDescriptor { + required ScopedCredentialType type; + required BufferSource id; + sequence < Transport > transports; +}; + +enum Transport { + "usb", + "nfc", + "ble" +}; \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-accountinformation.https.html b/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-accountinformation.https.html new file mode 100644 index 0000000..e0e95e58 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-accountinformation.https.html
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WebAuthn makeCredential accountInformation Tests</title> +<link rel="author" title="Adam Powers" href="mailto:adam@fidoalliance.org"> +<link rel="help" href="https://w3c.github.io/webauthn/#iface-credential"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src=helpers.js></script> +<body></body> +<script> +standardSetup(function() { + "use strict"; + + // accountInformation bad values + new MakeCredentialTest({path: "accountInformation", value: undefined}).testBadArgs("accountInformation missing"); + new MakeCredentialTest("accountInformation", "hi mom").testBadArgs("accountInformation is string"); + new MakeCredentialTest("accountInformation", {}).testBadArgs("accountInformation is empty object"); + // accountInformation.rpDisplayName + new MakeCredentialTest({path: "accountInformation.rpDisplayName", value: undefined}).testBadArgs("accountInformation missing rpDisplayName"); + new MakeCredentialTest("accountInformation.rpDisplayName", {}).testBadArgs("Bad accountInformation: rpDisplayName is object"); + new MakeCredentialTest("accountInformation.rpDisplayName", null).testBadArgs("Bad accountInformation: rpDisplayName is null"); + new MakeCredentialTest("accountInformation.rpDisplayName", "").testBadArgs("Bad accountInformation: rpDisplayName is empty String"); + // accountInformation.displayName + new MakeCredentialTest({path: "accountInformation.displayName", value: undefined}).testBadArgs("accountInformation missing displayName"); + new MakeCredentialTest("accountInformation.displayName", {}).testBadArgs("Bad accountInformation: displayName is object"); + new MakeCredentialTest("accountInformation.displayName", null).testBadArgs("Bad accountInformation: displayName is null"); + new MakeCredentialTest("accountInformation.displayName", "").testBadArgs("Bad accountInformation: displayName is empty String"); + // accountInformation.id + new MakeCredentialTest({path: "accountInformation.id", value: undefined}).testBadArgs("accountInformation missing id"); + new MakeCredentialTest("accountInformation.id", {}).testBadArgs("Bad accountInformation: id is object"); + new MakeCredentialTest("accountInformation.id", null).testBadArgs("Bad accountInformation: id is null"); + new MakeCredentialTest("accountInformation.id", "").testBadArgs("Bad accountInformation: id is empty String"); +}); +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-attestationchallenge.https.html b/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-attestationchallenge.https.html new file mode 100644 index 0000000..441d1ad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-attestationchallenge.https.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WebAuthn makeCredential attestationChallenge Tests</title> +<link rel="author" title="Adam Powers" href="mailto:adam@fidoalliance.org"> +<link rel="help" href="https://w3c.github.io/webauthn/#iface-credential"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src=helpers.js></script> +<body></body> +<script> +standardSetup(function() { + "use strict"; + + // attestationChallenge bad values + new MakeCredentialTest({path: "attestationChallenge", value: undefined}).testBadArgs("attestationChallenge missing"); + new MakeCredentialTest("attestationChallenge", "hi mom").testBadArgs("accountInformation is string"); + new MakeCredentialTest("attestationChallenge", {}).testBadArgs("accountInformation is empty object"); + new MakeCredentialTest("attestationChallenge", Uint8Array.from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])).testBadArgs("accountInformation is Uint8Array"); +}); +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-cryptoparameters.https.html b/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-cryptoparameters.https.html new file mode 100644 index 0000000..7e177573 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/makecredential-badargs-cryptoparameters.https.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WebAuthn makeCredential cryptoParameters Tests</title> +<link rel="author" title="Adam Powers" href="mailto:adam@fidoalliance.org"> +<link rel="help" href="https://w3c.github.io/webauthn/#iface-credential"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src=helpers.js></script> +<body></body> +<script> +standardSetup(function() { + "use strict"; + + // cryptoParameters bad values + new MakeCredentialTest({path: "cryptoParameters", value: undefined}).testBadArgs("cryptoParameters is missing"); + new MakeCredentialTest("cryptoParameters", "hi mom").testBadArgs("cryptoParameters is String"); + new MakeCredentialTest("cryptoParameters", []).testBadArgs("cryptoParameters is empty Array"); + // cryptoParameters.type + new MakeCredentialTest({path: "cryptoParameters.0.type", value: undefined}).testBadArgs("cryptoParameters missing type"); + new MakeCredentialTest("cryptoParameters.0.type", {}).testBadArgs("Bad cryptoParameters: type is object"); + new MakeCredentialTest("cryptoParameters.0.type", null).testBadArgs("Bad cryptoParameters: type is null"); + new MakeCredentialTest("cryptoParameters.0.type", "").testBadArgs("Bad cryptoParameters: type is empty String"); + new MakeCredentialTest("cryptoParameters.0.type", "FIDO_2_0").testBadArgs("Bad cryptoParameters: type is not 'ScopedCred'"); + // cryptoParameters.algorithm + new MakeCredentialTest({path: "cryptoParameters.0.algorithm", value: undefined}).testBadArgs("cryptoParameters missing algorithm"); + new MakeCredentialTest("cryptoParameters.0.algorithm", {}).testBadArgs("Bad cryptoParameters: algorithm is object"); + new MakeCredentialTest("cryptoParameters.0.algorithm", null).testBadArgs("Bad cryptoParameters: algorithm is null"); + new MakeCredentialTest("cryptoParameters.0.algorithm", "").testBadArgs("Bad cryptoParameters: algorithm is empty String"); + // multiple cryptoParameters + new MakeCredentialTest("cryptoParameters.1", {type: "FIDO_2_0", algorithm: "RSASSA-PKCS1-v1_5"}).testBadArgs("Bad cryptoParameters: second param has invalid type"); + new MakeCredentialTest("cryptoParameters.1", {type: "ScopedCred", algorithm: ""}).testBadArgs("Bad cryptoParameters: second param has algorithm of empty String"); +}); +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror-expected.txt index 6cfcdb482..e36474c 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror-expected.txt
@@ -1,7 +1,6 @@ This is a testharness.js-based test. FAIL The default value of onmessageerror is null assert_equals: body expected (object) null but got (undefined) undefined FAIL The onmessageerror content attribute must be compiled into the onmessageerror property assert_equals: The onmessageerror property must be a function expected "function" but got "undefined" -FAIL The onmessageerror content attribute must execute when an event is dispatched on the body assert_true: Dispatching the event must run the code expected true got false FAIL The onmessageerror content attribute must execute when an event is dispatched on the window assert_true: Dispatching the event must run the code expected true got false Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror.html index a320e55..2cb51ee 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/messageerror.html
@@ -37,16 +37,6 @@ document.body.setAttribute("onmessageerror", "window.messageErrorHappened = true;") - document.body.dispatchEvent(new Event("messageerror")); - - assert_true(window.messageErrorHappened, "Dispatching the event must run the code"); -}, "The onmessageerror content attribute must execute when an event is dispatched on the body"); - -test(t => { - t.add_cleanup(cleanup); - - document.body.setAttribute("onmessageerror", "window.messageErrorHappened = true;") - window.dispatchEvent(new Event("messageerror")); assert_true(window.messageErrorHappened, "Dispatching the event must run the code");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt index 9e869b0..e23fd80 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt
@@ -1,4 +1,7 @@ This is a testharness.js-based test. -FAIL Triggers ontrack when called with a remote description and the MSID is parsed. assert_unreached: Error OperationError: TEST_ERROR Reached unreachable code +FAIL Triggers ontrack when called with a remote description and the MSID of the stream is is parsed. assert_unreached: Error OperationError: TEST_ERROR Reached unreachable code +FAIL Malformed SDP description should be rejected with RTCError RTCError is not defined +PASS Invalid SDP type should be rejected with TypeError +FAIL SDP type that is invalid for current signaling state should be rejected with InvalidStateError InvalidStateError is not defined Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription.html b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription.html index 109016fe..449b3013 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription.html
@@ -9,8 +9,10 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script type="text/javascript"> + 'use strict'; + // tests that ontrack is called and parses the msid information from the SDP and creates - // the streams and tracks with matching identifiers. + // the streams with matching identifiers. async_test(function(test) { const sdp = 'v=0\r\n' + 'o=- 166855176514521964 2 IN IP4 127.0.0.1\r\n' + @@ -34,9 +36,6 @@ var pc = new RTCPeerConnection(null); pc.ontrack = test.step_func(function(event) { - assert_equals(event.track.kind, 'audio', 'ontrack fires with an audio track'); - assert_equals(event.track.id, 'track1', 'the track name is parsed from the MSID line'); - assert_equals(event.streams.length, 1, 'the track belongs to one MediaStream'); assert_equals(event.streams[0].id, 'stream1', 'the stream name is parsed from the MSID line'); test.done(); @@ -46,7 +45,43 @@ .catch(test.step_func(function(e) { assert_unreached('Error ' + e.name + ': ' + e.message); })); - }, 'Triggers ontrack when called with a remote description and the MSID is parsed.'); + }, 'Triggers ontrack when called with a remote description and the MSID of the stream is is parsed.'); + + promise_test(t => { + const pc = new RTCPeerConnection(); + return promise_rejects(t, new RTCError(), + pc.setRemoteDescription({ + // valid SDP type + type: 'offer', + // malformed SDP description + sdp: 'bogus' + })); + }, 'Malformed SDP description should be rejected with RTCError'); + + promise_test(t => { + const pc = new RTCPeerConnection(); + return promise_rejects(t, new TypeError(), + pc.setRemoteDescription({ + // invalid enum value is caught at IDL level before + // method is executed + type: 'bogus', + // bogus SDP should never be validated before type + sdp: 'bogus' + })); + }, 'Invalid SDP type should be rejected with TypeError'); + + promise_test(t => { + const pc = new RTCPeerConnection(); + + return promise_rejects(t, new InvalidStateError(), + pc.setRemoteDescription({ + // a new connection with stable state cannot accept answer type SDP + type: 'answer', + // bogus SDP should never be validated before validating type + sdp: 'bogus' + })); + }, 'SDP type that is invalid for current signaling state should be rejected with InvalidStateError'); + </script> </body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces-expected.txt new file mode 100644 index 0000000..f9c1052 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces-expected.txt
@@ -0,0 +1,371 @@ +This is a testharness.js-based test. +Found 367 tests; 156 PASS, 211 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Test driver +FAIL MediaStreamTrack interface: attribute isolated assert_true: The prototype object must have a property "isolated" expected true got false +FAIL MediaStreamTrack interface: attribute onisolationchange assert_true: The prototype object must have a property "onisolationchange" expected true got false +FAIL RTCPeerConnection interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined +PASS RTCPeerConnection interface object length +PASS RTCPeerConnection interface object name +FAIL RTCPeerConnection interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined +PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property +PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions) +PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions) +PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit) +PASS RTCPeerConnection interface: attribute localDescription +FAIL RTCPeerConnection interface: attribute currentLocalDescription assert_true: The prototype object must have a property "currentLocalDescription" expected true got false +FAIL RTCPeerConnection interface: attribute pendingLocalDescription assert_true: The prototype object must have a property "pendingLocalDescription" expected true got false +PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit) +PASS RTCPeerConnection interface: attribute remoteDescription +FAIL RTCPeerConnection interface: attribute currentRemoteDescription assert_true: The prototype object must have a property "currentRemoteDescription" expected true got false +FAIL RTCPeerConnection interface: attribute pendingRemoteDescription assert_true: The prototype object must have a property "pendingRemoteDescription" expected true got false +PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object]) +PASS RTCPeerConnection interface: attribute signalingState +PASS RTCPeerConnection interface: attribute iceGatheringState +PASS RTCPeerConnection interface: attribute iceConnectionState +FAIL RTCPeerConnection interface: attribute connectionState assert_true: The prototype object must have a property "connectionState" expected true got false +FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false +FAIL RTCPeerConnection interface: attribute defaultIceServers assert_own_property: The interface object must have a property "defaultIceServers" expected property "defaultIceServers" missing +FAIL RTCPeerConnection interface: operation getConfiguration() assert_own_property: interface prototype object missing non-static operation expected property "getConfiguration" missing +PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration) +PASS RTCPeerConnection interface: operation close() +PASS RTCPeerConnection interface: attribute onnegotiationneeded +PASS RTCPeerConnection interface: attribute onicecandidate +FAIL RTCPeerConnection interface: attribute onicecandidateerror assert_true: The prototype object must have a property "onicecandidateerror" expected true got false +PASS RTCPeerConnection interface: attribute onsignalingstatechange +PASS RTCPeerConnection interface: attribute oniceconnectionstatechange +PASS RTCPeerConnection interface: attribute onicegatheringstatechange +FAIL RTCPeerConnection interface: attribute onconnectionstatechange assert_true: The prototype object must have a property "onconnectionstatechange" expected true got false +FAIL RTCPeerConnection interface: attribute onfingerprintfailure assert_true: The prototype object must have a property "onfingerprintfailure" expected true got false +PASS RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback,RTCPeerConnectionErrorCallback,RTCOfferOptions) +PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit,VoidFunction,RTCPeerConnectionErrorCallback) +PASS RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback,RTCPeerConnectionErrorCallback) +PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit,VoidFunction,RTCPeerConnectionErrorCallback) +PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object],VoidFunction,RTCPeerConnectionErrorCallback) +PASS RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier) +PASS RTCPeerConnection interface: operation getSenders() +PASS RTCPeerConnection interface: operation getReceivers() +FAIL RTCPeerConnection interface: operation getTransceivers() assert_own_property: interface prototype object missing non-static operation expected property "getTransceivers" missing +FAIL RTCPeerConnection interface: operation addTrack(MediaStreamTrack,MediaStream) assert_own_property: interface prototype object missing non-static operation expected property "addTrack" missing +FAIL RTCPeerConnection interface: operation removeTrack(RTCRtpSender) assert_own_property: interface prototype object missing non-static operation expected property "removeTrack" missing +FAIL RTCPeerConnection interface: operation addTransceiver([object Object],[object Object],RTCRtpTransceiverInit) assert_own_property: interface prototype object missing non-static operation expected property "addTransceiver" missing +FAIL RTCPeerConnection interface: attribute ontrack assert_true: The prototype object must have a property "ontrack" expected true got false +FAIL RTCPeerConnection interface: attribute sctp assert_true: The prototype object must have a property "sctp" expected true got false +PASS RTCPeerConnection interface: operation createDataChannel(USVString,RTCDataChannelInit) +PASS RTCPeerConnection interface: attribute ondatachannel +PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack) +FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString,RTCIdentityProviderOptions) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing +FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing +FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false +FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false +FAIL RTCPeerConnection interface: attribute idpErrorInfo assert_true: The prototype object must have a property "idpErrorInfo" expected true got false +PASS RTCPeerConnection must be primary interface of new RTCPeerConnection +FAIL Stringification of new RTCPeerConnection Cannot read property 'has_stringifier' of undefined +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "createOffer" with the proper type (0) +PASS RTCPeerConnection interface: calling createOffer(RTCOfferOptions) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "createAnswer" with the proper type (1) +PASS RTCPeerConnection interface: calling createAnswer(RTCAnswerOptions) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "setLocalDescription" with the proper type (2) +PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "localDescription" with the proper type (3) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "currentLocalDescription" with the proper type (4) assert_inherits: property "currentLocalDescription" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "pendingLocalDescription" with the proper type (5) assert_inherits: property "pendingLocalDescription" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "setRemoteDescription" with the proper type (6) +PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "remoteDescription" with the proper type (7) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "currentRemoteDescription" with the proper type (8) assert_inherits: property "currentRemoteDescription" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "pendingRemoteDescription" with the proper type (9) assert_inherits: property "pendingRemoteDescription" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "addIceCandidate" with the proper type (10) +PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object]) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "signalingState" with the proper type (11) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "iceGatheringState" with the proper type (12) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "iceConnectionState" with the proper type (13) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "connectionState" with the proper type (14) assert_inherits: property "connectionState" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "canTrickleIceCandidates" with the proper type (15) assert_inherits: property "canTrickleIceCandidates" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "defaultIceServers" with the proper type (16) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "getConfiguration" with the proper type (17) assert_inherits: property "getConfiguration" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "setConfiguration" with the proper type (18) +PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "close" with the proper type (19) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "onnegotiationneeded" with the proper type (20) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "onicecandidate" with the proper type (21) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "onicecandidateerror" with the proper type (22) assert_inherits: property "onicecandidateerror" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "onsignalingstatechange" with the proper type (23) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "oniceconnectionstatechange" with the proper type (24) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "onicegatheringstatechange" with the proper type (25) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "onconnectionstatechange" with the proper type (26) assert_inherits: property "onconnectionstatechange" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "onfingerprintfailure" with the proper type (27) assert_inherits: property "onfingerprintfailure" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "createOffer" with the proper type (28) +PASS RTCPeerConnection interface: calling createOffer(RTCSessionDescriptionCallback,RTCPeerConnectionErrorCallback,RTCOfferOptions) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "setLocalDescription" with the proper type (29) +PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit,VoidFunction,RTCPeerConnectionErrorCallback) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "createAnswer" with the proper type (30) +PASS RTCPeerConnection interface: calling createAnswer(RTCSessionDescriptionCallback,RTCPeerConnectionErrorCallback) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "setRemoteDescription" with the proper type (31) +PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit,VoidFunction,RTCPeerConnectionErrorCallback) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "addIceCandidate" with the proper type (32) +PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object],VoidFunction,RTCPeerConnectionErrorCallback) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "generateCertificate" with the proper type (33) +FAIL RTCPeerConnection interface: calling generateCertificate(AlgorithmIdentifier) on new RTCPeerConnection with too few arguments must throw TypeError assert_unreached: Throws "TypeError: Cannot read property 'apply' of undefined" instead of rejecting promise Reached unreachable code +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "getSenders" with the proper type (34) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "getReceivers" with the proper type (35) +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "getTransceivers" with the proper type (36) assert_inherits: property "getTransceivers" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "addTrack" with the proper type (37) assert_inherits: property "addTrack" not found in prototype chain +FAIL RTCPeerConnection interface: calling addTrack(MediaStreamTrack,MediaStream) on new RTCPeerConnection with too few arguments must throw TypeError assert_inherits: property "addTrack" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "removeTrack" with the proper type (38) assert_inherits: property "removeTrack" not found in prototype chain +FAIL RTCPeerConnection interface: calling removeTrack(RTCRtpSender) on new RTCPeerConnection with too few arguments must throw TypeError assert_inherits: property "removeTrack" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "addTransceiver" with the proper type (39) assert_inherits: property "addTransceiver" not found in prototype chain +FAIL RTCPeerConnection interface: calling addTransceiver([object Object],[object Object],RTCRtpTransceiverInit) on new RTCPeerConnection with too few arguments must throw TypeError assert_inherits: property "addTransceiver" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "ontrack" with the proper type (40) assert_inherits: property "ontrack" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "sctp" with the proper type (41) assert_inherits: property "sctp" not found in prototype chain +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "createDataChannel" with the proper type (42) +PASS RTCPeerConnection interface: calling createDataChannel(USVString,RTCDataChannelInit) on new RTCPeerConnection with too few arguments must throw TypeError +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "ondatachannel" with the proper type (43) +PASS RTCPeerConnection interface: new RTCPeerConnection must inherit property "getStats" with the proper type (44) +PASS RTCPeerConnection interface: calling getStats(MediaStreamTrack) on new RTCPeerConnection with too few arguments must throw TypeError +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "setIdentityProvider" with the proper type (45) assert_inherits: property "setIdentityProvider" not found in prototype chain +FAIL RTCPeerConnection interface: calling setIdentityProvider(DOMString,RTCIdentityProviderOptions) on new RTCPeerConnection with too few arguments must throw TypeError assert_inherits: property "setIdentityProvider" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "getIdentityAssertion" with the proper type (46) assert_inherits: property "getIdentityAssertion" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "peerIdentity" with the proper type (47) assert_inherits: property "peerIdentity" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "idpLoginUrl" with the proper type (48) assert_inherits: property "idpLoginUrl" not found in prototype chain +FAIL RTCPeerConnection interface: new RTCPeerConnection must inherit property "idpErrorInfo" with the proper type (49) assert_inherits: property "idpErrorInfo" not found in prototype chain +PASS RTCSessionDescription interface: existence and properties of interface object +FAIL RTCSessionDescription interface object length assert_equals: wrong value for RTCSessionDescription.length expected 1 but got 0 +PASS RTCSessionDescription interface object name +PASS RTCSessionDescription interface: existence and properties of interface prototype object +PASS RTCSessionDescription interface: existence and properties of interface prototype object's "constructor" property +FAIL RTCSessionDescription interface: attribute type assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }" +FAIL RTCSessionDescription interface: attribute sdp assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }" +PASS RTCSessionDescription must be primary interface of new RTCSessionDescription({ type: "offer" }) +PASS Stringification of new RTCSessionDescription({ type: "offer" }) +PASS RTCSessionDescription interface: new RTCSessionDescription({ type: "offer" }) must inherit property "type" with the proper type (0) +FAIL RTCSessionDescription interface: new RTCSessionDescription({ type: "offer" }) must inherit property "sdp" with the proper type (1) assert_equals: expected "string" but got "object" +PASS RTCIceCandidate interface: existence and properties of interface object +PASS RTCIceCandidate interface object length +PASS RTCIceCandidate interface object name +PASS RTCIceCandidate interface: existence and properties of interface prototype object +PASS RTCIceCandidate interface: existence and properties of interface prototype object's "constructor" property +FAIL RTCIceCandidate interface: attribute candidate assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }" +FAIL RTCIceCandidate interface: attribute sdpMid assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }" +FAIL RTCIceCandidate interface: attribute sdpMLineIndex assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }" +FAIL RTCIceCandidate interface: attribute foundation assert_true: The prototype object must have a property "foundation" expected true got false +FAIL RTCIceCandidate interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false +FAIL RTCIceCandidate interface: attribute ip assert_true: The prototype object must have a property "ip" expected true got false +FAIL RTCIceCandidate interface: attribute protocol assert_true: The prototype object must have a property "protocol" expected true got false +FAIL RTCIceCandidate interface: attribute port assert_true: The prototype object must have a property "port" expected true got false +FAIL RTCIceCandidate interface: attribute type assert_true: The prototype object must have a property "type" expected true got false +FAIL RTCIceCandidate interface: attribute tcpType assert_true: The prototype object must have a property "tcpType" expected true got false +FAIL RTCIceCandidate interface: attribute relatedAddress assert_true: The prototype object must have a property "relatedAddress" expected true got false +FAIL RTCIceCandidate interface: attribute relatedPort assert_true: The prototype object must have a property "relatedPort" expected true got false +FAIL RTCIceCandidate interface: attribute ufrag assert_true: The prototype object must have a property "ufrag" expected true got false +FAIL RTCIceCandidate must be primary interface of new RTCIceCandidate assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL Stringification of new RTCIceCandidate assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "candidate" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "sdpMid" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "sdpMLineIndex" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "foundation" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "priority" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "ip" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "protocol" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "port" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "type" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "tcpType" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "relatedAddress" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "relatedPort" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCIceCandidate interface: new RTCIceCandidate must inherit property "ufrag" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'RTCIceCandidate': 1 argument required, but only 0 present." +FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined +PASS RTCPeerConnectionIceEvent interface object length +PASS RTCPeerConnectionIceEvent interface object name +FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined +PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's "constructor" property +PASS RTCPeerConnectionIceEvent interface: attribute candidate +FAIL RTCPeerConnectionIceEvent interface: attribute url assert_true: The prototype object must have a property "url" expected true got false +PASS RTCPeerConnectionIceEvent must be primary interface of new RTCPeerConnectionIceEvent("ice") +FAIL Stringification of new RTCPeerConnectionIceEvent("ice") Cannot read property 'has_stringifier' of undefined +PASS RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent("ice") must inherit property "candidate" with the proper type (0) +FAIL RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent("ice") must inherit property "url" with the proper type (1) assert_inherits: property "url" not found in prototype chain +FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface object length assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface object name assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface: attribute hostCandidate assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface: attribute url assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorCode assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorText assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing +FAIL RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined" +FAIL Stringification of new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined" +FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 }); must inherit property "hostCandidate" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined" +FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 }); must inherit property "url" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined" +FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 }); must inherit property "errorCode" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined" +FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 }); must inherit property "errorText" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined" +PASS RTCCertificate interface: existence and properties of interface object +PASS RTCCertificate interface object length +PASS RTCCertificate interface object name +PASS RTCCertificate interface: existence and properties of interface prototype object +PASS RTCCertificate interface: existence and properties of interface prototype object's "constructor" property +PASS RTCCertificate interface: attribute expires +FAIL RTCCertificate interface: attribute fingerprints assert_true: The prototype object must have a property "fingerprints" expected true got false +FAIL RTCCertificate interface: operation getAlgorithm() assert_own_property: interface prototype object missing non-static operation expected property "getAlgorithm" missing +PASS RTCCertificate must be primary interface of certificate +PASS Stringification of certificate +PASS RTCCertificate interface: certificate must inherit property "expires" with the proper type (0) +FAIL RTCCertificate interface: certificate must inherit property "fingerprints" with the proper type (1) assert_inherits: property "fingerprints" not found in prototype chain +FAIL RTCCertificate interface: certificate must inherit property "getAlgorithm" with the proper type (2) assert_inherits: property "getAlgorithm" not found in prototype chain +PASS RTCRtpSender interface: existence and properties of interface object +PASS RTCRtpSender interface object length +PASS RTCRtpSender interface object name +PASS RTCRtpSender interface: existence and properties of interface prototype object +PASS RTCRtpSender interface: existence and properties of interface prototype object's "constructor" property +PASS RTCRtpSender interface: attribute track +FAIL RTCRtpSender interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false +FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false +FAIL RTCRtpSender interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing +FAIL RTCRtpSender interface: operation setParameters(RTCRtpParameters) assert_own_property: interface prototype object missing non-static operation expected property "setParameters" missing +FAIL RTCRtpSender interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing +FAIL RTCRtpSender interface: operation replaceTrack(MediaStreamTrack) assert_own_property: interface prototype object missing non-static operation expected property "replaceTrack" missing +FAIL RTCRtpSender interface: attribute dtmf assert_true: The prototype object must have a property "dtmf" expected true got false +PASS RTCRtpReceiver interface: existence and properties of interface object +PASS RTCRtpReceiver interface object length +PASS RTCRtpReceiver interface object name +PASS RTCRtpReceiver interface: existence and properties of interface prototype object +PASS RTCRtpReceiver interface: existence and properties of interface prototype object's "constructor" property +PASS RTCRtpReceiver interface: attribute track +FAIL RTCRtpReceiver interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false +FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false +FAIL RTCRtpReceiver interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing +FAIL RTCRtpReceiver interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing +PASS RTCRtpReceiver interface: operation getContributingSources() +PASS RTCRtpContributingSource interface: existence and properties of interface object +PASS RTCRtpContributingSource interface object length +PASS RTCRtpContributingSource interface object name +PASS RTCRtpContributingSource interface: existence and properties of interface prototype object +PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's "constructor" property +PASS RTCRtpContributingSource interface: attribute timestamp +PASS RTCRtpContributingSource interface: attribute source +FAIL RTCRtpContributingSource interface: attribute audioLevel assert_true: The prototype object must have a property "audioLevel" expected true got false +FAIL RTCRtpContributingSource interface: attribute voiceActivityFlag assert_true: The prototype object must have a property "voiceActivityFlag" expected true got false +FAIL RTCRtpTransceiver interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface object length assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface object name assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: attribute mid assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: attribute sender assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: attribute receiver assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: attribute stopped assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: attribute direction assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: attribute currentDirection assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: operation setDirection(RTCRtpTransceiverDirection) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: operation stop() assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCRtpTransceiver interface: operation setCodecPreferences([object Object]) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing +FAIL RTCDtlsTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface object length assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface object name assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface: attribute transport assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface: attribute state assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCDtlsTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing +FAIL RTCIceTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface object length assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface object name assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute role assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute component assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute state assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute gatheringState assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: operation getLocalCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: operation getRemoteCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: operation getSelectedCandidatePair() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: operation getLocalParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: operation getRemoteParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute ongatheringstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCIceTransport interface: attribute onselectedcandidatepairchange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing +FAIL RTCTrackEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface object length assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface object name assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface: attribute receiver assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface: attribute track assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface: attribute streams assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCTrackEvent interface: attribute transceiver assert_own_property: self does not have own property "RTCTrackEvent" expected property "RTCTrackEvent" missing +FAIL RTCSctpTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCSctpTransport interface object length assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCSctpTransport interface object name assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCSctpTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCSctpTransport interface: attribute transport assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCSctpTransport interface: attribute maxMessageSize assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing +FAIL RTCDataChannel interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined +PASS RTCDataChannel interface object length +PASS RTCDataChannel interface object name +FAIL RTCDataChannel interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined +PASS RTCDataChannel interface: existence and properties of interface prototype object's "constructor" property +PASS RTCDataChannel interface: attribute label +PASS RTCDataChannel interface: attribute ordered +FAIL RTCDataChannel interface: attribute maxPacketLifeTime assert_true: The prototype object must have a property "maxPacketLifeTime" expected true got false +PASS RTCDataChannel interface: attribute maxRetransmits +PASS RTCDataChannel interface: attribute protocol +PASS RTCDataChannel interface: attribute negotiated +PASS RTCDataChannel interface: attribute id +FAIL RTCDataChannel interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false +PASS RTCDataChannel interface: attribute readyState +PASS RTCDataChannel interface: attribute bufferedAmount +PASS RTCDataChannel interface: attribute bufferedAmountLowThreshold +PASS RTCDataChannel interface: attribute onopen +PASS RTCDataChannel interface: attribute onbufferedamountlow +PASS RTCDataChannel interface: attribute onerror +PASS RTCDataChannel interface: attribute onclose +PASS RTCDataChannel interface: operation close() +PASS RTCDataChannel interface: attribute onmessage +PASS RTCDataChannel interface: attribute binaryType +PASS RTCDataChannel interface: operation send(USVString) +PASS RTCDataChannel interface: operation send(Blob) +PASS RTCDataChannel interface: operation send(ArrayBuffer) +PASS RTCDataChannel interface: operation send(ArrayBufferView) +FAIL RTCDataChannelEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined +PASS RTCDataChannelEvent interface object length +PASS RTCDataChannelEvent interface object name +FAIL RTCDataChannelEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined +PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's "constructor" property +PASS RTCDataChannelEvent interface: attribute channel +FAIL RTCDTMFSender interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface object length assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface object name assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface: operation insertDTMF(DOMString,unsigned long,unsigned long) assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface: attribute ontonechange assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFSender interface: attribute toneBuffer assert_own_property: self does not have own property "RTCDTMFSender" expected property "RTCDTMFSender" missing +FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing +FAIL RTCDTMFToneChangeEvent interface object length assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing +FAIL RTCDTMFToneChangeEvent interface object name assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing +FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing +FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing +FAIL RTCDTMFToneChangeEvent interface: attribute tone assert_own_property: self does not have own property "RTCDTMFToneChangeEvent" expected property "RTCDTMFToneChangeEvent" missing +PASS RTCStatsReport interface: existence and properties of interface object +PASS RTCStatsReport interface object length +PASS RTCStatsReport interface object name +PASS RTCStatsReport interface: existence and properties of interface prototype object +PASS RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property +PASS RTCIdentityProviderGlobalScope interface: existence and properties of interface object +PASS RTCIdentityProviderRegistrar interface: existence and properties of interface object +FAIL RTCIdentityAssertion interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCIdentityAssertion interface object length assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCIdentityAssertion interface object name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCIdentityAssertion interface: attribute idp assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCIdentityAssertion interface: attribute name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing +FAIL RTCErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing +FAIL RTCErrorEvent interface object length assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing +FAIL RTCErrorEvent interface object name assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing +FAIL RTCErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing +FAIL RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing +FAIL RTCErrorEvent interface: attribute error assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.html b/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.html new file mode 100644 index 0000000..e64286d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.html
@@ -0,0 +1,57 @@ +<!doctype html> +<html> + <head> + <title>WebRTC IDL Tests</title> + </head> + <body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src=/resources/WebIDLParser.js></script> + <script src=/resources/idlharness.js></script> + <script> + 'use strict'; + + function generateCertificate() { + if (!RTCPeerConnection.generateCertificate) + return null; + return RTCPeerConnection.generateCertificate({ + name: 'RSASSA-PKCS1-v1_5', + modulusLength: 2048, + publicExponent: new Uint8Array([1, 0, 1]), + hash: 'SHA-256' + }) + .catch(() => {}); // ignore error + } + + function doIdlTest([idlText, certificate]) { + const idlArray = new IdlArray(); + + idlArray.add_untested_idls('interface EventHandler {};'); + idlArray.add_untested_idls('interface MediaStreamTrack {};'); + idlArray.add_idls(idlText); + + // TODO: Add object for all IDL interfaces + idlArray.add_objects({ + 'RTCPeerConnection': ['new RTCPeerConnection'], + 'RTCSessionDescription': ['new RTCSessionDescription({ type: "offer" })'], + 'RTCIceCandidate': ['new RTCIceCandidate'], + 'RTCPeerConnectionIceEvent': ['new RTCPeerConnectionIceEvent("ice")'], + 'RTCPeerConnectionIceErrorEvent': ['new RTCPeerConnectionIceErrorEvent("ice-error", { errorCode: 701 });'], + }); + + if (certificate) { + window.certificate = certificate; + idlArray.add_objects({'RTCCertificate': ['certificate']}); + } + + idlArray.test(); + } + + promise_test(() => { + return Promise.all([fetch('/interfaces/webrtc-pc.idl').then(response => response.text()), + generateCertificate()]) + .then(doIdlTest); + }, 'Test driver'); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-1000-reason.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-1000-reason.htm new file mode 100644 index 0000000..8424d78 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-1000-reason.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close WebSocket - Code is 1000 and reason</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000, "Clean Close"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be opened"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-1000.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-1000.htm new file mode 100644 index 0000000..1622109 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-1000.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close WebSocket - Code is 1000</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be opened"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-Reason-124Bytes.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-Reason-124Bytes.htm new file mode 100644 index 0000000..82a661e2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-Reason-124Bytes.htm
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close WebSocket - Reason is more than 123 bytes long</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown"); + + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', test.step_func(function (evt) { + var reason = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"; + assert_equals(reason.length, 124); + assert_throws("SYNTAX_ERR", function () { wsocket.close(1000, reason) }); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-reason-unpaired-surrogates.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-reason-unpaired-surrogates.htm new file mode 100644 index 0000000..9ad8d618 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-reason-unpaired-surrogates.htm
@@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close WebSocket - Reason with unpaired surrogates</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed"); + + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + var replacementChar = "\uFFFD"; + var reason = "\uD807"; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000, reason); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be opened"); + assert_equals(evt.reason, replacementChar, "reason replaced with replacement character"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-undefined.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-undefined.htm new file mode 100644 index 0000000..d6c89afb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Close-undefined.htm
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close WebSocket - Code is undefined</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test(); + + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', test.step_func(function (evt) { + wsocket.close(undefined); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-extensions-empty.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-extensions-empty.htm new file mode 100644 index 0000000..2f9f7976 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-extensions-empty.htm
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - wsocket.extensions should be set to '' after connection is established - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - wsocket.extensions should be set to '' after connection is established - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.extensions, "", "extensions should be empty"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be closed"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-url-with-space-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-url-with-space-expected.txt new file mode 100644 index 0000000..f4448a51 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-url-with-space-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL W3C WebSocket API - Create Secure WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown assert_throws: function "function () { wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl) }" did not throw +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-url-with-space.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-url-with-space.htm new file mode 100644 index 0000000..d2dfe1bd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-url-with-space.htm
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket - url with space</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket; + var spaceUrl = "web platform.test"; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl) }); + }, "W3C WebSocket API - Create Secure WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-array-protocols.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-array-protocols.htm new file mode 100644 index 0000000..d61a429c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-array-protocols.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket with valid url and array of protocols</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, true); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-binaryType-blob.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-binaryType-blob.htm new file mode 100644 index 0000000..0261fb4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-binaryType-blob.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket - binaryType set correctly</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - wsocket.binaryType should be set to 'blob' after connection is established - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - wsocket.binaryType should be set to 'blob' after connection is established - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.binaryType, "blob", "binaryType should be set to Blob"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm new file mode 100644 index 0000000..a7f1510a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket and verify if protocol is set correctly after connection</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL and protocol string - protocol should be set correctly - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed"); + + var wsocket = CreateWebSocket(true, true, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.protocol, "echo", "protocol should be set to echo"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-protocol-string.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-protocol-string.htm new file mode 100644 index 0000000..7250b4e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url-protocol-string.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket with valid url and protocol string</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Check readyState is 1"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed"); + + var wsocket = CreateWebSocket(true, true, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url.htm new file mode 100644 index 0000000..1fe6c0f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-valid-url.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket with valid url</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Pass a valid URL - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-verify-url-set-non-default-port.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-verify-url-set-non-default-port.htm new file mode 100644 index 0000000..63e49f4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-Secure-verify-url-set-non-default-port.htm
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket - wsocket.url is set correctly - non default port</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var urlNonDefaultPort = "wss://" + __SERVER__NAME + ":" + __NEW__SECURE__PORT + "/" + __PATH; + var wsocket = new WebSocket(urlNonDefaultPort); + assert_equals(wsocket.url, urlNonDefaultPort, "wsocket.url is set correctly"); + }, "W3C WebSocket API - Create Secure WebSocket - wsocket.url should be set correctly") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-asciiSep-protocol-string.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-asciiSep-protocol-string.htm new file mode 100644 index 0000000..0d0480eb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-asciiSep-protocol-string.htm
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - ascii protocol string with separator</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + if(window.WebSocket) { + test(function () { + var asciiWithSep = "/echo"; + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketWithAsciiSep(asciiWithSep) }); + }, "W3C WebSocket API - Create WebSocket - Pass a valid URL and a protocol string with an ascii separator character - SYNTAX_ERR is thrown") + } + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-blocked-port-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-blocked-port-expected.txt new file mode 100644 index 0000000..14d919c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-blocked-port-expected.txt
@@ -0,0 +1,69 @@ +This is a testharness.js-based test. +Found 65 tests; 1 PASS, 64 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Basic check +FAIL WebSocket blocked port test 1 Failed to construct 'WebSocket': The port 1 is not allowed. +FAIL WebSocket blocked port test 7 Failed to construct 'WebSocket': The port 7 is not allowed. +FAIL WebSocket blocked port test 9 Failed to construct 'WebSocket': The port 9 is not allowed. +FAIL WebSocket blocked port test 11 Failed to construct 'WebSocket': The port 11 is not allowed. +FAIL WebSocket blocked port test 13 Failed to construct 'WebSocket': The port 13 is not allowed. +FAIL WebSocket blocked port test 15 Failed to construct 'WebSocket': The port 15 is not allowed. +FAIL WebSocket blocked port test 17 Failed to construct 'WebSocket': The port 17 is not allowed. +FAIL WebSocket blocked port test 19 Failed to construct 'WebSocket': The port 19 is not allowed. +FAIL WebSocket blocked port test 20 Failed to construct 'WebSocket': The port 20 is not allowed. +FAIL WebSocket blocked port test 21 Failed to construct 'WebSocket': The port 21 is not allowed. +FAIL WebSocket blocked port test 22 Failed to construct 'WebSocket': The port 22 is not allowed. +FAIL WebSocket blocked port test 23 Failed to construct 'WebSocket': The port 23 is not allowed. +FAIL WebSocket blocked port test 25 Failed to construct 'WebSocket': The port 25 is not allowed. +FAIL WebSocket blocked port test 37 Failed to construct 'WebSocket': The port 37 is not allowed. +FAIL WebSocket blocked port test 42 Failed to construct 'WebSocket': The port 42 is not allowed. +FAIL WebSocket blocked port test 43 Failed to construct 'WebSocket': The port 43 is not allowed. +FAIL WebSocket blocked port test 53 Failed to construct 'WebSocket': The port 53 is not allowed. +FAIL WebSocket blocked port test 77 Failed to construct 'WebSocket': The port 77 is not allowed. +FAIL WebSocket blocked port test 79 Failed to construct 'WebSocket': The port 79 is not allowed. +FAIL WebSocket blocked port test 87 Failed to construct 'WebSocket': The port 87 is not allowed. +FAIL WebSocket blocked port test 95 Failed to construct 'WebSocket': The port 95 is not allowed. +FAIL WebSocket blocked port test 101 Failed to construct 'WebSocket': The port 101 is not allowed. +FAIL WebSocket blocked port test 102 Failed to construct 'WebSocket': The port 102 is not allowed. +FAIL WebSocket blocked port test 103 Failed to construct 'WebSocket': The port 103 is not allowed. +FAIL WebSocket blocked port test 104 Failed to construct 'WebSocket': The port 104 is not allowed. +FAIL WebSocket blocked port test 109 Failed to construct 'WebSocket': The port 109 is not allowed. +FAIL WebSocket blocked port test 110 Failed to construct 'WebSocket': The port 110 is not allowed. +FAIL WebSocket blocked port test 111 Failed to construct 'WebSocket': The port 111 is not allowed. +FAIL WebSocket blocked port test 113 Failed to construct 'WebSocket': The port 113 is not allowed. +FAIL WebSocket blocked port test 115 Failed to construct 'WebSocket': The port 115 is not allowed. +FAIL WebSocket blocked port test 117 Failed to construct 'WebSocket': The port 117 is not allowed. +FAIL WebSocket blocked port test 119 Failed to construct 'WebSocket': The port 119 is not allowed. +FAIL WebSocket blocked port test 123 Failed to construct 'WebSocket': The port 123 is not allowed. +FAIL WebSocket blocked port test 135 Failed to construct 'WebSocket': The port 135 is not allowed. +FAIL WebSocket blocked port test 139 Failed to construct 'WebSocket': The port 139 is not allowed. +FAIL WebSocket blocked port test 143 Failed to construct 'WebSocket': The port 143 is not allowed. +FAIL WebSocket blocked port test 179 Failed to construct 'WebSocket': The port 179 is not allowed. +FAIL WebSocket blocked port test 389 Failed to construct 'WebSocket': The port 389 is not allowed. +FAIL WebSocket blocked port test 465 Failed to construct 'WebSocket': The port 465 is not allowed. +FAIL WebSocket blocked port test 512 Failed to construct 'WebSocket': The port 512 is not allowed. +FAIL WebSocket blocked port test 513 Failed to construct 'WebSocket': The port 513 is not allowed. +FAIL WebSocket blocked port test 514 Failed to construct 'WebSocket': The port 514 is not allowed. +FAIL WebSocket blocked port test 515 Failed to construct 'WebSocket': The port 515 is not allowed. +FAIL WebSocket blocked port test 526 Failed to construct 'WebSocket': The port 526 is not allowed. +FAIL WebSocket blocked port test 530 Failed to construct 'WebSocket': The port 530 is not allowed. +FAIL WebSocket blocked port test 531 Failed to construct 'WebSocket': The port 531 is not allowed. +FAIL WebSocket blocked port test 532 Failed to construct 'WebSocket': The port 532 is not allowed. +FAIL WebSocket blocked port test 540 Failed to construct 'WebSocket': The port 540 is not allowed. +FAIL WebSocket blocked port test 556 Failed to construct 'WebSocket': The port 556 is not allowed. +FAIL WebSocket blocked port test 563 Failed to construct 'WebSocket': The port 563 is not allowed. +FAIL WebSocket blocked port test 587 Failed to construct 'WebSocket': The port 587 is not allowed. +FAIL WebSocket blocked port test 601 Failed to construct 'WebSocket': The port 601 is not allowed. +FAIL WebSocket blocked port test 636 Failed to construct 'WebSocket': The port 636 is not allowed. +FAIL WebSocket blocked port test 993 Failed to construct 'WebSocket': The port 993 is not allowed. +FAIL WebSocket blocked port test 995 Failed to construct 'WebSocket': The port 995 is not allowed. +FAIL WebSocket blocked port test 2049 Failed to construct 'WebSocket': The port 2049 is not allowed. +FAIL WebSocket blocked port test 3659 Failed to construct 'WebSocket': The port 3659 is not allowed. +FAIL WebSocket blocked port test 4045 Failed to construct 'WebSocket': The port 4045 is not allowed. +FAIL WebSocket blocked port test 6000 Failed to construct 'WebSocket': The port 6000 is not allowed. +FAIL WebSocket blocked port test 6665 Failed to construct 'WebSocket': The port 6665 is not allowed. +FAIL WebSocket blocked port test 6666 Failed to construct 'WebSocket': The port 6666 is not allowed. +FAIL WebSocket blocked port test 6667 Failed to construct 'WebSocket': The port 6667 is not allowed. +FAIL WebSocket blocked port test 6668 Failed to construct 'WebSocket': The port 6668 is not allowed. +FAIL WebSocket blocked port test 6669 Failed to construct 'WebSocket': The port 6669 is not allowed. +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-blocked-port.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-blocked-port.htm new file mode 100644 index 0000000..aafaee6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-blocked-port.htm
@@ -0,0 +1,93 @@ +<!DOCTYPE html> +<html> +<head> + <title>WebSocket API - blocked port</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script> + async_test(t => { + const ws = CreateWebSocketWithBlockedPort(__PORT) + ws.onerror = t.unreached_func() + ws.onopen = t.step_func_done() + }, 'Basic check'); + // list of bad ports according to + // https://fetch.spec.whatwg.org/#port-blocking + [ + 1, // tcpmux + 7, // echo + 9, // discard + 11, // systat + 13, // daytime + 15, // netstat + 17, // qotd + 19, // chargen + 20, // ftp-data + 21, // ftp + 22, // ssh + 23, // telnet + 25, // smtp + 37, // time + 42, // name + 43, // nicname + 53, // domain + 77, // priv-rjs + 79, // finger + 87, // ttylink + 95, // supdup + 101, // hostriame + 102, // iso-tsap + 103, // gppitnp + 104, // acr-nema + 109, // pop2 + 110, // pop3 + 111, // sunrpc + 113, // auth + 115, // sftp + 117, // uucp-path + 119, // nntp + 123, // ntp + 135, // loc-srv / epmap + 139, // netbios + 143, // imap2 + 179, // bgp + 389, // ldap + 465, // smtp+ssl + 512, // print / exec + 513, // login + 514, // shell + 515, // printer + 526, // tempo + 530, // courier + 531, // chat + 532, // netnews + 540, // uucp + 556, // remotefs + 563, // nntp+ssl + 587, // smtp + 601, // syslog-conn + 636, // ldap+ssl + 993, // imap+ssl + 995, // pop3+ssl + 2049, // nfs + 3659, // apple-sasl + 4045, // lockd + 6000, // x11 + 6665, // irc (alternate) + 6666, // irc (alternate) + 6667, // irc (default) + 6668, // irc (alternate) + 6669, // irc (alternate) + ].forEach(blockedPort => { + async_test(t => { + const ws = CreateWebSocketWithBlockedPort(blockedPort) + ws.onerror = t.step_func_done() + ws.onopen = t.unreached_func() + }, "WebSocket blocked port test " + blockedPort) + }) + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-invalid-urls.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-invalid-urls.htm new file mode 100644 index 0000000..c4a4c798 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-invalid-urls.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - pass in list of invalid urls</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + var wsocket; + test(function() { + assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("/echo") }); + }, "Url is /echo - should throw SYNTAX_ERR"); + + test(function () { + assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("mailto:microsoft@microsoft.com") }); + }, "Url is a mail address - should throw SYNTAX_ERR"); + + test(function () { + assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("about:blank") }); + }, "Url is about:blank - should throw SYNTAX_ERR"); + + test(function () { + assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("?test") }); + }, "Url is ?test - should throw SYNTAX_ERR"); + + test(function () { + assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("#test") }); + }, "Url is #test - should throw SYNTAX_ERR"); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-non-absolute-url.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-non-absolute-url.htm new file mode 100644 index 0000000..2ed8ece --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-non-absolute-url.htm
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - non absolute url</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketNonAbsolute() }); + }, "W3C WebSocket API - Create WebSocket - Pass a non absolute URL - SYNTAX_ERR is thrown") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-nonAscii-protocol-string.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-nonAscii-protocol-string.htm new file mode 100644 index 0000000..fd34018 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-nonAscii-protocol-string.htm
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - non ascii protocol string</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + if(window.WebSocket) { + test(function () { + var nonAsciiProtocol = "\u0080echo"; + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketNonAsciiProtocol(nonAsciiProtocol) }); + }, "W3C WebSocket API - Create WebSocket - Pass a valid URL and a protocol string with non-ascii values - SYNTAX_ERR is thrown") + } + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocol-with-space.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocol-with-space.htm new file mode 100644 index 0000000..023a498 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocol-with-space.htm
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - protocol with space</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketWithSpaceInProtocol("ec ho") }); + }, "W3C WebSocket API - Create WebSocket - Pass a valid URL and a protocol string with a space in it - SYNTAX_ERR is thrown") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated-case-insensitive-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated-case-insensitive-expected.txt new file mode 100644 index 0000000..c3b58c7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated-case-insensitive-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL W3C WebSocket API - Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown assert_throws: function "function () { wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive() }" did not throw +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.htm new file mode 100644 index 0000000..47225ef2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.htm
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - repeated protocols with different case</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive() }); + }, "W3C WebSocket API - Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated.htm new file mode 100644 index 0000000..6a62bca --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-protocols-repeated.htm
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - repeated protocols</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketWithRepeatedProtocols() }); + }, "W3C WebSocket API - Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values - SYNTAX_ERR is thrown") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-array-protocols.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-array-protocols.htm new file mode 100644 index 0000000..3ebf3f56 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-array-protocols.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket with valid url and array of protocols</title> + <script type="text/javascript" src="websocket.sub.js"></script> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed"); + + var wsocket = CreateWebSocket(false, false, true); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-protocol-empty.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-protocol-empty.htm new file mode 100644 index 0000000..9146937b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-protocol-empty.htm
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - wsocket.protocol is empty before connection is established</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket = CreateWebSocket(false, true, false); + assert_equals(wsocket.protocol, "", "protocol should be empty"); + wsocket.close(); + }, "W3C WebSocket API - Create WebSocket - wsocket.protocol should be empty before connection is established") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-protocol.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-protocol.htm new file mode 100644 index 0000000..0a6dd97f0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url-protocol.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket with a valid url and protocol string</title> + <script type="text/javascript" src="websocket.sub.js"></script> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - Pass a valid URL and a protocol string - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - Pass a valid URL and a protocol string - Connection should be closed"); + + var wsocket = CreateWebSocket(false, true, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url.htm new file mode 100644 index 0000000..e74a7bfe --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-valid-url.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket with valid url</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - Pass a valid URL - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - Pass a valid URL - Connection should be closed"); + + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-verify-url-set-non-default-port.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-verify-url-set-non-default-port.htm new file mode 100644 index 0000000..181794d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-verify-url-set-non-default-port.htm
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - wsocket.url is set correctly - non default port</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var urlNonDefaultPort = "ws://" + __SERVER__NAME + ":" + __NEW__PORT + "/" + __PATH; + var wsocket = new WebSocket(urlNonDefaultPort); + assert_equals(wsocket.url, urlNonDefaultPort, "wsocket.url is set correctly"); + }, "W3C WebSocket API - Create WebSocket - wsocket.url should be set correctly"); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-wrong-scheme.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-wrong-scheme.htm new file mode 100644 index 0000000..a0a9820 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Create-wrong-scheme.htm
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create WebSocket - non ws/wss scheme in url</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket; + assert_throws("SYNTAX_ERR", function () { wsocket = CreateWebSocketNonWsScheme() }); + }, "W3C WebSocket API - Create WebSocket - Pass a URL with a non ws/wss scheme - SYNTAX_ERR is thrown") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/README.md b/third_party/WebKit/LayoutTests/external/wpt/websockets/README.md new file mode 100644 index 0000000..0e5ffd68 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/README.md
@@ -0,0 +1,2 @@ +These are the `WebSocket` tests for the +[Web sockets chapter of the HTML Standard](https://html.spec.whatwg.org/multipage/comms.html#network).
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000-reason.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000-reason.htm new file mode 100644 index 0000000..3dead6bf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000-reason.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 1000 and reason</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000, "Clean Close"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000-verify-code.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000-verify-code.htm new file mode 100644 index 0000000..0cac622 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000-verify-code.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 1000 - verify code in CloseEvent is 1000</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000, reason) - event.code == 1000 and event.reason = 'Clean Close'"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000, "Clean Close"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.code, 1000, "CloseEvent.code should be 1000"); + assert_equals(evt.reason, "Clean Close", "CloseEvent.reason should be the same as the reason sent in close"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000.htm new file mode 100644 index 0000000..3da8630 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1000.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 1000</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000) - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1005-verify-code.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1005-verify-code.htm new file mode 100644 index 0000000..6414b770 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1005-verify-code.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - verify return code is 1005</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close() - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close() - return close code is 1005 - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.code, 1005, "CloseEvent.code should be 1005"); + assert_equals(evt.reason, "", "CloseEvent.reason should be empty"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1005.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1005.htm new file mode 100644 index 0000000..de8f51f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-1005.htm
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 1005</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(1005) - see '7.1.5. The WebSocket Connection Close Code' in http://www.ietf.org/rfc/rfc6455.txt"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', test.step_func(function (evt) { + assert_throws("INVALID_ACCESS_ERR", function () { wsocket.close(1005, "1005 - reserved code") }); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-2999-reason.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-2999-reason.htm new file mode 100644 index 0000000..223fc62 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-2999-reason.htm
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 2999 and reason</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(2999, reason) - INVALID_ACCESS_ERR is thrown"); + + var wsocket = CreateWebSocket(true, false, false); + + wsocket.addEventListener('open', test.step_func(function (evt) { + assert_throws("INVALID_ACCESS_ERR", function () { wsocket.close(2999, "Close not in range 3000-4999") }); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-3000-reason.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-3000-reason.htm new file mode 100644 index 0000000..80a8be7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-3000-reason.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 3000 and reason</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(3000, reason) - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(3000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(3000, "Clean Close with code - 3000"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-3000-verify-code.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-3000-verify-code.htm new file mode 100644 index 0000000..9d385d99 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-3000-verify-code.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 3000 - verify code in CloseEvent is 3000</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(3000, reason) - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(3000, reason) - verify return code is 3000 - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(3000, "Clean Close"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.code, 3000, "CloseEvent.code should be 3000"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-4999-reason.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-4999-reason.htm new file mode 100644 index 0000000..a6ea0694 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-4999-reason.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is 4999 and reason</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(4999, reason) - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(4999, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(3000, "Clean Close with code - 4999"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-Reason-124Bytes.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-Reason-124Bytes.htm new file mode 100644 index 0000000..94feb0f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-Reason-124Bytes.htm
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Reason is more than 123 bytes long</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', test.step_func(function (evt) { + var reason = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"; + assert_equals(reason.length, 124); + assert_throws("SYNTAX_ERR", function () { wsocket.close(1000, reason) }); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-Reason-Unpaired-surrogates.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-Reason-Unpaired-surrogates.htm new file mode 100644 index 0000000..6947173 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-Reason-Unpaired-surrogates.htm
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Reason with unpaired surrogates</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + var replacementChar = "\uFFFD"; + var reason = "\uD807"; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(1000, reason); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be opened"); + assert_equals(evt.reason, replacementChar, "reason replaced with replacement character"); + testClose.done(); + }), true); + + </script> + +</body> +</html> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-onlyReason.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-onlyReason.htm new file mode 100644 index 0000000..278d7aa3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-onlyReason.htm
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Only reason</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - close(only reason) - INVALID_ACCESS_ERR is thrown"); + + var wsocket = CreateWebSocket(true, false, false); + + wsocket.addEventListener('open', test.step_func(function (evt) { + assert_throws("INVALID_ACCESS_ERR", function () { wsocket.close("Close with only reason") }); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-readyState-Closed.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-readyState-Closed.htm new file mode 100644 index 0000000..3ed38a8f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-readyState-Closed.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - verify readyState is 3 when onclose is fired</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.close(); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-readyState-Closing.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-readyState-Closing.htm new file mode 100644 index 0000000..1048396 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-readyState-Closing.htm
@@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - verify readyState is 2 before onclose is fired</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test("W3C WebSocket API - Create Secure WebSocket - Close the Connection - readyState should be in CLOSING state just before onclose is called"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', test.step_func(function (evt) { + wsocket.close(); + assert_equals(wsocket.readyState, 2, "readyState should be 2(CLOSING)"); + test.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-server-initiated-close.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-server-initiated-close.htm new file mode 100644 index 0000000..4262754c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-server-initiated-close.htm
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Server Initiated close</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create Secure WebSocket - Server initiated Close - Client sends back a CLOSE - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create Secure WebSocket - Server initiated Close - Client sends back a CLOSE - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send("Goodbye"); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); + assert_equals(evt.wasClean, true, "wasClean should be TRUE"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-undefined.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-undefined.htm new file mode 100644 index 0000000..9bd4861 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Close-undefined.htm
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Close Secure WebSocket - Code is undefined</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var test = async_test(); + + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', test.step_func(function (evt) { + wsocket.close(undefined); + test.done(); + }), true); + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-65K-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-65K-data.htm new file mode 100644 index 0000000..f9bbe376 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-65K-data.htm
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send 65K data - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send 65K data on a Secure WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send 65K data on a Secure WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send 65K data on a Secure WebSocket - Connection should be closed"); + + var data = ""; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + for (var i = 0; i < 65000; i++) { + data = data + "c"; + } + wsocket.send(data); + assert_equals(data.length, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-65K-arraybuffer.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-65K-arraybuffer.htm new file mode 100644 index 0000000..64cfc02 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-65K-arraybuffer.htm
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send 65K binary data - ArrayBuffer - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send 65K binary data on a Secure WebSocket - ArrayBuffer - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send 65K binary data on a Secure WebSocket - ArrayBuffer - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send 65K binary data on a Secure WebSocket - ArrayBuffer - Connection should be closed"); + + var data = ""; + var datasize = 65000; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + wsocket.send(data); + assert_equals(datasize, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data.byteLength, datasize); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybuffer.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybuffer.htm new file mode 100644 index 0000000..0e068ff5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybuffer.htm
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBuffer - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a Secure WebSocket - ArrayBuffer - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a Secure WebSocket - ArrayBuffer - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a Secure WebSocket - ArrayBuffer - Connection should be closed"); + + var data = ""; + var datasize = 15; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + wsocket.send(data); + assert_equals(datasize, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data.byteLength, datasize); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-float32.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-float32.htm new file mode 100644 index 0000000..30a8010 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-float32.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Float32Array - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Float32Array - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Float32Array(data); + for(var i = 0; i < 2; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Float32Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-float64.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-float64.htm new file mode 100644 index 0000000..1e121a8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-float64.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Float32Array - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Float64Array - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Float64Array(data); + for (var i = 0; i < 1; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Float64Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-int32.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-int32.htm new file mode 100644 index 0000000..316c62c9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-int32.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Int32Array - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int32Array - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Int32Array(data); + for(var i = 0; i < 2; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Int32Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm new file mode 100644 index 0000000..1737d93b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint16Array with offset and length - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Uint16Array(data, 2, 2); + for(var i = 0; i < 4; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Uint16Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm new file mode 100644 index 0000000..735bae5f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint32Array with offset - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Uint32Array(data, 0); + for(var i = 0; i < 2; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Uint32Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm new file mode 100644 index 0000000..83e14351 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint8Array with offset and length - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Uint8Array(data, 2, 4); + for(var i = 0; i < 8; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Uint8Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm new file mode 100644 index 0000000..413ec343 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint8Array with offset - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Uint8Array(data, 2); + for(var i = 0; i < 8; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Uint8Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-blob.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-blob.htm new file mode 100644 index 0000000..6d52aa7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-binary-blob.htm
@@ -0,0 +1,48 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - Blob - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a Secure WebSocket - Blob - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a Secure WebSocket - Blob - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a Secure WebSocket - Blob - Connection should be closed"); + + var data = ""; + var datasize = 65000; + var isOpenCalled = false; + + var wsocket = CreateWebSocket(true, false, false); + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "blob"; + for (var i = 0; i < datasize; i++) + data += String.fromCharCode(0); + data = new Blob([data]); + isOpenCalled = true; + wsocket.send(data); + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_true(evt.data instanceof Blob); + assert_equals(evt.data.size, datasize); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_true(evt.wasClean, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-data.htm new file mode 100644 index 0000000..d7c1595 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-data.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send data - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send data on a Secure WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send data on a Secure WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send data on a Secure WebSocket - Connection should be closed"); + + var data = "Message to send"; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-null.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-null.htm new file mode 100644 index 0000000..0a203359 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-null.htm
@@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send null data - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send null data on a Secure WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send null data on a Secure WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send null data on a Secure WebSocket - Connection should be closed"); + + var data = null; + var nullReturned = false; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + if ("null" == evt.data || "" == evt.data) + nullReturned = true; + assert_true(nullReturned); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-paired-surrogates.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-paired-surrogates.htm new file mode 100644 index 0000000..959e307d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-paired-surrogates.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send (paired surrogates) data - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send paired surrogates data on a Secure WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send paired surrogates data on a Secure WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send paired surrogates data on a Secure WebSocket - Connection should be closed"); + + var data = "\uD801\uDC07"; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length * 2, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-unicode-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-unicode-data.htm new file mode 100644 index 0000000..42de6416 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-unicode-data.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send unicode data - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send unicode data on a Secure WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send unicode data on a Secure WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send unicode data on a Secure WebSocket - Connection should be closed"); + + var data = "¥¥¥¥¥¥"; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length * 2, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-unpaired-surrogates.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-unpaired-surrogates.htm new file mode 100644 index 0000000..11df504 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Secure-Send-unpaired-surrogates.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send unpaired surrogates - Secure WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send unpaired surrogates on a Secure WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send unpaired surrogates on a Secure WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send unpaired surrogates on a Secure WebSocket - Connection should be closed"); + + var data = "\uD807"; + var replacementChar = "\uFFFD"; + var wsocket = CreateWebSocket(true, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, replacementChar); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-0byte-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-0byte-data.htm new file mode 100644 index 0000000..52ab7ca --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-0byte-data.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send 0 byte data - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send 0 byte data on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send 0 byte data on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send 0 byte data on a WebSocket - Connection should be closed"); + + var data = ""; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-65K-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-65K-data.htm new file mode 100644 index 0000000..7d223403 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-65K-data.htm
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send 65K data - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send 65K data on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send 65K data on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send 65K data on a WebSocket - Connection should be closed"); + + var data = ""; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + for (var i = 0; i < 65000; i++) { + data = data + "c"; + } + wsocket.send(data); + assert_equals(data.length, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-Unpaired-Surrogates.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-Unpaired-Surrogates.htm new file mode 100644 index 0000000..6697e68 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-Unpaired-Surrogates.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send unpaired surrogates - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send unpaired surrogates on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send unpaired surrogates on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send unpaired surrogates on a WebSocket - Connection should be closed"); + + var data = "\uD807"; + var replacementChar = "\uFFFD"; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, replacementChar); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-before-open.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-before-open.htm new file mode 100644 index 0000000..1aace54 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-before-open.htm
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send WebSocket - Send before connection in established</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + test(function () { + var wsocket = CreateWebSocket(false, false, false); + assert_throws("INVALID_STATE_ERR", function () { wsocket.send("Message to send") }); + }, "W3C WebSocket API - Send data on a WebSocket before connection is opened - INVALID_STATE_ERR is returned") + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-65K-arraybuffer.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-65K-arraybuffer.htm new file mode 100644 index 0000000..95c12cf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-65K-arraybuffer.htm
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send 65K binary data - ArrayBuffer - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send 65K binary data on a WebSocket - ArrayBuffer - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed"); + + var data = ""; + var datasize = 65000; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + wsocket.send(data); + assert_equals(datasize, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data.byteLength, datasize); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybuffer.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybuffer.htm new file mode 100644 index 0000000..b960b92 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybuffer.htm
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBuffer - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBuffer - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBuffer - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBuffer - Connection should be closed"); + + var data = ""; + var datasize = 15; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + wsocket.send(data); + assert_equals(datasize, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data.byteLength, datasize); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybufferview-int16-offset.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybufferview-int16-offset.htm new file mode 100644 index 0000000..0ebd3ac --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybufferview-int16-offset.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Int16Array with offset - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed"); + + var data = ""; + var datasize = 8; + var view; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + view = new Int16Array(data, 2); + for(var i = 0; i < 4; i++) { + view[i] = i; + } + wsocket.send(view); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Int16Array(evt.data); + for(var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybufferview-int8.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybufferview-int8.htm new file mode 100644 index 0000000..5336a87 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-arraybufferview-int8.htm
@@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - ArrayBufferView - Int8Array - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int8Array - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be closed"); + + var data = ""; + var datasize = 8; + var int8View; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + int8View = new Int8Array(data); + for (var i = 0; i < 8; i++) { + int8View[i] = i; + } + wsocket.send(int8View); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + var resultView = new Int8Array(evt.data); + for (var i = 0; i < resultView.length; i++) { + assert_equals(resultView[i], int8View[i], "ArrayBufferView returned is the same"); + } + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-blob.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-blob.htm new file mode 100644 index 0000000..fa14f4c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-binary-blob.htm
@@ -0,0 +1,48 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send binary data - Blob - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send binary data on a WebSocket - Blob - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send binary data on a WebSocket - Blob - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send binary data on a WebSocket - Blob - Connection should be closed"); + + var data = ""; + var datasize = 65000; + var isOpenCalled = false; + + var wsocket = CreateWebSocket(false, false, false); + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.binaryType = "blob"; + for (var i = 0; i < datasize; i++) + data += String.fromCharCode(0); + data = new Blob([data]); + isOpenCalled = true; + wsocket.send(data); + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_true(evt.data instanceof Blob); + assert_equals(evt.data.size, datasize); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_true(evt.wasClean, "wasClean should be true"); + testClose.done(); + }), true); + + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-data.htm new file mode 100644 index 0000000..547a15f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-data.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send data - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send data on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send data on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send data on a WebSocket - Connection should be closed"); + + var data = "Message to send"; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-data.worker.js b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-data.worker.js new file mode 100644 index 0000000..f607fd7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-data.worker.js
@@ -0,0 +1,21 @@ +importScripts("/resources/testharness.js"); +importScripts('websocket.sub.js') + +var data = "test data"; + +async_test(function(t) { + + var wsocket = CreateWebSocket(false, false, false); + + wsocket.addEventListener('open', function (e) { + wsocket.send(data) + }, true) + + wsocket.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.data, data); + done(); + }), true); + +}, "W3C WebSocket API - Send data on a WebSocket in a Worker") + +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-null.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-null.htm new file mode 100644 index 0000000..5b7a6f1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-null.htm
@@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send null data - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send null data on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send null data on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send null data on a WebSocket - Connection should be closed"); + + var data = null; + var nullReturned = false; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + if ("null" == evt.data || "" == evt.data) + nullReturned = true; + assert_true(nullReturned); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-paired-surrogates.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-paired-surrogates.htm new file mode 100644 index 0000000..4413221 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-paired-surrogates.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send (paired surrogates) data - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send (paired surrogates) data on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send (paired surrogates) data on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send (paired surrogates) data on a WebSocket - Connection should be closed"); + + var data = "\uD801\uDC07"; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length * 2, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-unicode-data.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-unicode-data.htm new file mode 100644 index 0000000..aba79183 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/Send-unicode-data.htm
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Send unicode data - WebSocket</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Send unicode data on a WebSocket - Connection should be opened"); + var testMessage = async_test("W3C WebSocket API - Send unicode data on a WebSocket - Message should be received"); + var testClose = async_test("W3C WebSocket API - Send unicode data on a WebSocket - Connection should be closed"); + + var data = "¥¥¥¥¥¥"; + var wsocket = CreateWebSocket(false, false, false); + var isOpenCalled = false; + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + wsocket.send(data); + assert_equals(data.length * 2, wsocket.bufferedAmount); + isOpenCalled = true; + testOpen.done(); + }), true); + + wsocket.addEventListener('message', testMessage.step_func(function (evt) { + assert_equals(evt.data, data); + wsocket.close(); + testMessage.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(isOpenCalled, "WebSocket connection should be open"); + assert_equals(evt.wasClean, true, "wasClean should be true"); + testClose.done(); + }), true); + </script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/001.html new file mode 100644 index 0000000..4631ebc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/001.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>WebSockets: Send/Receive blob, blob size less than network array buffer</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo'); + var data = ""; + var datasize = 10; + ws.onopen = t.step_func(function(e) { + ws.binaryType = "blob"; + data = new ArrayBuffer(datasize); + ws.send(data); + }) + ws.onmessage = t.step_func(function(e) { + assert_true(e.data instanceof Blob); + assert_equals(e.data.size, datasize); + t.done(); + }) + +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/002.html new file mode 100644 index 0000000..f2fa16a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/002.html
@@ -0,0 +1,27 @@ +<!doctype html> +<title>WebSockets: Send/Receive blob, blob size greater than network array buffer</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var data = ""; + var datasize = 100000; + ws.onopen = t.step_func(function(e) { + ws.binaryType = "blob"; + data = new ArrayBuffer(datasize); + ws.send(data); + }); + ws.onmessage = t.step_func(function(e) { + assert_true(e.data instanceof Blob); + assert_equals(e.data.size, datasize); + t.done(); + }); + +}, null, {timeout:20000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/004.html new file mode 100644 index 0000000..59b06d7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/004.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>WebSockets: Send/Receive ArrayBuffer, size greater than network array buffer</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var data = ""; + var datasize = 100000; + ws.onopen = t.step_func(function(e) { + ws.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + ws.send(data); + }) + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data.byteLength, datasize); + t.done(); + }) + +}, null, {timeout:20000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/005.html new file mode 100644 index 0000000..54c1aae --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/binary/005.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>WebSockets: Send/Receive ArrayBuffer, size less than network array buffer</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var data = ""; + var datasize = 10; + ws.onopen = t.step_func(function(e) { + ws.binaryType = "arraybuffer"; + data = new ArrayBuffer(datasize); + ws.send(data); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data.byteLength, datasize); + t.done(); + }); + }); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/binaryType-wrong-value.htm b/third_party/WebKit/LayoutTests/external/wpt/websockets/binaryType-wrong-value.htm new file mode 100644 index 0000000..2bab671 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/binaryType-wrong-value.htm
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> + <title>W3C WebSocket API - Create Secure WebSocket - binaryType is set to something other than blob/arraybuffer</title> + <script type="text/javascript" src="/resources/testharness.js"></script> + <script type="text/javascript" src="/resources/testharnessreport.js"></script> + <script type="text/javascript" src="websocket.sub.js"></script> +</head> +<body> + <div id="log"></div> + <script type="text/javascript"> + + var testOpen = async_test("W3C WebSocket API - Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be opened"); + var testClose = async_test("W3C WebSocket API - Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be closed"); + + var wsocket = CreateWebSocket(true, false, false); + + wsocket.addEventListener('open', testOpen.step_func(function (evt) { + assert_equals(wsocket.binaryType, "blob"); + wsocket.binaryType = "notBlobOrArrayBuffer"; + assert_equals(wsocket.binaryType, "blob"); + wsocket.close(); + testOpen.done(); + }), true); + + wsocket.addEventListener('close', testClose.step_func(function (evt) { + assert_true(evt.wasClean, "wasClean should be true"); + testClose.done(); + }), true); + + </script> + +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/close-invalid.any.js b/third_party/WebKit/LayoutTests/external/wpt/websockets/close-invalid.any.js new file mode 100644 index 0000000..a930495 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/close-invalid.any.js
@@ -0,0 +1,20 @@ +// META: script=websocket.sub.js + +[ + [0, "0"], + [500, "500"], + [NaN, "NaN"], + ["string", "String"], + [null, "null"], + [0x10000 + 1000, "2**16+1000"], +].forEach(function(t) { + [true, false].forEach(function(secure) { + test(function() { + var ws = CreateWebSocket(secure, false, false); + assert_throws("InvalidAccessError", function () { + ws.close(t[0]); + }); + wsocket.onerror = this.unreached_func(); + }, t[1] + " on a " + (secure ? "secure" : "insecure") + " websocket"); + }); +});
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/002.html new file mode 100644 index 0000000..d3f7ce0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/002.html
@@ -0,0 +1,22 @@ +<!doctype html> +<title>WebSockets: server sends closing handshake</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_exit'); + ws.onmessage = ws.onerror = t.unreached_func(); + ws.onopen = t.step_func(function(e) { + ws.send('Goodbye'); + }) + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean, true, 'e.wasClean'); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/003.html new file mode 100644 index 0000000..648e77d6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/003.html
@@ -0,0 +1,23 @@ +<!doctype html> +<title>WebSockets: client sends closing handshake</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo'); + ws.onmessage = ws.onerror = t.unreached_func(); + ws.onopen = t.step_func(function(e) { + ws.close(); + }); + ws.onclose = t.step_func(function(e) { + assert_equals(e.code, 1005, 'e.code'); + assert_equals(e.wasClean, true, 'e.wasClean'); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/004.html new file mode 100644 index 0000000..1519a4a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/closing-handshake/004.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>WebSockets: data after closing handshake</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_close_data'); + ws.onmessage = ws.onerror = t.unreached_func(); + + ws.onopen = t.step_func(function(e) { + ws.send('Goodbye'); + }) + + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean, true); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constants.js b/third_party/WebKit/LayoutTests/external/wpt/websockets/constants.js new file mode 100644 index 0000000..8312cd2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constants.js
@@ -0,0 +1,12 @@ +//This file requires server-side substitutions and must be included as constants.js?pipe=sub + +var PORT = "{{ports[ws][0]}}"; +//FIXME: Add support for wss +var PORT_SSL = "{{ports[ws][0]}}"; + +var SCHEME_DOMAIN_PORT; +if (location.search == '?wss') { + SCHEME_DOMAIN_PORT = 'wss://{{host}}:' + PORT_SSL; +} else { + SCHEME_DOMAIN_PORT = 'ws://{{host}}:' + PORT; +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor.html new file mode 100644 index 0000000..c135b32 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<title>WebSocket constructor</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="websocket.sub.js"></script> +<div id="log"></div> +<script> +test(function() { + var ws = new WebSocket("ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH, + "echo", "Stray argument") + assert_true(ws instanceof WebSocket, "Expected a WebSocket instance.") +}, "Calling the WebSocket constructor with too many arguments should not throw.") +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/001.html new file mode 100644 index 0000000..2a868bf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/001.html
@@ -0,0 +1,13 @@ +<!doctype html> +<title>WebSockets: new WebSocket() with no args</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + assert_throws(new TypeError(), function(){new WebSocket()}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/002.html new file mode 100644 index 0000000..94015979 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/002.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: new WebSocket(invalid url)</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() {assert_throws("SyntaxError", function(){new WebSocket("/test")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://foo bar.com/")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("wss://foo bar.com/")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("http://"+location.host+"/")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("mailto:example@example.org")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("about:blank")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket(SCHEME_DOMAIN_PORT+"/#")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket(SCHEME_DOMAIN_PORT+"/#test")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("?test")})}); +test(function() {assert_throws("SyntaxError", function(){new WebSocket("#test")})}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/004.html new file mode 100644 index 0000000..f358021 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/004.html
@@ -0,0 +1,35 @@ +<!doctype html> +<title>WebSockets: new WebSocket(url, invalid protocol)</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +// empty string +test(function() { + assert_throws("SyntaxError", function() { + new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', "") + }) +}); + +// chars below U+0020 except U+0000; U+0000 is tested in a separate test +for (var i = 1; i < 0x20; ++i) { + test(function() { + assert_throws("SyntaxError", function() { + new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', + "a"+String.fromCharCode(i)+"b") + }, 'char code '+i); + }) +} +// some chars above U+007E +for (var i = 0x7F; i < 0x100; ++i) { + test(function() { + assert_throws("SyntaxError", function() { + new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', + "a"+String.fromCharCode(i)+"b") + }, 'char code '+i); + }) +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/005.html new file mode 100644 index 0000000..63e61ddb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/005.html
@@ -0,0 +1,13 @@ +<!doctype html> +<title>WebSockets: return value</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + assert_true(new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message') instanceof WebSocket); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/006.html new file mode 100644 index 0000000..e704229e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/006.html
@@ -0,0 +1,28 @@ +<!doctype html> +<title>WebSockets: converting first arguments</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var a = document.createElement('a'); + a.href = SCHEME_DOMAIN_PORT+'/echo'; + var ws = new WebSocket(a); // should stringify arguments; <a> stringifies to its .href + assert_equals(ws.url, a.href); + ws.onopen = t.step_func(function(e) { + ws.send('test'); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, 'test'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); + ws.close(); + }); + ws.onerror = ws.onclose = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/007.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/007.html new file mode 100644 index 0000000..6f141a5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/007.html
@@ -0,0 +1,16 @@ +<!doctype html> +<title>WebSockets: new WebSocket(url, null char)</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + assert_throws("SyntaxError", function() { + new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', + 'a' + String.fromCharCode(0) + 'b') + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/008.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/008.html new file mode 100644 index 0000000..f425ff0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/008.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: new WebSocket(url with not blocked port)</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +//Pass condition is to not throw +test(function(){new WebSocket('ws://example.invalid:80/')}); +test(function(){new WebSocket('ws://example.invalid:443/')}); +test(function(){new WebSocket('wss://example.invalid:80/')}); +test(function(){new WebSocket('wss://example.invalid:443/')}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/009.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/009.html new file mode 100644 index 0000000..7352afa --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/009.html
@@ -0,0 +1,23 @@ +<!doctype html> +<title>WebSockets: protocol</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/protocol', 'foobar'); + + ws.onmessage = t.step_func(function(e) { + assert_equals(ws.protocol, 'foobar'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }) + ws.onerror = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/010.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/010.html new file mode 100644 index 0000000..95ec83d1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/010.html
@@ -0,0 +1,22 @@ +<!doctype html> +<title>WebSockets: protocol in response but no requested protocol</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_protocol'); + ws.onerror = ws.onmessage = ws.onclose = t.step_func(e => assert_unreached(e.type)); + ws.onopen = t.step_func(function(e) { + ws.onclose = t.step_func(function(e) { + ws.onclose = t.step_func(e => assert_unreached(e.type)); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }) +}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/011.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/011.html new file mode 100644 index 0000000..6f55bc0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/011.html
@@ -0,0 +1,27 @@ +<!doctype html> +<title>WebSockets: protocol mismatch</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_protocol', 'FOOBAR'); + var gotOpen = false; + var gotError = false; + ws.onopen = t.step_func(function(e) { + gotOpen = true; + }) + ws.onerror = t.step_func(function(e) { + gotError = true; + }) + ws.onclose = t.step_func(function(e) { + assert_true(gotOpen, 'got open'); + assert_true(gotError, 'got error'); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/012.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/012.html new file mode 100644 index 0000000..0f68d3e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/012.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: no protocol in response</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_no_protocol', 'foobar'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.onmessage = t.unreached_func(); +}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/013.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/013.html new file mode 100644 index 0000000..fe777af --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/013.html
@@ -0,0 +1,41 @@ +<!doctype html> +<title>WebSockets: multiple WebSocket objects</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + // test that the events are fired as they should when opening 25 websockets and + // sending a message on each and then closing when getting the message back + var ws = []; + var events = 0; + for (var i = 0; i < 25; ++i) { + ws[i] = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws[i].id = i; + ws[i].onopen = t.step_func(function(e) { + events++; + this.send(this.id); + this.onopen = t.step_func(function() {assert_unreached()}); + }, ws[i]); + ws[i].onmessage = t.step_func(function(e) { + events++; + assert_equals(e.data, ''+this.id); + this.close(); + this.onmessage = t.step_func(function() {assert_unreached()}); + }, ws[i]); + ws[i].onclose = t.step_func(function(e) { + events++; + if (events == 75) { + t.done(); + } + this.onclose = t.step_func(function() {assert_unreached()}); + }, ws[i]); + ws[i].onerror = t.step_func(function() {assert_unreached()}); + } +}, null, {timeout:25000}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/014.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/014.html new file mode 100644 index 0000000..579a5d3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/014.html
@@ -0,0 +1,39 @@ +<!doctype html> +<title>WebSockets: serialize establish a connection</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> + +async_test(function(t) { + var ws = []; + var events = 0; + var prevDate; + var date; + for (var i = 0; i < 4; ++i) { + ws[i] = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_sleep_2'); + ws[i].id = i; + ws[i].onopen = t.step_func(function(e) { + events++; + date = new Date(); + if (prevDate) { + assert_greater_than(date - prevDate, 1000); + } + prevDate = date; + this.onopen = t.step_func(function() {assert_unreached()}); + }.bind(ws[i])) + ws[i].onclose = t.step_func(function() { + events++; + if (events == 8) { + t.done(); + } + this.onclose = t.step_func(function() {assert_unreached()}); + }.bind(ws[i])); + ws[i].onerror = ws[i].onmessage = t.step_func(function() {assert_unreached()}); + } +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/016.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/016.html new file mode 100644 index 0000000..a1bf281 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/016.html
@@ -0,0 +1,19 @@ +<!doctype html> +<meta charset=windows-1252> +<title>WebSockets: non-ascii URL in query, document encoding windows-1252</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-query_v13?åäö'); + ws.onclose = t.step_func(function() {assert_unreached()}); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, '%C3%A5%C3%A4%C3%B6'); + t.done(); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/017.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/017.html new file mode 100644 index 0000000..8a7960d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/017.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: too few slashes after ws: and wss:</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var tests = [ + ['ws:', PORT], + ['ws:/', PORT], + ['wss:', PORT_SSL], + ['wss:/', PORT_SSL] +]; +//Pass condition is to not throw +for (var i = 0; i < tests.length; ++i) { + test(function(){new WebSocket(tests[i][0] + location.hostname + ':' + tests[i][1] + '/echo')}, tests[i][0]); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/018.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/018.html new file mode 100644 index 0000000..d96d4be --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/018.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: NULL char in url</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-query?x\u0000y\u0000'); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, 'x%00y'); + ws.close(); + t.done(); + }) + ws.onclose = ws.onerror = t.step_func(function(e) {assert_unreached(e.type)}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/019.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/019.html new file mode 100644 index 0000000..b56745a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/019.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: uppercase 'WS:'</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var scheme = SCHEME_DOMAIN_PORT.split('://')[0]; + var domain = SCHEME_DOMAIN_PORT.split('://')[1]; + var ws = new WebSocket(scheme.toUpperCase()+'://'+domain+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.close(); + t.done(); + }) + ws.onclose = ws.onerror = ws.onmessage = t.step_func(function() {assert_unreached()}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/020.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/020.html new file mode 100644 index 0000000..55ca993 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/020.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: uppercase host</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var scheme = SCHEME_DOMAIN_PORT.split('://')[0]; + var domain = SCHEME_DOMAIN_PORT.split('://')[1]; + var ws = new WebSocket(scheme+'://'+domain.toUpperCase()+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.close(); + t.done(); + }); + ws.onclose = ws.onerror = ws.onmessage = t.step_func(function() {assert_unreached()}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/021.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/021.html new file mode 100644 index 0000000..80156540 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/021.html
@@ -0,0 +1,11 @@ +<!doctype html> +<title>WebSockets: Same sub protocol twice</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://certo2.oslo.osa/protocol_array",["foobar, foobar"])})}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/022.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/022.html new file mode 100644 index 0000000..690748f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/constructor/022.html
@@ -0,0 +1,22 @@ +<!doctype html> +<title>WebSockets: protocol array</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/protocol_array',['foobar','foobar2']); + ws.onmessage = t.step_func(function(e) { + assert_equals(ws.protocol, 'foobar'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); + ws.close(); + }); + ws.onerror = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/001.html new file mode 100644 index 0000000..4f3514a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/001.html
@@ -0,0 +1,27 @@ +<!doctype html> +<title>WebSockets: Cookie in request</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var cookie_id = ((new Date())-0) + '.' + Math.random(); +async_test(function(t) { + if (window.WebSocket) { + document.cookie = 'ws_test_'+cookie_id+'=test; Path=/'; + } + t.add_cleanup(function() { + // remove cookie + document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; + }); + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); + ws.onmessage = t.step_func(function(e) { + assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); + ws.close(); + t.done(); + }); + ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/002.html new file mode 100644 index 0000000..934d4e9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/002.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>WebSockets: Set-Cookie in response</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var cookie_id = ((new Date())-0) + '.' + Math.random(); +async_test(function(t) { + t.add_cleanup(function() { + // remove cookie + document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; + }); + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/set-cookie?'+cookie_id); + ws.onopen = t.step_func(function(e) { + assert_regexp_match(document.cookie, new RegExp('ws_test_'+cookie_id+'=test')); + ws.close(); + t.done(); + }); + ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/003.html new file mode 100644 index 0000000..eb27437 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/003.html
@@ -0,0 +1,32 @@ +<!doctype html> +<title>WebSockets: sending HttpOnly cookies in ws request</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +setup({explict_done:true}) +var cookie_id = ((new Date())-0) + '.' + Math.random(); + +var t = async_test(function(t) { + var iframe = document.createElement('iframe'); + t.add_cleanup(function() { + // remove cookie + iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=; Path=/; HttpOnly; Expires=Sun, 06 Nov 1994 08:49:37 GMT'); + iframe.onload = done; + }); + iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=test; Path=/; HttpOnly'); + iframe.onload = t.step_func(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); + ws.onmessage = t.step_func(function(e) { + ws.close(); + assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); + t.done(); + }); + ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); + }); + document.body.appendChild(iframe); +}, null, {timeout:9900}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/004.html new file mode 100644 index 0000000..c172892b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/004.html
@@ -0,0 +1,30 @@ +<!doctype html> +<title>WebSockets: setting HttpOnly cookies in ws response, checking document.cookie</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +setup({explicit_done:true}) +var cookie_id = ((new Date())-0) + '.' + Math.random(); + +var t = async_test(function(t) { + var iframe = document.createElement('iframe'); + t.add_cleanup(function() { + // remove cookie + iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=; Path=/; HttpOnly; Expires=Sun, 06 Nov 1994 08:49:37 GMT'); + iframe.onload = done; + }); + var url = SCHEME_DOMAIN_PORT+'/set-cookie_http?'+cookie_id; + var ws = new WebSocket(url); + ws.onopen = t.step_func(function(e) { + ws.close(); + assert_false(new RegExp('ws_test_'+cookie_id+'=test').test(document.cookie)); + t.done(); + }); + ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); + document.body.appendChild(iframe); +}, null, {timeout:9900}) +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/005.html new file mode 100644 index 0000000..731fbfa --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/005.html
@@ -0,0 +1,34 @@ +<!doctype html> +<title>WebSockets: setting HttpOnly cookies in ws response, checking ws request</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +setup({explicit_done:true}) +var cookie_id = ((new Date())-0) + '.' + Math.random(); + +var t = async_test(function(t) { + var iframe = document.createElement('iframe'); + t.add_cleanup(function() { + // remove cookie + iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=; Path=/; HttpOnly; Expires=Sun, 06 Nov 1994 08:49:37 GMT'); + iframe.onload = done; + }); + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/set-cookie_http?'+cookie_id); + ws.onopen = t.step_func(function(e) { + var ws2 = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); + ws2.onmessage = t.step_func(function(e) { + ws.close(); + ws2.close(); + assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); + t.done(); + }); + }); + ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); + document.body.appendChild(iframe); +}) +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/006.html new file mode 100644 index 0000000..7e97587 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/006.html
@@ -0,0 +1,31 @@ +<!doctype html> +<title>WebSockets: setting Secure cookie with document.cookie, checking ws request</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var cookie_id = ((new Date())-0) + '.' + Math.random(); +async_test(function(t) { + if (window.WebSocket) { + document.cookie = 'ws_test_'+cookie_id+'=test; Path=/; Secure'; + } + t.add_cleanup(function() { + // remove cookie + document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Secure; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; + }); + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); + ws.onmessage = t.step_func(function(e) { + ws.close(); + if (SCHEME_DOMAIN_PORT.substr(0,3) == 'wss') { + assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); + } else { + assert_false(new RegExp('ws_test_'+cookie_id+'=test').test(e.data)); + } + t.done(); + }) + ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/007.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/007.html new file mode 100644 index 0000000..f4fc8c6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/007.html
@@ -0,0 +1,34 @@ +<!doctype html> +<title>WebSockets: when to process set-cookie fields in ws response</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var cookie_id = ((new Date())-0) + '.' + Math.random(); +async_test(function(t) { + t.add_cleanup(function() { + // remove cookie + document.cookie = 'ws_test_'+cookie_id+'; Path=/; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; + }); + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/set-cookie?'+cookie_id); + ws.onopen = t.step_func(function(e) { + ws.close(); + assert_regexp_match(document.cookie, new RegExp('ws_test_'+cookie_id+'=test')); + t.done(); + }); + ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()}); + + // sleep for 2 seconds with sync xhr + var sleep = new XMLHttpRequest(); + sleep.open('GET', '/common/blank.html?pipe=trickle(d2)', false); + sleep.send(null); + + if (new RegExp('ws_test_'+cookie_id+'=test').test(document.cookie)) { + assert_unreached('cookie was set during script execution'); + } +}, null, {timeout:12000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/support/set-cookie.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/support/set-cookie.py new file mode 100644 index 0000000..8a47d7c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/cookies/support/set-cookie.py
@@ -0,0 +1,5 @@ +import urllib + +def main(request, response): + response.headers.set('Set-Cookie', urllib.unquote(request.url_parts.query)) + return [("Content-Type", "text/plain")], ""
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/eventhandlers.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/eventhandlers.html new file mode 100644 index 0000000..95aeb0b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/eventhandlers.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<title>WebSocket event handlers</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="websocket.sub.js"></script> +<div id="log"></div> +<script> +function testEventHandler(name) { + test(function() { + var ws = new WebSocket("ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH, + "echo") + assert_equals(ws["on" + name], null); + ws["on" + name] = function() {}; + ws["on" + name] = 2; + assert_equals(ws["on" + name], null); + }, "Event handler for " + name + " should have [TreatNonCallableAsNull]") +} +["open", "error", "close", "message"].forEach(testEventHandler); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/extended-payload-length.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/extended-payload-length.html new file mode 100644 index 0000000..9e586a98 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/extended-payload-length.html
@@ -0,0 +1,67 @@ +<!doctype html> +<title>WebSockets : Boundary-value tests for the 'Extended payload length' field in RFC6455 section5.2 'Base Framing Protocol'</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var datasize = 125; + var data = null; + ws.onopen = t.step_func(function(e) { + data = new Array(datasize + 1).join('a'); + ws.send(data); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, data); + t.done(); + }); +}, "Application data is 125 byte which means any 'Extended payload length' field isn't used at all.", {timeout:20000}); + +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var datasize = 126; + var data = null; + ws.onopen = t.step_func(function(e) { + data = new Array(datasize + 1).join('a'); + ws.send(data); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, data); + t.done(); + }); +}, "Application data is 126 byte which starts to use the 16 bit 'Extended payload length' field.", {timeout:20000}); + +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var datasize = 0xFFFF; + var data = null; + ws.onopen = t.step_func(function(e) { + data = new Array(datasize + 1).join('a'); + ws.send(data); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, data); + t.done(); + }); +}, "Application data is 0xFFFF byte which means the upper bound of the 16 bit 'Extended payload length' field.", {timeout:20000}); + +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var datasize = 0xFFFF + 1; + var data = null; + ws.onopen = t.step_func(function(e) { + data = new Array(datasize + 1).join('a'); + ws.send(data); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, data); + t.done(); + }); +}, "Application data is (0xFFFF + 1) byte which starts to use the 64 bit 'Extended payload length' field", {timeout:20000}); + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-cookie_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-cookie_wsh.py new file mode 100755 index 0000000..367d031 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-cookie_wsh.py
@@ -0,0 +1,12 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil + +def web_socket_do_extra_handshake(request): + request.ws_cookie = request.headers_in.get('Cookie') + +def web_socket_transfer_data(request): + if request.ws_cookie is not None: + msgutil.send_message(request, request.ws_cookie) + else: + msgutil.send_message(request, '(none)')
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-query_v13_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-query_v13_wsh.py new file mode 100755 index 0000000..4083c49 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-query_v13_wsh.py
@@ -0,0 +1,11 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil, util + +def web_socket_do_extra_handshake(request): + pass + +def web_socket_transfer_data(request): + while True: + msgutil.send_message(request, request.unparsed_uri.split('?')[1] or '') + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-query_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-query_wsh.py new file mode 100755 index 0000000..8fd7ac3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo-query_wsh.py
@@ -0,0 +1,9 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil, util + +def web_socket_do_extra_handshake(request): + pass # Always accept. + +def web_socket_transfer_data(request): + msgutil.send_message(request, request.unparsed_uri.split('?', 1)[1] or '')
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_close_data_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_close_data_wsh.py new file mode 100755 index 0000000..4da4ce61 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_close_data_wsh.py
@@ -0,0 +1,22 @@ +#!/usr/bin/python +from mod_pywebsocket import msgutil + +_GOODBYE_MESSAGE = u'Goodbye' + +def web_socket_do_extra_handshake(request): + # This example handler accepts any request. See origin_check_wsh.py for how + # to reject access from untrusted scripts based on origin value. + + pass # Always accept. + + +def web_socket_transfer_data(request): + while True: + line = request.ws_stream.receive_message() + if line is None: + return + if isinstance(line, unicode): + if line == _GOODBYE_MESSAGE: + return + request.ws_stream.send_message(line, binary=False) +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_exit_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_exit_wsh.py new file mode 100755 index 0000000..200b92e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_exit_wsh.py
@@ -0,0 +1,21 @@ +#!/usr/bin/python +from mod_pywebsocket import msgutil + +_GOODBYE_MESSAGE = u'Goodbye' + +def web_socket_do_extra_handshake(request): + # This example handler accepts any request. See origin_check_wsh.py for how + # to reject access from untrusted scripts based on origin value. + + pass # Always accept. + + +def web_socket_transfer_data(request): + while True: + line = request.ws_stream.receive_message() + if line is None: + return + if isinstance(line, unicode): + if line == _GOODBYE_MESSAGE: + return +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_raw_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_raw_wsh.py new file mode 100755 index 0000000..c3a030c9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_raw_wsh.py
@@ -0,0 +1,15 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil +import urllib + + +def web_socket_do_extra_handshake(request): + pass # Always accept. + +def web_socket_transfer_data(request): + while True: + line = msgutil.receive_message(request) + if line == 'exit': + return + request.connection.write(line.decode("string-escape"))
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_wsh.py new file mode 100755 index 0000000..41bcd16 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/echo_wsh.py
@@ -0,0 +1,36 @@ +#!/usr/bin/python +from mod_pywebsocket import msgutil +from mod_pywebsocket import common + +_GOODBYE_MESSAGE = u'Goodbye' + +def web_socket_do_extra_handshake(request): + # This example handler accepts any request. See origin_check_wsh.py for how + # to reject access from untrusted scripts based on origin value. + if request.ws_requested_protocols: + if "echo" in request.ws_requested_protocols: + request.ws_protocol = "echo" + + +def web_socket_transfer_data(request): + while True: + line = request.ws_stream.receive_message() + if line is None: + return + if isinstance(line, unicode): + request.ws_stream.send_message(line, binary=False) + if line == _GOODBYE_MESSAGE: + return + else: + request.ws_stream.send_message(line, binary=True) + +def web_socket_passive_closing_handshake(request): + # Echo close status code and reason + code, reason = request.ws_close_code, request.ws_close_reason + + # No status received is a reserved pseudo code representing an empty code, + # so echo back an empty code in this case. + if code == common.STATUS_NO_STATUS_RECEIVED: + code = None + + return code, reason
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/empty-message_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/empty-message_wsh.py new file mode 100755 index 0000000..0eb107f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/empty-message_wsh.py
@@ -0,0 +1,13 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil + +def web_socket_do_extra_handshake(request): + pass # Always accept. + +def web_socket_transfer_data(request): + line = msgutil.receive_message(request) + if line == "": + msgutil.send_message(request, 'pass') + else: + msgutil.send_message(request, 'fail')
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_no_protocol_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_no_protocol_wsh.py new file mode 100755 index 0000000..3e6b8e6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_no_protocol_wsh.py
@@ -0,0 +1,12 @@ +#!/usr/bin/python + +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi + +def web_socket_do_extra_handshake(request): + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_protocol_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_protocol_wsh.py new file mode 100755 index 0000000..d3ebb27 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_protocol_wsh.py
@@ -0,0 +1,12 @@ +#!/usr/bin/python + +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi + +def web_socket_do_extra_handshake(request): + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASec-WebSocket-Protocol: foobar\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + return \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_sleep_2_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_sleep_2_wsh.py new file mode 100755 index 0000000..3367ed8f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/handshake_sleep_2_wsh.py
@@ -0,0 +1,10 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil +import time + +def web_socket_do_extra_handshake(request): + time.sleep(2) + +def web_socket_transfer_data(request): + pass
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/invalid_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/invalid_wsh.py new file mode 100755 index 0000000..886e970b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/invalid_wsh.py
@@ -0,0 +1,9 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil + +def web_socket_do_extra_handshake(request): + request.connection.write("FOO BAR BAZ\r\n\r\n") + +def web_socket_transfer_data(request): + pass
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/origin_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/origin_wsh.py new file mode 100755 index 0000000..ce5f3a7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/origin_wsh.py
@@ -0,0 +1,11 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil + + +def web_socket_do_extra_handshake(request): + pass # Always accept. + + +def web_socket_transfer_data(request): + msgutil.send_message(request, request.ws_origin)
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/protocol_array_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/protocol_array_wsh.py new file mode 100755 index 0000000..5d46c58 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/protocol_array_wsh.py
@@ -0,0 +1,14 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil, util + +def web_socket_do_extra_handshake(request): + line = request.headers_in.get('Sec-WebSocket-Protocol') + request.ws_protocol = line.split(',', 1)[0] + +#pass + +def web_socket_transfer_data(request): + while True: + msgutil.send_message(request, request.ws_protocol) + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/protocol_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/protocol_wsh.py new file mode 100755 index 0000000..96a4525 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/protocol_wsh.py
@@ -0,0 +1,12 @@ +#!/usr/bin/python + +from mod_pywebsocket import msgutil, util + +def web_socket_do_extra_handshake(request): + request.ws_protocol = request.headers_in.get('Sec-WebSocket-Protocol') +#pass + +def web_socket_transfer_data(request): + while True: + msgutil.send_message(request, request.ws_protocol) + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py new file mode 100755 index 0000000..0daf728 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py
@@ -0,0 +1,15 @@ +#!/usr/bin/python +import urlparse + +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi + + +def web_socket_do_extra_handshake(request): + url_parts = urlparse.urlsplit(request.uri) + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test_'+(url_parts.query or '')+'=test; Secure; Path=/\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie_http_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie_http_wsh.py new file mode 100755 index 0000000..1478424 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie_http_wsh.py
@@ -0,0 +1,14 @@ +#!/usr/bin/python + +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi +import urlparse + +def web_socket_do_extra_handshake(request): + url_parts = urlparse.urlsplit(request.uri) + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test_'+(url_parts.query or '')+'=test; Path=/; HttpOnly\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie_wsh.py new file mode 100755 index 0000000..b0e6504 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/set-cookie_wsh.py
@@ -0,0 +1,15 @@ +#!/usr/bin/python +import urlparse + +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi + + +def web_socket_do_extra_handshake(request): + url_parts = urlparse.urlsplit(request.uri) + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test_'+(url_parts.query or '')+'=test; Path=/\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/simple_handshake_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/simple_handshake_wsh.py new file mode 100755 index 0000000..0750099 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/simple_handshake_wsh.py
@@ -0,0 +1,13 @@ +#!/usr/bin/python + +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi + + +def web_socket_do_extra_handshake(request): + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test=test\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/sleep_10_v13_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/sleep_10_v13_wsh.py new file mode 100755 index 0000000..e1a6d964 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/sleep_10_v13_wsh.py
@@ -0,0 +1,25 @@ +#!/usr/bin/python + +import sys, urllib, time +from mod_pywebsocket import common, msgutil, util + +def web_socket_do_extra_handshake(request): + request.connection.write('x') + time.sleep(2) + request.connection.write('x') + time.sleep(2) + request.connection.write('x') + time.sleep(2) + request.connection.write('x') + time.sleep(2) + request.connection.write('x') + time.sleep(2) + return + +def web_socket_transfer_data(request): + while True: + line = msgutil.receive_message(request) + if line == 'Goodbye': + return + request.ws_stream.send_message(line, binary=False) +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/stash_responder_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/stash_responder_wsh.py new file mode 100755 index 0000000..bc6f4fd6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/stash_responder_wsh.py
@@ -0,0 +1,45 @@ +#!/usr/bin/python +import urlparse, json +from mod_pywebsocket import common, msgutil, util +from mod_pywebsocket.handshake import hybi +from wptserve import stash + +address, authkey = stash.load_env_config() +stash = stash.Stash("/stash_responder", address=address, authkey=authkey) + +def web_socket_do_extra_handshake(request): + return + +def web_socket_transfer_data(request): + while True: + line = request.ws_stream.receive_message() + if line == "echo": + query = request.unparsed_uri.split('?')[1] + GET = dict(urlparse.parse_qsl(query)) + + # TODO(kristijanburnik): This code should be reused from + # /mixed-content/generic/expect.py or implemented more generally + # for other tests. + path = GET.get("path", request.unparsed_uri.split('?')[0]) + key = GET["key"] + action = GET["action"] + + if action == "put": + value = GET["value"] + stash.take(key=key, path=path) + stash.put(key=key, value=value, path=path) + response_data = json.dumps({"status": "success", "result": key}) + elif action == "purge": + value = stash.take(key=key, path=path) + response_data = json.dumps({"status": "success", "result": value}) + elif action == "take": + value = stash.take(key=key, path=path) + if value is None: + status = "allowed" + else: + status = "blocked" + response_data = json.dumps({"status": status, "result": value}) + + msgutil.send_message(request, response_data) + + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/wrong_accept_key_wsh.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/wrong_accept_key_wsh.py new file mode 100755 index 0000000..f504a81 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/handlers/wrong_accept_key_wsh.py
@@ -0,0 +1,13 @@ +#!/usr/bin/python + +import sys, urllib, time +from mod_pywebsocket import common, msgutil, util + +def web_socket_do_extra_handshake(request): + request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: thisisawrongacceptkey\x0D\x0A\x0D\x0A') + return + +def web_socket_transfer_data(request): + while True: + request.ws_stream.send_message('test', binary=False) + return
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/clean-close.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/clean-close.html new file mode 100644 index 0000000..acc71851 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/clean-close.html
@@ -0,0 +1,23 @@ +<!doctype html> +<title>WebSockets: wasClean, true</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.send('Test'); + }); + ws.onmessage = t.step_func(function(e) { + ws.close(); + }); + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean,true); + t.done(); + }); +}, null, {timeout:2000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/constructor.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/constructor.html new file mode 100644 index 0000000..1ed86bd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/constructor.html
@@ -0,0 +1,35 @@ +<!doctype html> +<meta charset=utf-8> +<title>CloseEvent: constructor</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +test(function() { + var event = new CloseEvent("foo"); + assert_true(event instanceof CloseEvent, "should be a CloseEvent"); + assert_equals(event.type, "foo"); + assert_false(event.bubbles, "bubbles"); + assert_false(event.cancelable, "cancelable"); + assert_false(event.wasClean, "wasClean"); + assert_equals(event.code, 0); + assert_equals(event.reason, ""); +}, "new CloseEvent() without dictionary"); + +test(function() { + var event = new CloseEvent("foo", { + bubbles: true, + cancelable: true, + wasClean: true, + code: 7, + reason: "x", + }); + assert_true(event instanceof CloseEvent, "should be a CloseEvent"); + assert_equals(event.type, "foo"); + assert_true(event.bubbles, "bubbles"); + assert_true(event.cancelable, "cancelable"); + assert_true(event.wasClean, "wasClean"); + assert_equals(event.code, 7); + assert_equals(event.reason, "x"); +}, "new CloseEvent() with dictionary"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/historical.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/historical.html new file mode 100644 index 0000000..24528a86 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/CloseEvent/historical.html
@@ -0,0 +1,12 @@ +<!doctype html> +<meta charset=utf-8> +<title>CloseEvent: historical initialization</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<script> +test(function() { + assert_false("initCloseEvent" in CloseEvent.prototype); + assert_false("initCloseEvent" in new CloseEvent('close')); +}, "initCloseEvent"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html new file mode 100644 index 0000000..faf0978 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html
@@ -0,0 +1,25 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: bufferedAmount for ArrayBuffer</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var datasize = 10; + ws.onopen = t.step_func(function(e) { + ws.binaryType = "arraybuffer"; + var data = new ArrayBuffer(datasize); + ws.send(data); + assert_equals(ws.bufferedAmount, data.byteLength); + }) + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data.byteLength, datasize); + t.done(); + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html new file mode 100644 index 0000000..3af1d93 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html
@@ -0,0 +1,26 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: bufferedAmount for blob</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var datasize = 10; + ws.onopen = t.step_func(function(e) { + ws.binaryType = "blob"; + var data = new ArrayBuffer(datasize); + ws.send(data); + assert_equals(ws.bufferedAmount, data.byteLength); + }); + ws.onmessage = t.step_func(function(e) { + assert_true(e.data instanceof Blob); + assert_equals(e.data.size, datasize); + t.done(); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html new file mode 100644 index 0000000..a6bd5301 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html
@@ -0,0 +1,18 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: defineProperty getter for bufferedAmount</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + Object.defineProperty(WebSocket.prototype, 'bufferedAmount', { + get: function() { return 'foo'; } + }); + var ws = new WebSocket('ws://example.invalid/'); + assert_equals(ws.bufferedAmount, 'foo'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html new file mode 100644 index 0000000..feddfb90 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html
@@ -0,0 +1,20 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: defineProperty setter for bufferedAmount</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + window.setter_ran = false; + Object.defineProperty(WebSocket.prototype, 'bufferedAmount', { + set: function(v) { window[v] = true; } + }); + var ws = new WebSocket('ws://example.invalid/'); + ws.bufferedAmount = 'setter_ran'; + assert_true(setter_ran); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html new file mode 100644 index 0000000..68c47e4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html
@@ -0,0 +1,23 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: delete bufferedAmount</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + assert_equals(ws.bufferedAmount, 0, 'after creation'); + ws.close(); + delete ws.bufferedAmount; + assert_equals(ws.bufferedAmount, 0, + 'after attempt to delete ws.bufferedAmount'); + delete WebSocket.prototype.bufferedAmount; + assert_equals(ws.bufferedAmount, undefined, + 'after attempt to delete WebSocket.prototype.bufferedAmount'); +}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html new file mode 100644 index 0000000..0398b0a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html
@@ -0,0 +1,53 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: bufferedAmount after send()ing</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + // bufferedAmount should increase sync in the send() method and decrease between + // events in the event loop (so never while script is running). + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.send('x'); + assert_equals(ws.bufferedAmount, 1, 'bufferedAmount after sent "x"'); + ws.send('\u00E5'); + assert_equals(ws.bufferedAmount, 1+2, 'bufferedAmount after sent "x", "\u00E5"'); + ws.send('\u5336'); + assert_equals(ws.bufferedAmount, 1+2+3, 'bufferedAmount after sent "x", "\u00E5", "\u5336"'); + ws.send('\uD801\uDC7E'); + assert_equals(ws.bufferedAmount, 1+2+3+4, 'bufferedAmount after sent "x", "\u00E5", "\u5336", "\uD801\uDC7E"'); + }) + var i = 0; + ws.onmessage = t.step_func(function(e) { + i++; + switch(i) { + case 1: + assert_equals(e.data, 'x'); + assert_true(ws.bufferedAmount < 2+3+4 + 1, 'bufferedAmount after received "x"'); + break; + case 2: + assert_equals(e.data, '\u00E5'); + assert_true(ws.bufferedAmount < 3+4 + 1, 'bufferedAmount after received "x", "\u00E5"'); + break; + case 3: + assert_equals(e.data, '\u5336'); + assert_true(ws.bufferedAmount < 4 + 1, 'bufferedAmount after received "x", "\u00E5", "\u5336"'); + break; + case 4: + assert_equals(e.data, '\uD801\uDC7E'); + assert_equals(ws.bufferedAmount, 0, 'bufferedAmount after received "x", "\u00E5", "\u5336", "\uD801\uDC7E"'); + t.done(); + break; + default: + assert_unreached(i); + } + }) + ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()}); +}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html new file mode 100644 index 0000000..55e9cf9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html
@@ -0,0 +1,15 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: getting bufferedAmount</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(ws.bufferedAmount, 0); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html new file mode 100644 index 0000000..6774237 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html
@@ -0,0 +1,27 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: bufferedAmount for 65K data</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var data = ""; + ws.onopen = t.step_func(function(e) { + for (var i = 0; i < 65000; i++) { + data = data + "x"; + } + ws.send(data); + assert_equals(data.length, ws.bufferedAmount); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, data); + t.done(); + }) +}, null, {timeout:20000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html new file mode 100644 index 0000000..8200b75 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html
@@ -0,0 +1,16 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: setting bufferedAmount</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.bufferedAmount = 5; + assert_equals(ws.bufferedAmount, 0); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html new file mode 100644 index 0000000..49b1330 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html
@@ -0,0 +1,23 @@ +<!doctype html> +<meta charset=utf-8> +<title>WebSockets: bufferedAmount for unicode data</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var data = "¥¥¥¥¥¥"; + ws.onopen = t.step_func(function(e) { + ws.send(data); + assert_equals(data.length * 2, ws.bufferedAmount); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, data); + t.done(); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-basic.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-basic.html new file mode 100644 index 0000000..ab6c93b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-basic.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>WebSockets: close()</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.onclose = t.step_func(function(e) { + assert_equals(e instanceof CloseEvent, true, 'e instanceof CloseEvent'); + assert_equals(e.wasClean, false, 'e.wasClean'); + e.wasClean = true; + assert_equals(e.wasClean, false, 'e.wasClean = true'); + delete e.wasClean; + assert_equals(e.wasClean, false, 'delete e.wasClean'); + delete CloseEvent.prototype.wasClean; + assert_equals(e.wasClean, undefined, 'delete CloseEvent.prototype.wasClean'); + t.done(); + }); + ws.close(); + assert_equals(ws.readyState, ws.CLOSING); +}, undefined, {timeout:9900}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-connecting.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-connecting.html new file mode 100644 index 0000000..009d6b06 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-connecting.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>WebSockets: close() when connecting</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/sleep_10_v13'); + t.step_timeout(function() { + assert_equals(ws.readyState, ws.CONNECTING); + ws.close(); + assert_equals(ws.readyState, ws.CLOSING); + ws.onclose = t.step_func(function(e) { + assert_equals(ws.readyState, ws.CLOSED); + assert_equals(e.wasClean, false); + t.done(); + }); + }, 1000); + ws.onopen = ws.onclose = t.unreached_func(); +}, undefined, {timeout:12000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-multiple.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-multiple.html new file mode 100644 index 0000000..c6da41a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-multiple.html
@@ -0,0 +1,29 @@ +<!doctype html> +<title>WebSockets: close() several times</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var i = 0; +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.onclose = t.step_func(function(e) { + i++; + }); + ws.close(); + ws.close(); + ws.close(); + var f = t.step_func(function() { + if (i < 1) { + t.step_timeout(f, 500); + return; + } + assert_equals(i, 1); + t.done() + }); + t.step_timeout(f, 500); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-nested.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-nested.html new file mode 100644 index 0000000..fa30c83 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-nested.html
@@ -0,0 +1,28 @@ +<!doctype html> +<title>WebSockets: close() in close event handler</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + var i = 0; + ws.onclose = t.step_func(function(e) { + i++; + if (i == 1) { + assert_equals(ws.readyState, ws.CLOSED); + ws.close(); + assert_equals(ws.readyState, ws.CLOSED); + } + t.step_timeout(function() { + assert_equals(i, 1); + t.done(); + }, 50); + }); + ws.close(); + assert_equals(ws.readyState, ws.CLOSING); +}, undefined, {timeout:9900}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-replace.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-replace.html new file mode 100644 index 0000000..a3d29d0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-replace.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: replacing close</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.close = 5; + assert_equals(ws.close, 5); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-return.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-return.html new file mode 100644 index 0000000..c752c42 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/close/close-return.html
@@ -0,0 +1,14 @@ +<!doctype html> +<title>WebSockets: close() return value</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(ws.close(), undefined); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/001.html new file mode 100644 index 0000000..efc249aa --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/001.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: getting constants on constructor</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; +for (var i = 0; i < constants.length; ++i) { + test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(WebSocket[constants[i]], i, 'WebSocket.'+constants[i]); + }, "Constants on constructors " + constants[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/002.html new file mode 100644 index 0000000..7280e09b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/002.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>WebSockets: setting constants</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +// this test is testing WebIDL stuff +var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); +var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; +for (var i = 0; i < constants.length; ++i) { + test(function() { + WebSocket[constants[i]] = 5; // should be ignored, has { ReadOnly } + WebSocket.prototype[constants[i]] = 5; // should be ignored, has { ReadOnly } + ws[constants[i]] = 5; // should be ignored, { ReadOnly } is inherited from prototype + assert_equals(WebSocket[constants[i]], i, 'WebSocket.'+constants[i]); + assert_equals(WebSocket.prototype[constants[i]], i, 'WebSocket.prototype.'+constants[i]); + assert_equals(ws[constants[i]], i, 'ws.'+constants[i]); + }, "Readonly constants " + constants[i]); +}; +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/003.html new file mode 100644 index 0000000..cdb06e5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/003.html
@@ -0,0 +1,22 @@ +<!doctype html> +<title>WebSockets: deleting constants</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; +for (var i = 0; i < constants.length; ++i) { + test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + delete WebSocket[constants[i]]; // should be ignored, has { DontDelete } + delete WebSocket.prototype[constants[i]]; // should be ignored, has { DontDelete } + delete ws[constants[i]]; // should be ignored, there is no such property on the object + assert_equals(WebSocket[constants[i]], i, 'WebSocket.'+constants[i]); + assert_equals(WebSocket.prototype[constants[i]], i, 'WebSocket.prototype.'+constants[i]); + assert_equals(ws[constants[i]], i, 'ws.'+constants[i]); + }) +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/004.html new file mode 100644 index 0000000..a5b7649 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/004.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: getting constants on prototype and object</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; +for (var i = 0; i < constants.length; ++i) { + test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(WebSocket.prototype[constants[i]], i); + }, 'WebSocket.prototype.'+constants[i]); + test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(ws[constants[i]], i); + }, 'ws.'+constants[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/005.html new file mode 100644 index 0000000..b3c2e93 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/005.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: defineProperty getter for constants</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; +for (var i = 0; i < constants.length; ++i) { + test(function() { + assert_throws(new TypeError(), function() { + Object.defineProperty(WebSocket.prototype, constants[i], { + get: function() { return 'foo'; } + }); + }); + }, "defineProperty getter " + constants[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/006.html new file mode 100644 index 0000000..7021934 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/constants/006.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: defineProperty setter for constants</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; +for (var i = 0; i < constants.length; ++i) { + test(function() { + assert_throws(new TypeError(), function(){ + Object.defineProperty(WebSocket.prototype, constants[i], { + set: function() { return 'foo'; } + }); + }); + }, "defineProperty setter " + constants[i]) +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/001.html new file mode 100644 index 0000000..4af7636 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/001.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: getting on*</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['open', 'message', 'error', 'close']; +for (var i = 0; i < events.length; ++i) { + test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(ws['on'+events[i]], null, 'on'+events[i]); + }); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/002.html new file mode 100644 index 0000000..279e0c5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/002.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: setting on*</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['open', 'message', 'error', 'close']; +for (var i = 0; i < events.length; ++i) { + test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + var foo = function () {}; + ws['on'+events[i]] = foo; + assert_equals(ws['on'+events[i]], foo); + }); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/003.html new file mode 100644 index 0000000..a9b76d8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/003.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: listening for events with onopen</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + var foo = t.step_func(function (e) { + if (e.detail == 5) + t.done(); + }) + ws.onopen = foo; + var ev = document.createEvent('UIEvents'); + ev.initUIEvent('open', false, false, window, 5); + ws.dispatchEvent(ev); +}, null, {timeout:2000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/004.html new file mode 100644 index 0000000..0c384a6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/004.html
@@ -0,0 +1,16 @@ +<!doctype html> +<title>WebSockets: members of EventTarget</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(typeof ws.addEventListener, 'function'); + assert_equals(typeof ws.removeEventListener, 'function'); + assert_equals(typeof ws.dispatchEvent, 'function'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/006.html new file mode 100644 index 0000000..f7ccf10 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/006.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: 'on*' in ws</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals('onopen' in ws, true, 'onopen'); + assert_equals('onmessage' in ws, true, 'onmessage'); + assert_equals('onerror' in ws, true, 'onerror'); + assert_equals('onclose' in ws, true, 'onclose'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/007.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/007.html new file mode 100644 index 0000000..4305097d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/007.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: listening for events with onmessage</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + var foo = t.step_func(function (e) { + if (e.detail == 5) + t.done(); + }) + ws.onmessage = foo; + var ev = document.createEvent('UIEvents'); + ev.initUIEvent('message', false, false, window, 5); + ws.dispatchEvent(ev); +}, null, {timeout:2000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/008.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/008.html new file mode 100644 index 0000000..dd06f0d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/008.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>WebSockets: listening for events with onerror</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + var run = false; + var foo = t.step_func(function (e) { + run = true; + assert_equals(e.detail, 5) + }); + ws.onerror = foo; + var ev = document.createEvent('UIEvents'); + ev.initUIEvent('error', false, false, window, 5); + ws.dispatchEvent(ev); + assert_true(run); + t.done(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/009.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/009.html new file mode 100644 index 0000000..dc25884ce --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/009.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: listening for events with onclose</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + var foo = t.step_func(function (e) { + if (e.detail == 5) + t.done(); + }); + ws.onclose = foo; + var ev = document.createEvent('UIEvents'); + ev.initUIEvent('close', false, false, window, 5); + ws.dispatchEvent(ev); +}, null, {timeout:2000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/010.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/010.html new file mode 100644 index 0000000..f4a4850 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/010.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: setting event handlers to undefined</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['onclose', 'onopen', 'onerror', 'onmessage']; +for (var i = 0; i < events.length; ++i) { + test(function(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); + var foo = function() {} + ws[events[i]] = foo; + assert_equals(ws[events[i]], foo, events[i]); + ws[events[i]] = undefined; + assert_equals(ws[events[i]], null, events[i]); + }); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/011.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/011.html new file mode 100644 index 0000000..918becc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/011.html
@@ -0,0 +1,18 @@ +<!doctype html> +<title>WebSockets: setting event handlers to 1</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['onclose', 'onopen', 'onerror', 'onmessage']; +for (var i = 0; i < events.length; ++i) { + test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); + ws[events[i]] = 1; + assert_equals(ws[events[i]], null); + }, events[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/012.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/012.html new file mode 100644 index 0000000..633f02c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/012.html
@@ -0,0 +1,18 @@ +<!doctype html> +<title>WebSockets: setting event handlers to ";"</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['onclose', 'onopen', 'onerror', 'onmessage']; +for (var i = 0; i < events.length; ++i) { + test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); + ws[events[i]] = ";"; + assert_equals(ws[events[i]], null); + }, events[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/013.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/013.html new file mode 100644 index 0000000..46550512 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/013.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: setting event handlers to {handleEvent:function(){}}</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['onclose', 'onopen', 'onerror', 'onmessage']; +for (var i = 0; i < events.length; ++i) { + test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); + var obj = {handleEvent:this.unreached_func("handleEvent was called")}; + ws[events[i]] = obj; + assert_equals(ws[events[i]], obj); + ws.dispatchEvent(new Event(events[i].substr(2))); + }, events[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/014.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/014.html new file mode 100644 index 0000000..9250fb2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/014.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: setting event handlers to null</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['onclose', 'onopen', 'onerror', 'onmessage']; +for (var i = 0; i < events.length; ++i) { + test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); + var foo = function() {} + ws[events[i]] = foo; + assert_equals(ws[events[i]], foo, events[i]); + ws[events[i]] = null; + assert_equals(ws[events[i]], null, events[i]); + }, "Setting event handlers to null " + events[i]); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/015.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/015.html new file mode 100644 index 0000000..8852e64 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/015.html
@@ -0,0 +1,33 @@ +<!doctype html> +<title>WebSockets: instanceof on events</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_raw'); + ws.onopen = t.step_func(function(e) { + assert_true(e instanceof Event); + // first a text frame, then a frame with reserved opcode 3 + // which should fail the connection + ws.send('\\x81\\x04test\\x83\\x03LOL'); + }); + ws.onmessage = t.step_func(function(e) { + assert_true(e instanceof Event); + assert_true(e instanceof MessageEvent); + assert_equals(ws.readyState, ws.OPEN); + }) + ws.onerror = t.step_func(function(e) { + assert_true(e instanceof Event); + assert_equals(ws.readyState, ws.CLOSED); + }) + ws.onclose = t.step_func(function(e) { + assert_true(e instanceof Event); + assert_true(e instanceof CloseEvent); + t.done(); + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/016.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/016.html new file mode 100644 index 0000000..0e88c790 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/016.html
@@ -0,0 +1,37 @@ +<!doctype html> +<title>WebSockets: addEventListener</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var count = 0; + var checkCount = t.step_func(function (c, e) { + count++; + assert_equals(count, c); + }); + // no spec requires this order for event listeners but the web does + ws.addEventListener('open', t.step_func(function(e) { + checkCount(1, e); + ws.send('Goodbye'); + }), false); + ws.onopen = t.step_func(function(e) {checkCount(2, e) }); + ws.addEventListener('open', t.step_func(function(e) {checkCount(3, e); }), false); + + ws.addEventListener('message', t.step_func(function(e) {checkCount(4, e); }), false); + ws.onmessage = t.step_func(function(e) {checkCount(5, e) }); + ws.addEventListener('message', t.step_func(function(e) {checkCount(6, e); }), false); + + ws.addEventListener('close', t.step_func(function(e) {checkCount(7, e); }), false); + ws.onclose = t.step_func(function(e) {checkCount(8, e) }); + ws.addEventListener('close', t.step_func(function(e) { + checkCount(9, e); + t.done(); + }), false); + +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/017.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/017.html new file mode 100644 index 0000000..b2ed593 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/017.html
@@ -0,0 +1,53 @@ +<!doctype html> +<title>WebSockets: this, e.target, e.currentTarget, e.eventPhase</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_raw'); + ws.addEventListener('open', function(e) { + var this_val = this; + t.step(function() { + // first a text frame, then a frame with reserved opcode 3 + // which should fail the connection + ws.send('\\x81\\x04test\\x83\\x03LOL'); + assert_equals(this_val, ws); + assert_equals(e.target, ws); + assert_equals(e.currentTarget, ws); + assert_equals(e.eventPhase, 2); + }); + }, false); + ws.addEventListener('message', function(e) { + var this_val = this; + t.step(function() { + assert_equals(this_val, ws); + assert_equals(e.target, ws); + assert_equals(e.currentTarget, ws); + assert_equals(e.eventPhase, 2); + }); + }, false); + ws.addEventListener('error', function(e) { + var this_val = this; + t.step(function() { + assert_equals(this_val, ws); + assert_equals(e.target, ws); + assert_equals(e.currentTarget, ws); + assert_equals(e.eventPhase, 2); + }); + }, false); + ws.addEventListener('close', function(e) { + var this_val = this; + t.step(function() { + assert_equals(this_val, ws); + assert_equals(e.target, ws); + assert_equals(e.currentTarget, ws); + assert_equals(e.eventPhase, 2); + t.done(); + }); + }, false); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/018.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/018.html new file mode 100644 index 0000000..a3ef0f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/018.html
@@ -0,0 +1,49 @@ +<!doctype html> +<title>WebSockets: toString(), bubbles, cancelable</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var ws = null; +setup(function() { + ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_raw'); +}); + +async_test(function(t) { + ws.addEventListener('open', t.step_func_done(function(e) { + // first a text frame, then a frame with reserved opcode 3 + // which should fail the connection + ws.send('\\x81\\x04test\\x83\\x03LOL'); + assert_equals(e.toString(), '[object Event]', "open e.toString()"); + assert_equals(e.bubbles, false, 'open e.bubbles'); + assert_equals(e.cancelable, false, 'open e.cancelable'); + }), false); +}, "open event"); + +async_test(function(t) { + ws.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.toString(), '[object MessageEvent]', "message e.toString()"); + assert_equals(e.bubbles, false, 'message e.bubbles'); + assert_equals(e.cancelable, false, 'message e.cancelable'); + }), false); +}, "message event"); + +async_test(function(t) { + ws.addEventListener('error', t.step_func_done(function(e) { + assert_equals(e.toString(), '[object Event]', "error e.toString()"); + assert_equals(e.bubbles, false, 'error e.bubbles'); + assert_equals(e.cancelable, false, 'error e.cancelable'); + }), false); +}, "error event"); + +async_test(function(t) { + ws.addEventListener('close', t.step_func_done(function(e) { + assert_equals(e.toString(), '[object CloseEvent]', "close e.toString()"); + assert_equals(e.bubbles, false, 'close e.bubbles'); + assert_equals(e.cancelable, false, 'close e.cancelable'); + }), false); +}, "close event"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/019.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/019.html new file mode 100644 index 0000000..f975a809 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/019.html
@@ -0,0 +1,31 @@ +<!doctype html> +<title>WebSockets: removeEventListener</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +var events = ['open', 'message', 'error', 'close']; +for (var i = 0; i < events.length; ++i) { + test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.close(); + var got = []; + var event; + function addThis(e) { + got.push(e.type); + } + ws.addEventListener(events[i], addThis, false); + ws.removeEventListener(events[i], addThis, false); + event = document.createEvent('Event'); + event.initEvent(events[i], false, false); + ws.dispatchEvent(event); + assert_equals(got.length, 0); + if (got.length) { + debug('Got: '+got); + } + }) +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/020.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/020.html new file mode 100644 index 0000000..54d96fe --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/events/020.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: error events</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket('ws://example.invalid/'); + ws.onerror = t.step_func(function(e) { + assert_true(e instanceof Event); + t.done(); + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/extensions/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/extensions/001.html new file mode 100644 index 0000000..f500386 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/extensions/001.html
@@ -0,0 +1,14 @@ +<!doctype html> +<title>WebSockets: getting extensions in connecting</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + // The extensions attribute must initially return the empty string + assert_equals((new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message')).extensions, ''); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/protocol/protocol-initial.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/protocol/protocol-initial.html new file mode 100644 index 0000000..ba27228e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/protocol/protocol-initial.html
@@ -0,0 +1,14 @@ +<!doctype html> +<title>WebSockets: getting protocol in connecting</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + // The protocol attribute must initially return the empty string + assert_equals((new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message')).protocol, ''); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/001.html new file mode 100644 index 0000000..aa5d9fd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/001.html
@@ -0,0 +1,13 @@ +<!doctype html> +<title>WebSockets: getting readyState in connecting</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + assert_equals((new WebSocket(SCHEME_DOMAIN_PORT+'/')).readyState, WebSocket.CONNECTING); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/002.html new file mode 100644 index 0000000..9e97416 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/002.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: setting readyState</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.readyState = 5; + assert_equals(ws.readyState, ws.CONNECTING); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/003.html new file mode 100644 index 0000000..93d72b64 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/003.html
@@ -0,0 +1,18 @@ +<!doctype html> +<title>WebSockets: delete readyState</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.close(); + delete ws.readyState; + assert_equals(ws.readyState, ws.CLOSING, 'delete ws.readyState'); + delete WebSocket.prototype.readyState; + assert_equals(ws.readyState, undefined, 'delete WebSocket.prototype.readyState'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/004.html new file mode 100644 index 0000000..fbe326a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/004.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: defineProperty getter for readyState</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + Object.defineProperty(WebSocket.prototype, 'readyState', { + get: function() { return 'foo'; } + }); + var ws = new WebSocket('ws://example.invalid/'); + assert_equals(ws.readyState, 'foo'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/005.html new file mode 100644 index 0000000..3ca87052 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/005.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: defineProperty setter for readyState</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(){ + window.setter_ran = false; + Object.defineProperty(WebSocket.prototype, 'readyState', { + set: function(v) { window[v] = true; } + }); + var ws = new WebSocket('ws://example.invalid/'); + ws.readyState = 'setter_ran'; + assert_true(setter_ran); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/006.html new file mode 100644 index 0000000..e0be938 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/006.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: getting readyState in open</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + assert_equals(ws.readyState, ws.OPEN); + ws.close(); + t.done(); + }); + ws.onerror = ws.onmessage = ws.onclose = t.step_func(function() {assert_unreached()}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/007.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/007.html new file mode 100644 index 0000000..12a4cd0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/007.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: getting readyState in closing</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.close(); + assert_equals(ws.readyState, ws.CLOSING); + t.done(); + }); + ws.onerror = ws.onmessage = ws.onclose = t.step_func(function() {assert_unreached()}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/008.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/008.html new file mode 100644 index 0000000..c83ead4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/readyState/008.html
@@ -0,0 +1,21 @@ +<!doctype html> +<title>WebSockets: getting readyState in closed</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.onclose = t.step_func(function(e) { + assert_equals(ws.readyState, ws.CLOSED); + t.done(); + }) + ws.close(); + }); + ws.onerror = ws.onmessage = ws.onclose = t.step_func(function() {assert_unreached()}); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/001.html new file mode 100644 index 0000000..3a22420 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/001.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: send() with no args</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_throws(new TypeError(), function(){ws.send()}); +}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/002.html new file mode 100644 index 0000000..f5c7e4f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/002.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: replacing send</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.send = 5; + assert_equals(ws.send, 5); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/003.html new file mode 100644 index 0000000..08aadbf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/003.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: send() when readyState is CONNECTING</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_throws("INVALID_STATE_ERR", function(){ws.send('a')}); +}); +</script> +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/004.html new file mode 100644 index 0000000..af906b55 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/004.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>WebSockets: send() with unpaired surrogate when readyState is CONNECTING</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_throws("INVALID_STATE_ERR", function(){ws.send('a\uDC00x')}); +}, "lone low surrogate"); + +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_throws("INVALID_STATE_ERR", function(){ws.send('a\uD800x')}); +}, "lone high surrogate"); + +test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_throws("INVALID_STATE_ERR", function(){ws.send('a\uDC00\uD800x')}); +}, "surrogates in wrong order"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/005.html new file mode 100644 index 0000000..69e727d1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/005.html
@@ -0,0 +1,18 @@ +<!doctype html> +<title>WebSockets: send() return value</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + assert_equals(ws.send('test'), undefined); + t.done(); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/006.html new file mode 100644 index 0000000..bcbd4ca --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/006.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>WebSockets: send() with unpaired surrogate when readyState is OPEN</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id="log"></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + // lone low surrogate, lone high surrogate + surrogates in wrong order. + ws.send('a\uDC00xb\uD800xc\uDC00\uD800x'); + }) + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, 'a\uFFFDxb\uFFFDxc\uFFFD\uFFFDx'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); + ws.close(); + }) + }); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/007.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/007.html new file mode 100644 index 0000000..6b93526 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/007.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>WebSockets: close() followed by send()</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> + +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + // test that nothing strange happens if we send something after close() + ws.close(); + var sent = ws.send('test'); + assert_equals(sent, undefined); + }); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); + ws.onerror = ws.onmessage = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/008.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/008.html new file mode 100644 index 0000000..084e0508 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/008.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>WebSockets: send() in onclose</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.send('Goodbye'); + }) + ws.onclose = t.step_func(function(e) { + // test that nothing strange happens when send()ing in closed state + var sent = ws.send('test'); + assert_equals(sent, undefined); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.onerror = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/009.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/009.html new file mode 100644 index 0000000..12fd8b8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/009.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>WebSockets: send('')</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); + ws.onopen = t.step_func(function(e) { + ws.send(''); + }) + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, 'pass'); + ws.close(); + }); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); + ws.onerror = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/010.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/010.html new file mode 100644 index 0000000..f6680c6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/010.html
@@ -0,0 +1,41 @@ +<!doctype html> +<title>WebSockets: sending non-strings</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(outer) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + var stuffToSend = [null, undefined, 1, window, document.body, {}, [], ws, function(){}, new Error()] + var tests = []; + + for (var i=0; i<stuffToSend.length; i++) { + tests.push(async_test(document.title + " (" + stuffToSend[i] + ")")); + } + + i = 0; + function sendNext() { + if (i === stuffToSend.length) { + outer.done() + ws.close(); + } else { + var t = tests[i]; + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, String(stuffToSend[i])); + i++; + sendNext(); + t.done(); + }); + ws.onclose = ws.onerror = t.step_func(function() {assert_unreached()}); + ws.send(stuffToSend[i]); + } + } + ws.onopen = outer.step_func(function(e) { + sendNext(); + }); +}, "Constructor succeeds"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/011.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/011.html new file mode 100644 index 0000000..3be974e4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/011.html
@@ -0,0 +1,27 @@ +<!doctype html> +<title>WebSockets: sending non-ascii, combining chars and non-BMP</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> + +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.send('\u00E5 a\u030A \uD801\uDC7E'); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, '\u00E5 a\u030A \uD801\uDC7E'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }) + ws.onclose = ws.onerror = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/012.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/012.html new file mode 100644 index 0000000..2667517 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/send/012.html
@@ -0,0 +1,27 @@ +<!doctype html> +<title>WebSockets: sending null</title> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> + +async_test(function(t){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.send(null); + }); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, 'null'); + ws.onclose = t.step_func(function(e) { + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }); + ws.onclose = ws.onerror = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/001.html new file mode 100644 index 0000000..3d1e5e5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/001.html
@@ -0,0 +1,13 @@ +<!doctype html> +<title>WebSockets: getting url</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + assert_equals((new WebSocket(SCHEME_DOMAIN_PORT)).url, SCHEME_DOMAIN_PORT+'/'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/002.html new file mode 100644 index 0000000..aa11664 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/002.html
@@ -0,0 +1,15 @@ +<!doctype html> +<title>WebSockets: setting url</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + ws.url = SCHEME_DOMAIN_PORT+'/test'; + assert_equals(ws.url, SCHEME_DOMAIN_PORT+'/'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/003.html new file mode 100644 index 0000000..8cc0b791 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/003.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: deleting url</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + delete ws.url; + assert_equals(ws.url, SCHEME_DOMAIN_PORT+'/', 'delete ws.url'); + delete WebSocket.prototype.url; + assert_equals(ws.url, undefined, 'delete WebSocket.prototype.url'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/004.html new file mode 100644 index 0000000..908e2cd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/004.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: 'URL'</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); + assert_equals(ws.URL, undefined); + assert_equals('URL' in ws, false); + assert_equals(WebSocket.prototype.URL, undefined); + assert_equals('URL' in WebSocket.prototype, false); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/005.html new file mode 100644 index 0000000..f3d89cf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/005.html
@@ -0,0 +1,17 @@ +<!doctype html> +<title>WebSockets: defineProperty getter for url</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + Object.defineProperty(WebSocket.prototype, 'url', { + get: function() { return 'foo'; } + }); + var ws = new WebSocket('ws://example.invalid/'); + assert_equals(ws.url, 'foo'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/006.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/006.html new file mode 100644 index 0000000..124bdbc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/006.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: defineProperty setter for url</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + window.setter_ran = false; + Object.defineProperty(WebSocket.prototype, 'url', { + set: function(v) { window[v] = true; } + }); + var ws = new WebSocket('ws://example.invalid/'); + ws.url = 'setter_ran'; + assert_true(setter_ran); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/resolve.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/resolve.html new file mode 100644 index 0000000..ad7db14 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/interfaces/WebSocket/url/resolve.html
@@ -0,0 +1,14 @@ +<!doctype html> +<title>WebSocket#url: resolving</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../../../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +test(function() { + var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo?foo%20bar baz'); + assert_equals(ws.url, SCHEME_DOMAIN_PORT + '/echo?foo%20bar%20baz'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/keeping-connection-open/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/keeping-connection-open/001.html new file mode 100644 index 0000000..2e5423c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/keeping-connection-open/001.html
@@ -0,0 +1,28 @@ +<!doctype html> +<title>WebSockets: 20s inactivity after handshake</title> +<meta name=timeout content=long> +<p>Note: This test takes 20 seconds to run.</p> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onclose = ws.onerror = ws.onmessage = t.unreached_func(); + ws.onopen = t.step_func(function(e) { + t.step_timeout(function() { + ws.send('test'); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, 'test'); + ws.onclose = t.step_func(function(e) { + t.step_timeout(() => t.done(), 50); + }); + ws.close(); + }); + }, 20000); + }) +}, null, {timeout:30000}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/message-received.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/message-received.html new file mode 100644 index 0000000..58d8d84 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/message-received.html
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<title>"A WebSocket message has been received", with multiple globals in play</title> +<link rel="help" href="https://html.spec.whatwg.org/multipage/comms.html#feedback-from-the-protocol"> +<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../websocket.sub.js"></script> + +<!-- This is the entry global --> + +<iframe src="support/incumbent.sub.html"></iframe> + +<script> +"use strict"; +setup({ explicit_done: true }); + +window.onload = function() { + async_test(function(t) { + frames[0].setupWebSocket("arraybuffer", t.step_func_done(function(relevantWindow, event) { + assert_equals(event.constructor, relevantWindow.MessageEvent); + assert_equals(event.data.constructor, relevantWindow.ArrayBuffer); + })); + }, "ArrayBuffer should be created in the relevant realm of the WebSocket"); + + async_test(function(t) { + frames[0].setupWebSocket("blob", t.step_func_done(function(relevantWindow, event) { + assert_equals(event.constructor, relevantWindow.MessageEvent); + assert_equals(event.data.constructor, relevantWindow.Blob); + })); + }, "Blob should be created in the relevant realm of the WebSocket"); + + done(); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/support/incumbent.sub.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/support/incumbent.sub.html new file mode 100644 index 0000000..a138b702 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/support/incumbent.sub.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<title>Incumbent page used as a test helper</title> + +<iframe src="relevant.html" id="r"></iframe> + +<script> +"use strict"; + +const relevant = document.querySelector("#r").contentWindow; + +window.setupWebSocket = (binaryType, fn) => { + const wsocket = new relevant.WebSocket("ws://{{host}}:{{ports[ws][0]}}/echo"); + + wsocket.addEventListener("open", () => { + wsocket.binaryType = binaryType; + wsocket.send(new ArrayBuffer(15)); + }); + + wsocket.addEventListener("message", ev => { + fn(relevant, ev); + }); +}; + +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/support/relevant.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/support/relevant.html new file mode 100644 index 0000000..44f42eda --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/multi-globals/support/relevant.html
@@ -0,0 +1,2 @@ +<!DOCTYPE html> +<title>Relevant page used as a test helper</title>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/001.html new file mode 100644 index 0000000..7274150 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/001.html
@@ -0,0 +1,19 @@ +<!doctype html> +<title>WebSockets: invalid handshake</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/invalid'); + ws.onclose = t.step_func(function(e) { + assert_false(e.wasClean); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }); + ws.onmessage = ws.onopen = t.unreached_func(); +}, null, {timeout:9900}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/002.html new file mode 100644 index 0000000..052e6445 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/002.html
@@ -0,0 +1,23 @@ +<!doctype html> +<title>WebSockets: valid handshake</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean, true); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }); + ws.onerror = ws.onmessage = ws.onclose = t.unreached_func(); +}, null, {timeout:9900}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/003-sets-origin.worker.js b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/003-sets-origin.worker.js new file mode 100644 index 0000000..86c4ef7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/003-sets-origin.worker.js
@@ -0,0 +1,17 @@ +importScripts("/resources/testharness.js"); +importScripts('../constants.js?pipe=sub'); +importScripts('../websocket.sub.js'); + +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/origin'); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, location.protocol+'//'+location.host); + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean, true); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }) + ws.onerror = ws.onclose = t.unreached_func(); +}, "W3C WebSocket API - origin set in a Worker");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/003.html new file mode 100644 index 0000000..8e806ea --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/003.html
@@ -0,0 +1,23 @@ +<!doctype html> +<title>WebSockets: origin</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/origin'); + ws.onmessage = t.step_func(function(e) { + assert_equals(e.data, location.protocol+'//'+location.host); + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean, true); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }) + ws.onerror = ws.onclose = t.unreached_func(); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/005.html new file mode 100644 index 0000000..c55cd65 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/opening-handshake/005.html
@@ -0,0 +1,22 @@ +<!doctype html> +<title>WebSockets: proper first line</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/simple_handshake'); + ws.onmessage = t.unreached_func(); + ws.onopen = t.step_func(function(e) { + ws.onclose = t.step_func(function(e) { + assert_equals(e.wasClean, true); + ws.onclose = t.unreached_func(); + t.step_timeout(() => t.done(), 50); + }) + ws.close(); + }) +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/security/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/security/001.html new file mode 100644 index 0000000..4cc24598 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/security/001.html
@@ -0,0 +1,16 @@ +<!doctype html> +<title>WebSockets: wrong accept key</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/wrong_accept_key'); + ws.onclose = t.step_func(function(e) { + t.done(); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/security/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/security/002.html new file mode 100644 index 0000000..2bdc133 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/security/002.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: check Sec-WebSocket-Key</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<script> +async_test(function(t) { + var xhr = new XMLHttpRequest(); + xhr.onload = t.step_func(function() { + assert_equals(xhr.responseText, 'PASS'); + t.done(); + }); + xhr.open("GET", "check.py", true); + xhr.setRequestHeader('Sec-WebSocket-Key', 'jW7qmdXj5Kk5jTClF1BN3'); + xhr.send(null); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/security/check.py b/third_party/WebKit/LayoutTests/external/wpt/websockets/security/check.py new file mode 100644 index 0000000..f141437 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/security/check.py
@@ -0,0 +1,2 @@ +def main(request, response): + return "FAIL" if 'Sec-WebSocket-Key' in request.headers else "PASS"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/001-1.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/001-1.html new file mode 100644 index 0000000..8ae83af --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/001-1.html
@@ -0,0 +1,28 @@ +<!doctype html> +<title>WebSockets: navigating top-level browsing context</title> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<script> +var controller = opener || parent; +var t = controller.t; +var assert_equals = controller.asset_equals; +var assert_unreached = controller.assert_unreached; +var uuid = controller.uuid; +t.add_cleanup(function() {delete sessionStorage[uuid];}); +t.step(function() { + if (sessionStorage[uuid]) { + t.done(); + } else { + sessionStorage[uuid] = 'true'; + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + t.step_timeout(function() { + assert_unreached('document was not discarded'); + }, 1000); + controller.navigate(); + }) + ws.onerror = ws.onmessage = ws.onclose = t.step_func(e => assert_unreached("Got unexpected event " + e.type)); + } +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/001.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/001.html new file mode 100644 index 0000000..d949b6eb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/001.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>WebSockets: navigating top-level browsing context</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<p>Test requires popup blocker disabled</p> +<div id=log></div> +<script> +var t = async_test(); +var w; +var uuid; +t.step(function() { + uuid = token() + w = window.open("001-1.html"); + add_result_callback(function() { + w.close(); + }); +}); +navigate = t.step_func(function() { + w.location = 'data:text/html,<body onload="history.back()">'; +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/002-1.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/002-1.html new file mode 100644 index 0000000..8432d84 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/002-1.html
@@ -0,0 +1,34 @@ +<!doctype html> +<title>WebSockets: navigating top-level browsing context with closed websocket</title> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<script> +var controller = opener || parent; +var t = controller.t; +var assert_equals = controller.asset_equals; +var assert_unreached = controller.assert_unreached ; +var uuid = controller.token; +t.add_cleanup(function() {delete sessionStorage[uuid];}); +t.step(function() { + // this test can fail if the document is unloaded on navigation e.g. due to OOM + if (sessionStorage[uuid]) { + assert_unreached('document was discarded'); + } else { + sessionStorage[uuid] = 'true'; + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + + t.step_timeout(function() { + assert_equals(ws.readyState, ws.CLOSED, 'ws.readyState'); + t.done(); + }, 4000); + ws.close(); + ws.onclose = t.step_func(function() { + controller.navigate(); + }); + }) + ws.onerror = ws.onmessage = ws.onclose = t.step_func(e => assert_unreached("Got unexpected event " + e.type)); + } +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/002.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/002.html new file mode 100644 index 0000000..df35192 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/002.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>WebSockets: navigating top-level browsing context with closed websocket</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<p>Test requires popup blocker disabled</p> +<div id=log></div> +<script> +var t = async_test(null, {timeout:15000}); +var w; +var uuid; +t.step(function() { + uuid = token() + w = window.open("002-1.html"); + add_result_callback(function() { + w.close(); + }); +}); +navigate = t.step_func(function() { + w.location = 'data:text/html,<body onload="history.back()">'; +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/003.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/003.html new file mode 100644 index 0000000..554daf4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/003.html
@@ -0,0 +1,14 @@ +<!doctype html> +<title>WebSockets: navigating nested browsing context</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<div id=log></div> +<script> +var uuid; +var t = async_test(function() {uuid = token()}); +var navigate = t.step_func(function() { + document.getElementsByTagName("iframe")[0].src = 'data:text/html,<body onload="history.back()">'; +}); +</script> +<iframe src=001-1.html></iframe> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/004-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/004-expected.txt new file mode 100644 index 0000000..108c294c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/004-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL WebSockets: navigating nested browsing context with closed websocket assert_unreached: document was discarded Reached unreachable code +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/004.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/004.html new file mode 100644 index 0000000..0ef4fbc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/004.html
@@ -0,0 +1,16 @@ +<!doctype html> +<title>WebSockets: navigating nested browsing context with closed websocket</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<div id=log></div> +<script> +var uuid; +var t = async_test(null, {timeout:15000}) +t.step(function() {uuid = token()}); +var navigate = t.step_func(function() { + document.getElementsByTagName("iframe")[0].src = 'data:text/html,<body onload="history.back()">'; +}); +</script> +<iframe src=002-1.html></iframe>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/005-1.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/005-1.html new file mode 100644 index 0000000..fd70fc5b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/005-1.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>WebSockets: navigating nested browsing context with a websocket in top-level</title> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<script> +var t = opener.t; +var assert_unreached = opener.assert_unreached; +var hasRun = false; +function run(){ + var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); + ws.onopen = t.step_func(function(e) { + t.step_timeout(function() { + ws.send('test'); + }, 1000); + window[0].location = 'data:text/html,<body onload="history.back()">'; + ws.onmessage = t.step_func_done(function(e) { + ws.close(); + }); + }); + ws.onerror = ws.onmessage = ws.onclose = t.step_func(e => assert_unreached("Got unexpected event " + e.type)); +} +</script> +<iframe src='data:text/html,foo' onload='if (hasRun) return; hasRun = true; t.step(run)'></iframe>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/005.html b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/005.html new file mode 100644 index 0000000..4bafe8b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/unload-a-document/005.html
@@ -0,0 +1,20 @@ +<!doctype html> +<title>WebSockets: navigating nested browsing context with a websocket in top-level</title> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=../constants.js?pipe=sub></script> +<meta name="variant" content=""> +<meta name="variant" content="?wss"> +<div id=log></div> +<p>Test requires popup blocker disabled</p> +<div id=log></div> +<script> +var t = async_test(null, {timeout:15000}); +t.step(function() { + var w = window.open("005-1.html"); + add_result_callback(function() { + w.close(); + }); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/websockets/websocket.sub.js b/third_party/WebKit/LayoutTests/external/wpt/websockets/websocket.sub.js new file mode 100644 index 0000000..651024ee --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/websockets/websocket.sub.js
@@ -0,0 +1,107 @@ +var __SERVER__NAME = "{{host}}"; +var __PORT = {{ports[ws][0]}}; +var __SECURE__PORT = {{ports[wss][0]}}; +var __NEW__PORT = __PORT; //All ports are non-default for now +var __NEW__SECURE__PORT = __SECURE__PORT; //All ports are non-default for now +var __PATH = "echo"; +var wsocket; +var data; + +function IsWebSocket() { + if (!self.WebSocket) { + assert_true(false, "Browser does not support WebSocket"); + } +} + +function CreateWebSocketNonAbsolute() { + IsWebSocket(); + var url = __SERVER__NAME; + wsocket = new WebSocket(url); +} + +function CreateWebSocketNonWsScheme() { + IsWebSocket(); + var url = "http://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url); +} + +function CreateWebSocketNonAsciiProtocol(nonAsciiProtocol) { + IsWebSocket(); + var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url, nonAsciiProtocol); +} + +function CreateWebSocketWithAsciiSep(asciiWithSep) { + IsWebSocket(); + var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url, asciiWithSep); +} + +function CreateWebSocketWithBlockedPort(blockedPort) { + IsWebSocket(); + var url = "ws://" + __SERVER__NAME + ":" + blockedPort + "/" + __PATH; + return new WebSocket(url); +} + +function CreateWebSocketWithSpaceInUrl(urlWithSpace) { + IsWebSocket(); + var url = "ws://" + urlWithSpace + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url); +} + +function CreateWebSocketWithSpaceInProtocol(protocolWithSpace) { + IsWebSocket(); + var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url, protocolWithSpace); +} + +function CreateWebSocketWithRepeatedProtocols() { + IsWebSocket(); + var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url, ["echo", "echo"]); +} + +function CreateWebSocketWithRepeatedProtocolsCaseInsensitive() { + IsWebSocket(); + var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + wsocket = new WebSocket(url, ["echo", "eCho"]); +} + +function CreateWebSocket(isSecure, isProtocol, isProtocols) { + IsWebSocket(); + var url; + if (isSecure) { + if (__SECURE__PORT === null) { + throw new Error("wss not yet supported"); + } + url = "wss://" + __SERVER__NAME + ":" + __SECURE__PORT + "/" + __PATH; + } + else { + url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; + } + + if (isProtocol) { + wsocket = new WebSocket(url, "echo"); + } + else if (isProtocols) { + wsocket = new WebSocket(url, ["echo", "chat"]); + } + else { + wsocket = new WebSocket(url); + } + return wsocket; +} + +function CreateControlWebSocket(isSecure) { + IsWebSocket(); + var url; + if (isSecure) { + url = "wss://" + __SERVER__NAME + ":" + __SECURE__PORT + "/control"; + } + else { + url = "ws://" + __SERVER__NAME + ":" + __PORT + "/control"; + } + + return new WebSocket(url); +} +
diff --git a/third_party/WebKit/LayoutTests/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/fast/css/crash-on-gradient-with-derived-color-expected.txt index 13c46a3..97296481 100644 --- a/third_party/WebKit/LayoutTests/fast/css/crash-on-gradient-with-derived-color-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-linear-gradient is deprecated. Please use linear-gradient instead. This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/fast/css/linear-gradient-currentcolor-expected.txt index 95688a3..8b13789 100644 --- a/third_party/WebKit/LayoutTests/fast/css/linear-gradient-currentcolor-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/linear-gradient-currentcolor-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-linear-gradient is deprecated. Please use linear-gradient instead.
diff --git a/third_party/WebKit/LayoutTests/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/fast/css/number-parsing-crash-expected.txt index b23975c..75cf4f3 100644 --- a/third_party/WebKit/LayoutTests/fast/css/number-parsing-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/number-parsing-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This should not crash.
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-expected.txt index b592b9c..f9a7cf98 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.txt index 717b6d8..31f81c2a 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-1px-border-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-1px-border-expected.txt index 028f2ea..0ccb964 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-1px-border-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-1px-border-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Linear gradient with 1px border-bottom. Should not crash
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-degenerate-gradient-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-degenerate-gradient-expected.txt index 7aab428d..b39094f9 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-degenerate-gradient-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-degenerate-gradient-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-radial-gradient is deprecated. Please use radial-gradient instead. Degenerate Linear gradient. Should not crash
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-remove-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-remove-expected.txt index 2d911b6..c5e8fda 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-remove-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-remove-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for https://bugs.webkit.org/show_bug.cgi?id=18879 Reproducible crash when removing a gradient. The test should not crash and there should be a green square below.
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-tr-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-tr-expected.txt index 05fe84f9..751e426 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/crash-on-tr-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/crash-on-tr-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test should not crash (or ASSERT). There should also be a table cell with a gradient below.
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/css3-radial-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/css3-radial-gradient-crash-expected.txt index 03d5a6f..d31f6ea 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/css3-radial-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/css3-radial-gradient-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-radial-gradient is deprecated. Please use radial-gradient instead. This test should not crash.
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/gradient-on-pseudoelement-crash-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/gradient-on-pseudoelement-crash-expected.txt index 094278b9..fc0660cf 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/gradient-on-pseudoelement-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/gradient-on-pseudoelement-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test should not crash.
diff --git a/third_party/WebKit/LayoutTests/fast/gradients/zero-range-repeating-gradient-hang-expected.txt b/third_party/WebKit/LayoutTests/fast/gradients/zero-range-repeating-gradient-hang-expected.txt index 7ed5aa8..3d28c116 100644 --- a/third_party/WebKit/LayoutTests/fast/gradients/zero-range-repeating-gradient-hang-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/gradients/zero-range-repeating-gradient-hang-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-repeating-linear-gradient is deprecated. Please use repeating-linear-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x116
diff --git a/third_party/WebKit/LayoutTests/http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html b/third_party/WebKit/LayoutTests/http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html index 6a8ec676..d6a6307b 100644 --- a/third_party/WebKit/LayoutTests/http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html +++ b/third_party/WebKit/LayoutTests/http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html
@@ -25,13 +25,13 @@ function showCookies() { alert("Test stage " + stage++ + " document.cookie is: " + document.cookie); - parent.window.postMessage("done", "*"); + parent.window.postMessage("done", "*"); } function sendXHR(queryCommand) { if (window.testRunner) { - // setAlwaysAcceptCookies() takes effect asynchronously (IPC is involved). + // setBlockThirdPartyCookies() takes effect asynchronously (IPC is involved). testRunner.setBlockThirdPartyCookies(false); } @@ -50,8 +50,8 @@ if (window.testRunner) { testRunner.setBlockThirdPartyCookies(true); } - - parent.window.postMessage("done", "*"); + + parent.window.postMessage("done", "*"); } function resetCookiesAndNotifyDone()
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt index 378b26c..a863331 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt
@@ -3,15 +3,15 @@ Tests the gutter decorations in target source code after ScriptFormatterEditorAction 0: + function outer(index) { -1: - +1: 2: - function inner1(a) { 3: - return a + 1; 4: - } -5: - +5: 6: + function inner2(a) { 7: + return a + 2; 8: + } -9: - +9: 10: - function inner3(a) { 11: - return a + 3; 12: - } @@ -21,15 +21,15 @@ 16: - function inner5(a) { 17: - return a + 5; 18: - } -19: - +19: 20: + return [inner1, inner2, inner3, inner4, inner5][index]; 21: + } -22: - +22: 23: + function performActions() { 24: + return outer(1)(0) + outer(3)(0); 25: + } 26: - function outer2() { 27: - return outer(0)(0); 28: - } -29: - +29:
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt index e350ac9..c64c57eb 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt
@@ -5,24 +5,24 @@ 0: + body { 1: + background-color: lightblue; 2: + } -3: - +3: 4: - .class { 5: - color: red; 6: - } -7: - +7: 8: - .class2 { 9: - color:green; 10: - font-style: italic; 11: - } -12: - +12: 13: + #id { 14: + color: blue 15: + } -16: - +16: 17: - notUsed { 18: - color: black 19: - } -20: - +20: 21: - notUsed2 { 22: - color: white 23: - }
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-html-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-html-expected.txt new file mode 100644 index 0000000..277fa1c --- /dev/null +++ b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-html-expected.txt
@@ -0,0 +1,69 @@ +Tests the coverage highlight in sources after the recording finishes. + +0: <html> +1: <head> +2: <script src="../../http/tests/inspector/inspector-test.js"></script> +3: <script src="../../http/tests/inspector/debugger-test.js"></script> +4: <script src="coverage-test.js"></script> +5: +6: <script> +7: + function used1() { +8: + window.a += 4; +9: + } +10: +11: - function unused1() { +12: - window.a += 1; +13: - } +14: </script> +15: +16: <script> +17: - function unused2() { +18: - window.a += 0.5; +19: - } +20: +21: + function used2() { +22: + window.a += 4; +23: + } +24: </script> +25: +26: <style> +27: + .used { +28: + color: black; +29: + } +30: +31: - .notUsed { +32: - color: red; +33: - } +34: </style> +35: +36: <style> +37: - #not-used { +38: - color: red; +39: - } +40: +41: + #also-used { +42: + color: black; +43: + } +44: </style> +45: +46: <script> +47: + function performActions() { +48: + used1(); +49: + used2(); +50: + } +51: +52: - async function test() +53: - { +54: - InspectorTest.startCoverage(); +55: - await InspectorTest.evaluateInPagePromise("performActions()"); +56: - await InspectorTest.stopCoverage(); +57: - await InspectorTest.dumpDecorations("gutter-html.html"); +58: - InspectorTest.completeTest(); +59: - } +60: </script> +61: </head> +62: <body onload="runTest()"> +63: <p class="used" id="also-used">Tests the coverage highlight in sources after the recording finishes.</p> +64: </body> +65: </html> +
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-html.html b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-html.html new file mode 100644 index 0000000..3ea6cf06 --- /dev/null +++ b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-html.html
@@ -0,0 +1,66 @@ +<html> +<head> +<script src="../../http/tests/inspector/inspector-test.js"></script> +<script src="../../http/tests/inspector/debugger-test.js"></script> +<script src="coverage-test.js"></script> + +<script> +function used1() { + window.a += 4; +} + +function unused1() { + window.a += 1; +} +</script> + +<script> +function unused2() { + window.a += 0.5; +} + +function used2() { + window.a += 4; +} +</script> + +<style> +.used { + color: black; +} + +.notUsed { + color: red; +} +</style> + +<style> +#not-used { + color: red; +} + +#also-used { + color: black; +} +</style> + +<script> +function performActions() { + used1(); + used2(); +} + +async function test() +{ + InspectorTest.startCoverage(); + await InspectorTest.evaluateInPagePromise("performActions()"); + await InspectorTest.stopCoverage(); + await InspectorTest.dumpDecorations("gutter-html.html"); + InspectorTest.completeTest(); +} +</script> +</head> +<body onload="runTest()"> +<p class="used" id="also-used">Tests the coverage highlight in sources after the recording finishes.</p> +</body> +</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt index 31e646be..69a9ebac 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt
@@ -3,24 +3,24 @@ Tests the coverage highlight in sources after the recording finishes. 0: + function outer(index) { -1: - +1: 2: - function inner1(a) { 3: - return a + 1; 4: - } -5: - +5: 6: + function inner2(a) { 7: + return a + 2; 8: + } -9: - +9: 10: + function inner3(a) { return a + 3; } function inner4(a) { return a + 4; } function inner5(a) { return a + 5; } -11: - +11: 12: + return [inner1, inner2, inner3, inner4, inner5][index]; 13: + } -14: - +14: 15: + function performActions() { 16: + return outer(1)(0) + outer(3)(0); 17: + } function outer2() { 18: - return outer(0)(0); 19: - } -20: - +20:
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt index a347ff25..5a355ff 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt
@@ -6,46 +6,46 @@ 0: + body { 1: + background-color: lightblue; 2: + } -3: - +3: 4: + .class { 5: + color: red; 6: + } -7: - +7: 8: - .class2 { 9: - color:green; 10: - font-style: italic; 11: - } -12: - +12: 13: + #id { 14: + color: blue 15: + } -16: - +16: 17: - notUsed { 18: - color: black 19: - } -20: - +20: 21: - notUsed2 { 22: - color: white 23: - } 0: + function outer(index) { -1: - +1: 2: - function inner1(a) { 3: - return a + 1; 4: - } -5: - +5: 6: + function inner2(a) { 7: + return a + 2; 8: + } -9: - +9: 10: + function inner3(a) { return a + 3; } function inner4(a) { return a + 4; } function inner5(a) { return a + 5; } -11: - +11: 12: + return [inner1, inner2, inner3, inner4, inner5][index]; 13: + } -14: - +14: 15: + function performActions() { 16: + return outer(1)(0) + outer(3)(0); 17: + } function outer2() { 18: - return outer(0)(0); 19: - } -20: - +20:
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt index 2288877..1de39e2 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt
@@ -5,58 +5,58 @@ The below should be formatted 0: - .this-line-needs-to-be-longer-than-five-hundred-symbols { 1: - } -2: - +2: 3: + body { 4: + background-color: lightblue; 5: + } -6: - +6: 7: - .class { 8: - color: red; 9: - } -10: - +10: 11: - .class2 { 12: - color: green; 13: - font-style: italic; 14: - } -15: - +15: 16: + #id { 17: + color: blue 18: + } -19: - +19: 20: - notUsed { 21: - color: black 22: - } -23: - +23: 24: - notUsed2 { 25: - color: white 26: - } -27: - +27: 28: - #this-line-needs-to-be-longer-than-five-hundred-symbols.this-line-needs-to-be-longer-than-five-hundred-symbols { 29: - content: "words don\'t come easy to me, how can I find a way to make a longer line"; 30: - color: lightgoldenrodyellow; 31: - background-color: lightgoldenrodyellow; 32: - border-color: lightgoldenrodyellow; 33: - } -34: - +34: The below should NOT be formatted 0: + body { 1: + background-color: lightblue; 2: + } -3: - +3: 4: - .class { 5: - color: red; 6: - } -7: - +7: 8: - .class2 { color:green;font-style: italic; 9: - } -10: - +10: 11: + #id { color: blue 12: + } -13: - +13: 14: - notUsed {color: black} -15: - +15: 16: - notUsed2 { 17: - color: white 18: - } -19: - +19:
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-expected.txt new file mode 100644 index 0000000..26dcb10c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-expected.txt
@@ -0,0 +1,486 @@ +This is a testharness.js-based test. +Found 473 tests; 303 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +PASS Parsing: <a: foo.com> against <http://example.org/foo/bar> +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c" +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20# e" +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +PASS Parsing: <c:/foo> against <http://example.org/foo/bar> +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/" +FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/" +FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/" +FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/" +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/" +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html" +FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar" +FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar" +FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar" +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q" +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +PASS Parsing: <file:/example.com/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http://user@/www.example.com> against <about:blank> +FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com" +FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com" +FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com" +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/" +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing: <file:...> against <http://www.example.com/test> +PASS Parsing: <file:..> against <http://www.example.com/test> +PASS Parsing: <file:a> against <http://www.example.com/test> +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/" +FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/" +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +FAIL Parsing: <http://zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/" +FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/" +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/" +FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/" +FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/" +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/" +FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/" +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/" +FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/" +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x" +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got "" +FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got "" +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got "" +FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got "" +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got "" +FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got "" +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got "" +FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got "" +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1" +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/" +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/" +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/" +PASS Parsing: <http://0xffffffff> against <http://other.com/> +FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/" +FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/" +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///" +PASS Parsing: <..> against <file:///> +FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///" +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file://d:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file://d:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +PASS Parsing: <file:\\\\?fox> against <about:blank> +PASS Parsing: <file:\\\\#guppy> against <about:blank> +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +PASS Parsing: <file://\/localhost//cat> against <about:blank> +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +PASS Parsing: </////mouse> against <file:///elephant> +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file://host/dir/C%7C" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file://host/dir/C%7C#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file://host/dir/C%7C?" +FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca" +FAIL Parsing: <file://example.net/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://example.net/C:/" +FAIL Parsing: <file://1.2.3.4/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://1.2.3.4/C:/" +FAIL Parsing: <file://[1::8]/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://[1::8]/C:/" +FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/" +FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/" +PASS Parsing: <file:> against <about:blank> +PASS Parsing: <file:?q=v> against <about:blank> +PASS Parsing: <file:#frag> against <about:blank> +PASS Parsing: <http://[1:0::]> against <http://example.net/> +FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/" +FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/" +FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/" +FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/" +FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/" +FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/" +FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/" +FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/" +FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?" +FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#" +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1" +FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1" +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:" +FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:" +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-origin-expected.txt new file mode 100644 index 0000000..3502d0c8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-origin-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 219 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing origin: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing origin: <https://test:@test> against <about:blank> +PASS Parsing origin: <https://:@test> against <about:blank> +FAIL Parsing origin: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Parsing origin: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Parsing origin: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing origin: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing origin: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing origin: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://" +PASS Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing origin: <http://f:/c> against <http://example.org/foo/bar> +FAIL Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing origin: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing origin: <> against <http://example.org/foo/bar> +PASS Parsing origin: < > against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <:> against <http://example.org/foo/bar> +PASS Parsing origin: <:a> against <http://example.org/foo/bar> +PASS Parsing origin: <:/> against <http://example.org/foo/bar> +PASS Parsing origin: <:\> against <http://example.org/foo/bar> +PASS Parsing origin: <:#> against <http://example.org/foo/bar> +PASS Parsing origin: <#> against <http://example.org/foo/bar> +PASS Parsing origin: <#/> against <http://example.org/foo/bar> +PASS Parsing origin: <#\> against <http://example.org/foo/bar> +PASS Parsing origin: <#;?> against <http://example.org/foo/bar> +PASS Parsing origin: <?> against <http://example.org/foo/bar> +PASS Parsing origin: </> against <http://example.org/foo/bar> +PASS Parsing origin: <:23> against <http://example.org/foo/bar> +PASS Parsing origin: </:23> against <http://example.org/foo/bar> +PASS Parsing origin: <::> against <http://example.org/foo/bar> +PASS Parsing origin: <::23> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing origin: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://" +PASS Parsing origin: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing origin: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing origin: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> +PASS Parsing origin: <#β> against <http://example.org/foo/bar> +PASS Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Parsing origin: <http://example.com/././foo> against <about:blank> +PASS Parsing origin: <http://example.com/./.foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo/.> against <about:blank> +PASS Parsing origin: <http://example.com/foo/./> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing origin: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Parsing origin: <http://example.com////../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing origin: <http://example.com/foo> against <about:blank> +PASS Parsing origin: <http://example.com/%20foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo%> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%41%7a> against <about:blank> +PASS Parsing origin: <http://example.com/foo %91> against <about:blank> +FAIL Parsing origin: <http://example.com/foo%00%51> against <about:blank> assert_equals: origin expected "http://example.com" but got "null" +PASS Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing origin: <http://example.com/foo bar> against <about:blank> +PASS Parsing origin: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing origin: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing origin: <http://example.com/你好你好> against <about:blank> +PASS Parsing origin: <http://example.com/‥/foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo//bar> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Parsing origin: <data:test# »> against <about:blank> +PASS Parsing origin: <http://www.google.com> against <about:blank> +PASS Parsing origin: <http://192.0x00A80001> against <about:blank> +PASS Parsing origin: <http://www/foo%2Ehtml> against <about:blank> +PASS Parsing origin: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing origin: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing origin: <http://foo:80/> against <about:blank> +PASS Parsing origin: <http://foo:81/> against <about:blank> +FAIL Parsing origin: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Parsing origin: <https://foo:443/> against <about:blank> +PASS Parsing origin: <https://foo:80/> against <about:blank> +PASS Parsing origin: <ftp://foo:21/> against <about:blank> +PASS Parsing origin: <ftp://foo:80/> against <about:blank> +PASS Parsing origin: <gopher://foo:70/> against <about:blank> +PASS Parsing origin: <gopher://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:80/> against <about:blank> +PASS Parsing origin: <ws://foo:81/> against <about:blank> +PASS Parsing origin: <ws://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:815/> against <about:blank> +PASS Parsing origin: <wss://foo:80/> against <about:blank> +PASS Parsing origin: <wss://foo:81/> against <about:blank> +PASS Parsing origin: <wss://foo:443/> against <about:blank> +PASS Parsing origin: <wss://foo:815/> against <about:blank> +PASS Parsing origin: <http:/example.com/> against <about:blank> +PASS Parsing origin: <ftp:/example.com/> against <about:blank> +PASS Parsing origin: <https:/example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <about:blank> +PASS Parsing origin: <ws:/example.com/> against <about:blank> +PASS Parsing origin: <wss:/example.com/> against <about:blank> +PASS Parsing origin: <data:/example.com/> against <about:blank> +PASS Parsing origin: <javascript:/example.com/> against <about:blank> +FAIL Parsing origin: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <about:blank> +PASS Parsing origin: <ftp:example.com/> against <about:blank> +PASS Parsing origin: <https:example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <about:blank> +PASS Parsing origin: <ws:example.com/> against <about:blank> +PASS Parsing origin: <wss:example.com/> against <about:blank> +PASS Parsing origin: <data:example.com/> against <about:blank> +PASS Parsing origin: <javascript:example.com/> against <about:blank> +FAIL Parsing origin: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/@www.example.com> against <about:blank> +PASS Parsing origin: <http://@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://@pple.com> against <about:blank> +PASS Parsing origin: <http::b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://www.@pple.com> against <about:blank> +PASS Parsing origin: <http://:@www.example.com> against <about:blank> +PASS Parsing origin: </> against <http://www.example.com/test> +PASS Parsing origin: </test.txt> against <http://www.example.com/test> +PASS Parsing origin: <.> against <http://www.example.com/test> +PASS Parsing origin: <..> against <http://www.example.com/test> +PASS Parsing origin: <test.txt> against <http://www.example.com/test> +PASS Parsing origin: <./test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <中/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Parsing origin: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing origin: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing origin: <https://x/�?�#�> against <about:blank> +PASS Parsing origin: <http://Go.com> against <http://other.com/> +FAIL Parsing origin: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Parsing origin: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing origin: <http://./> against <about:blank> +PASS Parsing origin: <http://../> against <about:blank> +PASS Parsing origin: <http://0..0x300/> against <about:blank> +PASS Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Parsing origin: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Parsing origin: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <#x> against <data:,> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <#x> against <about:blank> +FAIL Parsing origin: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing origin: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing origin: </some/path> against <http://user@example.org/smth> +PASS Parsing origin: <> against <http://user:pass@example.org:21/smth> +PASS Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing origin: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <about:/../> against <about:blank> +PASS Parsing origin: <data:/../> against <about:blank> +PASS Parsing origin: <javascript:/../> against <about:blank> +FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <x> against <sc://ñ> +FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing origin: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <http:> against <http://example.org/foo/bar> +FAIL Parsing origin: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing origin: <http://192.168.257> against <http://other.com/> +PASS Parsing origin: <http://192.168.257.com> against <http://other.com/> +PASS Parsing origin: <http://256> against <http://other.com/> +PASS Parsing origin: <http://256.com> against <http://other.com/> +PASS Parsing origin: <http://999999999> against <http://other.com/> +PASS Parsing origin: <http://999999999.com> against <http://other.com/> +PASS Parsing origin: <http://10000000000.com> against <http://other.com/> +PASS Parsing origin: <http://4294967295> against <http://other.com/> +PASS Parsing origin: <http://0xffffffff> against <http://other.com/> +PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing origin: <https://0x.0x.0> against <about:blank> +PASS Parsing origin: <http://[1:0::]> against <http://example.net/> +FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <#x> against <sc://ñ> +PASS Parsing origin: <?x> against <sc://ñ> +FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt new file mode 100644 index 0000000..3502d0c8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 219 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing origin: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing origin: <https://test:@test> against <about:blank> +PASS Parsing origin: <https://:@test> against <about:blank> +FAIL Parsing origin: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Parsing origin: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Parsing origin: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing origin: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing origin: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing origin: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://" +PASS Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing origin: <http://f:/c> against <http://example.org/foo/bar> +FAIL Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing origin: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing origin: <> against <http://example.org/foo/bar> +PASS Parsing origin: < > against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <:> against <http://example.org/foo/bar> +PASS Parsing origin: <:a> against <http://example.org/foo/bar> +PASS Parsing origin: <:/> against <http://example.org/foo/bar> +PASS Parsing origin: <:\> against <http://example.org/foo/bar> +PASS Parsing origin: <:#> against <http://example.org/foo/bar> +PASS Parsing origin: <#> against <http://example.org/foo/bar> +PASS Parsing origin: <#/> against <http://example.org/foo/bar> +PASS Parsing origin: <#\> against <http://example.org/foo/bar> +PASS Parsing origin: <#;?> against <http://example.org/foo/bar> +PASS Parsing origin: <?> against <http://example.org/foo/bar> +PASS Parsing origin: </> against <http://example.org/foo/bar> +PASS Parsing origin: <:23> against <http://example.org/foo/bar> +PASS Parsing origin: </:23> against <http://example.org/foo/bar> +PASS Parsing origin: <::> against <http://example.org/foo/bar> +PASS Parsing origin: <::23> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing origin: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://" +PASS Parsing origin: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing origin: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing origin: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> +PASS Parsing origin: <#β> against <http://example.org/foo/bar> +PASS Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Parsing origin: <http://example.com/././foo> against <about:blank> +PASS Parsing origin: <http://example.com/./.foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo/.> against <about:blank> +PASS Parsing origin: <http://example.com/foo/./> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing origin: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Parsing origin: <http://example.com////../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing origin: <http://example.com/foo> against <about:blank> +PASS Parsing origin: <http://example.com/%20foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo%> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%41%7a> against <about:blank> +PASS Parsing origin: <http://example.com/foo %91> against <about:blank> +FAIL Parsing origin: <http://example.com/foo%00%51> against <about:blank> assert_equals: origin expected "http://example.com" but got "null" +PASS Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing origin: <http://example.com/foo bar> against <about:blank> +PASS Parsing origin: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing origin: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing origin: <http://example.com/你好你好> against <about:blank> +PASS Parsing origin: <http://example.com/‥/foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo//bar> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Parsing origin: <data:test# »> against <about:blank> +PASS Parsing origin: <http://www.google.com> against <about:blank> +PASS Parsing origin: <http://192.0x00A80001> against <about:blank> +PASS Parsing origin: <http://www/foo%2Ehtml> against <about:blank> +PASS Parsing origin: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing origin: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing origin: <http://foo:80/> against <about:blank> +PASS Parsing origin: <http://foo:81/> against <about:blank> +FAIL Parsing origin: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Parsing origin: <https://foo:443/> against <about:blank> +PASS Parsing origin: <https://foo:80/> against <about:blank> +PASS Parsing origin: <ftp://foo:21/> against <about:blank> +PASS Parsing origin: <ftp://foo:80/> against <about:blank> +PASS Parsing origin: <gopher://foo:70/> against <about:blank> +PASS Parsing origin: <gopher://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:80/> against <about:blank> +PASS Parsing origin: <ws://foo:81/> against <about:blank> +PASS Parsing origin: <ws://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:815/> against <about:blank> +PASS Parsing origin: <wss://foo:80/> against <about:blank> +PASS Parsing origin: <wss://foo:81/> against <about:blank> +PASS Parsing origin: <wss://foo:443/> against <about:blank> +PASS Parsing origin: <wss://foo:815/> against <about:blank> +PASS Parsing origin: <http:/example.com/> against <about:blank> +PASS Parsing origin: <ftp:/example.com/> against <about:blank> +PASS Parsing origin: <https:/example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <about:blank> +PASS Parsing origin: <ws:/example.com/> against <about:blank> +PASS Parsing origin: <wss:/example.com/> against <about:blank> +PASS Parsing origin: <data:/example.com/> against <about:blank> +PASS Parsing origin: <javascript:/example.com/> against <about:blank> +FAIL Parsing origin: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <about:blank> +PASS Parsing origin: <ftp:example.com/> against <about:blank> +PASS Parsing origin: <https:example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <about:blank> +PASS Parsing origin: <ws:example.com/> against <about:blank> +PASS Parsing origin: <wss:example.com/> against <about:blank> +PASS Parsing origin: <data:example.com/> against <about:blank> +PASS Parsing origin: <javascript:example.com/> against <about:blank> +FAIL Parsing origin: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/@www.example.com> against <about:blank> +PASS Parsing origin: <http://@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://@pple.com> against <about:blank> +PASS Parsing origin: <http::b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://www.@pple.com> against <about:blank> +PASS Parsing origin: <http://:@www.example.com> against <about:blank> +PASS Parsing origin: </> against <http://www.example.com/test> +PASS Parsing origin: </test.txt> against <http://www.example.com/test> +PASS Parsing origin: <.> against <http://www.example.com/test> +PASS Parsing origin: <..> against <http://www.example.com/test> +PASS Parsing origin: <test.txt> against <http://www.example.com/test> +PASS Parsing origin: <./test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <中/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Parsing origin: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing origin: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing origin: <https://x/�?�#�> against <about:blank> +PASS Parsing origin: <http://Go.com> against <http://other.com/> +FAIL Parsing origin: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Parsing origin: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing origin: <http://./> against <about:blank> +PASS Parsing origin: <http://../> against <about:blank> +PASS Parsing origin: <http://0..0x300/> against <about:blank> +PASS Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Parsing origin: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Parsing origin: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <#x> against <data:,> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <#x> against <about:blank> +FAIL Parsing origin: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing origin: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing origin: </some/path> against <http://user@example.org/smth> +PASS Parsing origin: <> against <http://user:pass@example.org:21/smth> +PASS Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing origin: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <about:/../> against <about:blank> +PASS Parsing origin: <data:/../> against <about:blank> +PASS Parsing origin: <javascript:/../> against <about:blank> +FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <x> against <sc://ñ> +FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing origin: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <http:> against <http://example.org/foo/bar> +FAIL Parsing origin: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing origin: <http://192.168.257> against <http://other.com/> +PASS Parsing origin: <http://192.168.257.com> against <http://other.com/> +PASS Parsing origin: <http://256> against <http://other.com/> +PASS Parsing origin: <http://256.com> against <http://other.com/> +PASS Parsing origin: <http://999999999> against <http://other.com/> +PASS Parsing origin: <http://999999999.com> against <http://other.com/> +PASS Parsing origin: <http://10000000000.com> against <http://other.com/> +PASS Parsing origin: <http://4294967295> against <http://other.com/> +PASS Parsing origin: <http://0xffffffff> against <http://other.com/> +PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing origin: <https://0x.0x.0> against <about:blank> +PASS Parsing origin: <http://[1:0::]> against <http://example.net/> +FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <#x> against <sc://ñ> +PASS Parsing origin: <?x> against <sc://ñ> +FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-xhtml-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-xhtml-expected.txt new file mode 100644 index 0000000..26dcb10c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/a-element-xhtml-expected.txt
@@ -0,0 +1,486 @@ +This is a testharness.js-based test. +Found 473 tests; 303 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +PASS Parsing: <a: foo.com> against <http://example.org/foo/bar> +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c" +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20# e" +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +PASS Parsing: <c:/foo> against <http://example.org/foo/bar> +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/" +FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/" +FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/" +FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/" +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/" +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html" +FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar" +FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar" +FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar" +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q" +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +PASS Parsing: <file:/example.com/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http://user@/www.example.com> against <about:blank> +FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com" +FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com" +FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com" +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/" +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing: <file:...> against <http://www.example.com/test> +PASS Parsing: <file:..> against <http://www.example.com/test> +PASS Parsing: <file:a> against <http://www.example.com/test> +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/" +FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/" +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +FAIL Parsing: <http://zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/" +FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/" +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/" +FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/" +FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/" +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/" +FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/" +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/" +FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/" +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x" +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got "" +FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got "" +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got "" +FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got "" +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got "" +FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got "" +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got "" +FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got "" +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1" +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/" +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/" +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/" +PASS Parsing: <http://0xffffffff> against <http://other.com/> +FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/" +FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/" +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///" +PASS Parsing: <..> against <file:///> +FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///" +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file://d:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file://d:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +PASS Parsing: <file:\\\\?fox> against <about:blank> +PASS Parsing: <file:\\\\#guppy> against <about:blank> +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +PASS Parsing: <file://\/localhost//cat> against <about:blank> +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +PASS Parsing: </////mouse> against <file:///elephant> +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file://host/dir/C%7C" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file://host/dir/C%7C#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file://host/dir/C%7C?" +FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca" +FAIL Parsing: <file://example.net/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://example.net/C:/" +FAIL Parsing: <file://1.2.3.4/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://1.2.3.4/C:/" +FAIL Parsing: <file://[1::8]/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://[1::8]/C:/" +FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/" +FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/" +PASS Parsing: <file:> against <about:blank> +PASS Parsing: <file:?q=v> against <about:blank> +PASS Parsing: <file:#frag> against <about:blank> +PASS Parsing: <http://[1:0::]> against <http://example.net/> +FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/" +FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/" +FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/" +FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/" +FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/" +FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/" +FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/" +FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/" +FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?" +FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#" +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1" +FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1" +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:" +FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:" +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/failure-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/failure-expected.txt new file mode 100644 index 0000000..cac2f08 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/failure-expected.txt
@@ -0,0 +1,235 @@ +This is a testharness.js-based test. +Found 231 tests; 92 PASS, 139 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +FAIL URL's href: file://example:1/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example:1/ should throw +PASS sendBeacon(): file://example:1/ should throw +FAIL Location's href: file://example:1/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:1/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example:1/ should throw +FAIL URL's href: file://example:test/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example:test/ should throw +PASS sendBeacon(): file://example:test/ should throw +FAIL Location's href: file://example:test/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:test/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example:test/ should throw +FAIL URL's href: file://example%/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example%/ should throw +PASS sendBeacon(): file://example%/ should throw +FAIL Location's href: file://example%/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example%/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example%/ should throw +FAIL URL's href: file://[example]/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://[example]/ should throw +PASS sendBeacon(): file://[example]/ should throw +FAIL Location's href: file://[example]/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://[example]/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://[example]/ should throw +FAIL URL's href: http://user:pass@/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://user:pass@/ should throw +PASS sendBeacon(): http://user:pass@/ should throw +FAIL Location's href: http://user:pass@/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user:pass@/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://user:pass@/ should throw +FAIL URL's href: http://foo:-80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://foo:-80/ should throw +PASS sendBeacon(): http://foo:-80/ should throw +FAIL Location's href: http://foo:-80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo:-80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://foo:-80/ should throw +FAIL URL's href: http:/:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/:@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://user@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://user@/www.example.com should throw +PASS sendBeacon(): http://user@/www.example.com should throw +FAIL Location's href: http://user@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://user@/www.example.com should throw +FAIL URL's href: http:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://@/www.example.com should throw +PASS sendBeacon(): http://@/www.example.com should throw +FAIL Location's href: http://@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://@/www.example.com should throw +FAIL URL's href: https:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https:@/www.example.com should throw +PASS sendBeacon(): https:@/www.example.com should throw +FAIL Location's href: https:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https:@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https:@/www.example.com should throw +FAIL URL's href: http:a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:a:b@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://a:b@/www.example.com should throw +PASS sendBeacon(): http://a:b@/www.example.com should throw +FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a:b@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://a:b@/www.example.com should throw +FAIL URL's href: http::@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http::@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http::@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http::@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http::@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:@:www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/@:www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://@:www.example.com should throw +PASS sendBeacon(): http://@:www.example.com should throw +FAIL Location's href: http://@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@:www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://@:www.example.com should throw +FAIL URL's href: https://� should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://� should throw +PASS sendBeacon(): https://� should throw +FAIL Location's href: https://� should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://�' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://� should throw +FAIL URL's href: https://%EF%BF%BD should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://%EF%BF%BD should throw +PASS sendBeacon(): https://%EF%BF%BD should throw +FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://%EF%BF%BD' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://%EF%BF%BD should throw +FAIL URL's href: https://x x:12 should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: https://x x:12 should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): https://x x:12 should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: https://x x:12 should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): https://x x:12 should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://[www.google.com]/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://[www.google.com]/ should throw +PASS sendBeacon(): http://[www.google.com]/ should throw +FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[www.google.com]/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://[www.google.com]/ should throw +FAIL URL's href: sc://\0/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://\0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://\0/ should throw +FAIL Location's href: sc://\0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://\0/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc:// / should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc:// / should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc:// / should throw +FAIL Location's href: sc:// / should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc:// / should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://@/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://@/ should throw +FAIL Location's href: sc://@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://@/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://te@s:t@/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://te@s:t@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://te@s:t@/ should throw +FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://te@s:t@/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://:/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://:/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://:/ should throw +FAIL Location's href: sc://:/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://:/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://:12/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://:12/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://:12/ should throw +FAIL Location's href: sc://:12/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://:12/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://[/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://[/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://[/ should throw +FAIL Location's href: sc://[/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://[/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://\/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://\/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://\/ should throw +FAIL Location's href: sc://\/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://\/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://]/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://]/ should throw +FAIL Location's href: sc://]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://]/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: ftp://example.com%80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: ftp://example.com%80/ should throw +PASS sendBeacon(): ftp://example.com%80/ should throw +FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): ftp://example.com%80/ should throw +FAIL URL's href: ftp://example.com%A0/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: ftp://example.com%A0/ should throw +PASS sendBeacon(): ftp://example.com%A0/ should throw +FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%A0/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): ftp://example.com%A0/ should throw +FAIL URL's href: https://example.com%80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://example.com%80/ should throw +PASS sendBeacon(): https://example.com%80/ should throw +FAIL Location's href: https://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://example.com%80/ should throw +FAIL URL's href: https://example.com%A0/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://example.com%A0/ should throw +PASS sendBeacon(): https://example.com%A0/ should throw +FAIL Location's href: https://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%A0/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://example.com%A0/ should throw +FAIL URL's href: https://[0::0::0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0::0::0] should throw +PASS sendBeacon(): https://[0::0::0] should throw +FAIL Location's href: https://[0::0::0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0::0::0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0::0::0] should throw +FAIL URL's href: https://[0:.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:.0] should throw +PASS sendBeacon(): https://[0:.0] should throw +FAIL Location's href: https://[0:.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:.0] should throw +FAIL URL's href: https://[0:0:] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:0:] should throw +PASS sendBeacon(): https://[0:0:] should throw +FAIL Location's href: https://[0:0:] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:0:]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:0:] should throw +FAIL URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1:2:3:4:5:6:7.0.0.0.1]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +FAIL URL's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.00.0.0.0] should throw +PASS sendBeacon(): https://[0:1.00.0.0.0] should throw +FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.00.0.0.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.00.0.0.0] should throw +FAIL URL's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.290.0.0.0] should throw +PASS sendBeacon(): https://[0:1.290.0.0.0] should throw +FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.290.0.0.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.290.0.0.0] should throw +FAIL URL's href: https://[0:1.23.23] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.23.23] should throw +PASS sendBeacon(): https://[0:1.23.23] should throw +FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.23.23]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.23.23] should throw +FAIL URL's href: http://? should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://? should throw +PASS sendBeacon(): http://? should throw +FAIL Location's href: http://? should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://?' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://? should throw +FAIL URL's href: http://# should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://# should throw +PASS sendBeacon(): http://# should throw +FAIL Location's href: http://# should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://#' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://# should throw +FAIL URL's href: non-special://[:80/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: non-special://[:80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): non-special://[:80/ should throw +FAIL Location's href: non-special://[:80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): non-special://[:80/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-constructor-expected.txt new file mode 100644 index 0000000..d28b52a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-constructor-expected.txt
@@ -0,0 +1,532 @@ +This is a testharness.js-based test. +Found 477 tests; 367 PASS, 110 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS URL.searchParams getter +PASS URL.searchParams updating, clearing +PASS URL.searchParams setter, invalid values +PASS URL.searchParams and URL.search setters, update propagation +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +PASS Parsing: <a: foo.com> against <http://example.org/foo/bar> +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f: /c> against <http://example.org/foo/bar> +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +PASS Parsing: <c:/foo> against <http://example.org/foo/bar> +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +PASS Parsing: <file://example%/> against <about:blank> +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html" +FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar" +FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar" +FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar" +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +PASS Parsing: <file:/example.com/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +PASS Parsing: <http:/:@/www.example.com> against <about:blank> +PASS Parsing: <http://user@/www.example.com> against <about:blank> +PASS Parsing: <http:@/www.example.com> against <about:blank> +PASS Parsing: <http:/@/www.example.com> against <about:blank> +PASS Parsing: <http://@/www.example.com> against <about:blank> +PASS Parsing: <https:@/www.example.com> against <about:blank> +PASS Parsing: <http:a:b@/www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@/www.example.com> against <about:blank> +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +PASS Parsing: <http::@/www.example.com> against <about:blank> +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +PASS Parsing: <http:@:www.example.com> against <about:blank> +PASS Parsing: <http:/@:www.example.com> against <about:blank> +PASS Parsing: <http://@:www.example.com> against <about:blank> +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing: <file:...> against <http://www.example.com/test> +PASS Parsing: <file:..> against <http://www.example.com/test> +PASS Parsing: <file:a> against <http://www.example.com/test> +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://[]> against <http://other.com/> +PASS Parsing: <http://[:]> against <http://other.com/> +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing: <http://zyx.com> against <http://other.com/> +PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> +PASS Parsing: <https://�> against <about:blank> +PASS Parsing: <https://%EF%BF%BD> against <about:blank> +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://%00.com> against <http://other.com/> +PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +PASS Parsing: <http://%zz%66%a.com> against <http://other.com/> +PASS Parsing: <http://%25> against <http://other.com/> +PASS Parsing: <http://hello%00> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing: <http://192.168.0.257> against <http://other.com/> +PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <https://x x:12> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +PASS Parsing: <http://[google.com]> against <http://other.com/> +PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/> +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +PASS Parsing: <#x> against <data:,> +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +PASS Parsing: <i> against <sc:sd> +PASS Parsing: <i> against <sc:sd/sd> +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +PASS Parsing: <../i> against <sc:sd> +PASS Parsing: <../i> against <sc:sd/sd> +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +PASS Parsing: </i> against <sc:sd> +PASS Parsing: </i> against <sc:sd/sd> +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +PASS Parsing: <?i> against <sc:sd> +PASS Parsing: <?i> against <sc:sd/sd> +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc:// /> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://:/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://:12/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://[/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://\/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://]/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +PASS Parsing: <ftp://example.com%80/> against <about:blank> +PASS Parsing: <ftp://example.com%A0/> against <about:blank> +PASS Parsing: <https://example.com%80/> against <about:blank> +PASS Parsing: <https://example.com%A0/> against <about:blank> +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +PASS Parsing: <http://10000000000> against <http://other.com/> +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +PASS Parsing: <http://4294967296> against <http://other.com/> +PASS Parsing: <http://0xffffffff> against <http://other.com/> +PASS Parsing: <http://0xffffffff1> against <http://other.com/> +PASS Parsing: <http://256.256.256.256> against <http://other.com/> +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///" +PASS Parsing: <..> against <file:///> +FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///" +FAIL Parsing: <//d:> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL +FAIL Parsing: <//d:/..> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +PASS Parsing: <file:\\\\?fox> against <about:blank> +PASS Parsing: <file:\\\\#guppy> against <about:blank> +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +PASS Parsing: <file://\/localhost//cat> against <about:blank> +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +PASS Parsing: </////mouse> against <file:///elephant> +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file://host/dir/C%7C" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file://host/dir/C%7C#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file://host/dir/C%7C?" +FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca" +FAIL Parsing: <file://example.net/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://example.net/C:/" +FAIL Parsing: <file://1.2.3.4/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://1.2.3.4/C:/" +FAIL Parsing: <file://[1::8]/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://[1::8]/C:/" +FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/" +FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/" +PASS Parsing: <file:> against <about:blank> +PASS Parsing: <file:?q=v> against <about:blank> +PASS Parsing: <file:#frag> against <about:blank> +PASS Parsing: <http://[1:0::]> against <http://example.net/> +PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> +PASS Parsing: <https://[0::0::0]> against <about:blank> +PASS Parsing: <https://[0:.0]> against <about:blank> +PASS Parsing: <https://[0:0:]> against <about:blank> +PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> +PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank> +PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank> +PASS Parsing: <https://[0:1.23.23]> against <about:blank> +PASS Parsing: <http://?> against <about:blank> +PASS Parsing: <http://#> against <about:blank> +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL +FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-origin-expected.txt new file mode 100644 index 0000000..863219f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-origin-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 217 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Origin parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Origin parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Origin parsing: <https://test:@test> against <about:blank> +PASS Origin parsing: <https://:@test> against <about:blank> +FAIL Origin parsing: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Origin parsing: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Origin parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Origin parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Origin parsing: < foo.com > against <http://example.org/foo/bar> +FAIL Origin parsing: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://" +PASS Origin parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Origin parsing: <http://f:/c> against <http://example.org/foo/bar> +FAIL Origin parsing: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Origin parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Origin parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Origin parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Origin parsing: <> against <http://example.org/foo/bar> +PASS Origin parsing: < > against <http://example.org/foo/bar> +PASS Origin parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Origin parsing: <:> against <http://example.org/foo/bar> +PASS Origin parsing: <:a> against <http://example.org/foo/bar> +PASS Origin parsing: <:/> against <http://example.org/foo/bar> +PASS Origin parsing: <:\> against <http://example.org/foo/bar> +PASS Origin parsing: <:#> against <http://example.org/foo/bar> +PASS Origin parsing: <#> against <http://example.org/foo/bar> +PASS Origin parsing: <#/> against <http://example.org/foo/bar> +PASS Origin parsing: <#\> against <http://example.org/foo/bar> +PASS Origin parsing: <#;?> against <http://example.org/foo/bar> +PASS Origin parsing: <?> against <http://example.org/foo/bar> +PASS Origin parsing: </> against <http://example.org/foo/bar> +PASS Origin parsing: <:23> against <http://example.org/foo/bar> +PASS Origin parsing: </:23> against <http://example.org/foo/bar> +PASS Origin parsing: <::> against <http://example.org/foo/bar> +PASS Origin parsing: <::23> against <http://example.org/foo/bar> +FAIL Origin parsing: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Origin parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Origin parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Origin parsing: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://" +PASS Origin parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Origin parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Origin parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Origin parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <https:example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Origin parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Origin parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Origin parsing: </a/%2f/c> against <http://example.org/foo/bar> +PASS Origin parsing: <#β> against <http://example.org/foo/bar> +PASS Origin parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Origin parsing: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Origin parsing: <http://example.com/././foo> against <about:blank> +PASS Origin parsing: <http://example.com/./.foo> against <about:blank> +PASS Origin parsing: <http://example.com/foo/.> against <about:blank> +PASS Origin parsing: <http://example.com/foo/./> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Origin parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Origin parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e%2> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Origin parsing: <http://example.com////../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Origin parsing: <http://example.com/foo> against <about:blank> +PASS Origin parsing: <http://example.com/%20foo> against <about:blank> +PASS Origin parsing: <http://example.com/foo%> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2©zbar> against <about:blank> +PASS Origin parsing: <http://example.com/foo%41%7a> against <about:blank> +PASS Origin parsing: <http://example.com/foo %91> against <about:blank> +FAIL Origin parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL +PASS Origin parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Origin parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Origin parsing: <http://example.com/foo bar> against <about:blank> +PASS Origin parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Origin parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Origin parsing: <http://example.com/你好你好> against <about:blank> +PASS Origin parsing: <http://example.com/‥/foo> against <about:blank> +PASS Origin parsing: <http://example.com//foo> against <about:blank> +PASS Origin parsing: <http://example.com//foo//bar> against <about:blank> +PASS Origin parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Origin parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Origin parsing: <data:test# »> against <about:blank> +PASS Origin parsing: <http://www.google.com> against <about:blank> +PASS Origin parsing: <http://192.0x00A80001> against <about:blank> +PASS Origin parsing: <http://www/foo%2Ehtml> against <about:blank> +PASS Origin parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Origin parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Origin parsing: <http://foo:80/> against <about:blank> +PASS Origin parsing: <http://foo:81/> against <about:blank> +FAIL Origin parsing: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Origin parsing: <https://foo:443/> against <about:blank> +PASS Origin parsing: <https://foo:80/> against <about:blank> +PASS Origin parsing: <ftp://foo:21/> against <about:blank> +PASS Origin parsing: <ftp://foo:80/> against <about:blank> +PASS Origin parsing: <gopher://foo:70/> against <about:blank> +PASS Origin parsing: <gopher://foo:443/> against <about:blank> +PASS Origin parsing: <ws://foo:80/> against <about:blank> +PASS Origin parsing: <ws://foo:81/> against <about:blank> +PASS Origin parsing: <ws://foo:443/> against <about:blank> +PASS Origin parsing: <ws://foo:815/> against <about:blank> +PASS Origin parsing: <wss://foo:80/> against <about:blank> +PASS Origin parsing: <wss://foo:81/> against <about:blank> +PASS Origin parsing: <wss://foo:443/> against <about:blank> +PASS Origin parsing: <wss://foo:815/> against <about:blank> +PASS Origin parsing: <http:/example.com/> against <about:blank> +PASS Origin parsing: <ftp:/example.com/> against <about:blank> +PASS Origin parsing: <https:/example.com/> against <about:blank> +FAIL Origin parsing: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:/example.com/> against <about:blank> +PASS Origin parsing: <ws:/example.com/> against <about:blank> +PASS Origin parsing: <wss:/example.com/> against <about:blank> +PASS Origin parsing: <data:/example.com/> against <about:blank> +PASS Origin parsing: <javascript:/example.com/> against <about:blank> +FAIL Origin parsing: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:example.com/> against <about:blank> +PASS Origin parsing: <ftp:example.com/> against <about:blank> +PASS Origin parsing: <https:example.com/> against <about:blank> +FAIL Origin parsing: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:example.com/> against <about:blank> +PASS Origin parsing: <ws:example.com/> against <about:blank> +PASS Origin parsing: <wss:example.com/> against <about:blank> +PASS Origin parsing: <data:example.com/> against <about:blank> +PASS Origin parsing: <javascript:example.com/> against <about:blank> +FAIL Origin parsing: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:@www.example.com> against <about:blank> +PASS Origin parsing: <http:/@www.example.com> against <about:blank> +PASS Origin parsing: <http://@www.example.com> against <about:blank> +PASS Origin parsing: <http:a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://@pple.com> against <about:blank> +PASS Origin parsing: <http::b@www.example.com> against <about:blank> +PASS Origin parsing: <http:/:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://:b@www.example.com> against <about:blank> +PASS Origin parsing: <http:a:@www.example.com> against <about:blank> +PASS Origin parsing: <http:/a:@www.example.com> against <about:blank> +PASS Origin parsing: <http://a:@www.example.com> against <about:blank> +PASS Origin parsing: <http://www.@pple.com> against <about:blank> +PASS Origin parsing: <http://:@www.example.com> against <about:blank> +PASS Origin parsing: </> against <http://www.example.com/test> +PASS Origin parsing: </test.txt> against <http://www.example.com/test> +PASS Origin parsing: <.> against <http://www.example.com/test> +PASS Origin parsing: <..> against <http://www.example.com/test> +PASS Origin parsing: <test.txt> against <http://www.example.com/test> +PASS Origin parsing: <./test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../../test.txt> against <http://www.example.com/test> +PASS Origin parsing: <中/test.txt> against <http://www.example.com/test> +PASS Origin parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Origin parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Origin parsing: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Origin parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Origin parsing: <http://www.foo。bar.com> against <http://other.com/> +PASS Origin parsing: <https://x/�?�#�> against <about:blank> +PASS Origin parsing: <http://Go.com> against <http://other.com/> +FAIL Origin parsing: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Origin parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Origin parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Origin parsing: <http://./> against <about:blank> +PASS Origin parsing: <http://../> against <about:blank> +PASS Origin parsing: <http://0..0x300/> against <about:blank> +PASS Origin parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Origin parsing: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Origin parsing: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <#x> against <data:,> +PASS Origin parsing: <#x> against <about:blank> +FAIL Origin parsing: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Origin parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Origin parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Origin parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Origin parsing: </some/path> against <http://user@example.org/smth> +PASS Origin parsing: <> against <http://user:pass@example.org:21/smth> +PASS Origin parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Origin parsing: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Origin parsing: <about:/../> against <about:blank> +PASS Origin parsing: <data:/../> against <about:blank> +PASS Origin parsing: <javascript:/../> against <about:blank> +FAIL Origin parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Origin parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Origin parsing: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Origin parsing: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Origin parsing: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Origin parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Origin parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Origin parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Origin parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Origin parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Origin parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Origin parsing: <http:> against <http://example.org/foo/bar> +FAIL Origin parsing: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Origin parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Origin parsing: <http://192.168.257> against <http://other.com/> +PASS Origin parsing: <http://192.168.257.com> against <http://other.com/> +PASS Origin parsing: <http://256> against <http://other.com/> +PASS Origin parsing: <http://256.com> against <http://other.com/> +PASS Origin parsing: <http://999999999> against <http://other.com/> +PASS Origin parsing: <http://999999999.com> against <http://other.com/> +PASS Origin parsing: <http://10000000000.com> against <http://other.com/> +PASS Origin parsing: <http://4294967295> against <http://other.com/> +PASS Origin parsing: <http://0xffffffff> against <http://other.com/> +PASS Origin parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Origin parsing: <https://0x.0x.0> against <about:blank> +PASS Origin parsing: <http://[1:0::]> against <http://example.net/> +FAIL Origin parsing: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Origin parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Origin parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Origin parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Origin parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Origin parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Origin parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Origin parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Origin parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Origin parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Origin parsing: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Origin parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-setters-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-setters-expected.txt new file mode 100644 index 0000000..96b43a3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/url/url-setters-expected.txt
@@ -0,0 +1,596 @@ +This is a testharness.js-based test. +Found 571 tests; 272 PASS, 299 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. +PASS <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. +PASS <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. +PASS URL: Setting <a://example.net>.protocol = 'b' +PASS <a>: Setting <a://example.net>.protocol = 'b' +PASS <area>: Setting <a://example.net>.protocol = 'b' +PASS URL: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS <a>: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS <area>: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased +PASS <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased +PASS <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased +PASS URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected +PASS <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected +PASS <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected +PASS URL: Setting <a://example.net>.protocol = '0b' No leading digit +PASS <a>: Setting <a://example.net>.protocol = '0b' No leading digit +PASS <area>: Setting <a://example.net>.protocol = '0b' No leading digit +PASS URL: Setting <a://example.net>.protocol = '+b' No leading punctuation +PASS <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation +PASS <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation +PASS URL: Setting <a://example.net>.protocol = 'bC0+-.' +PASS <a>: Setting <a://example.net>.protocol = 'bC0+-.' +PASS <area>: Setting <a://example.net>.protocol = 'bC0+-.' +PASS URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable +PASS <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable +PASS <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable +PASS URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected +PASS <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected +PASS <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected +FAIL URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL <a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL <area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL URL: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL <a>: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL <area>: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL URL: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file://x:x%40example.net:1234/" +FAIL <a>: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file://x:x%40example.net:1234/" +FAIL <area>: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file://x:x%40example.net:1234/" +FAIL URL: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL <a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL <area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL URL: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL <a>: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL <area>: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL URL: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL <a>: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL <area>: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/" +FAIL <a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/" +FAIL <area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/" +FAIL URL: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "s://hi/path" +FAIL <a>: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "s://hi/path" +FAIL <area>: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "s://hi/path" +FAIL URL: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/" +FAIL <a>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/" +FAIL <area>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/" +FAIL URL: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL <a>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL <area>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL URL: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL <a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL <area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL URL: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL <a>: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL <area>: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL URL: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +FAIL <a>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +FAIL <area>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +PASS URL: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS <a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS <area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS URL: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS <a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS <area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS URL: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS <a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS <area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS URL: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS <a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS <area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS URL: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS <a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS <area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS URL: Setting <javascript:alert(1)>.username = 'wario' +PASS <a>: Setting <javascript:alert(1)>.username = 'wario' +PASS <area>: Setting <javascript:alert(1)>.username = 'wario' +PASS URL: Setting <http://example.net>.username = 'me' +PASS <a>: Setting <http://example.net>.username = 'me' +PASS <area>: Setting <http://example.net>.username = 'me' +PASS URL: Setting <http://:secret@example.net>.username = 'me' +PASS <a>: Setting <http://:secret@example.net>.username = 'me' +PASS <area>: Setting <http://:secret@example.net>.username = 'me' +PASS URL: Setting <http://me@example.net>.username = '' +PASS <a>: Setting <http://me@example.net>.username = '' +PASS <area>: Setting <http://me@example.net>.username = '' +PASS URL: Setting <http://me:secret@example.net>.username = '' +PASS <a>: Setting <http://me:secret@example.net>.username = '' +PASS <area>: Setting <http://me:secret@example.net>.username = '' +FAIL URL: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <a>: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <area>: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +PASS URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS URL: Setting <sc:///>.username = 'x' +PASS <a>: Setting <sc:///>.username = 'x' +PASS <area>: Setting <sc:///>.username = 'x' +FAIL URL: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +PASS URL: Setting <file://test/>.username = 'test' +PASS <a>: Setting <file://test/>.username = 'test' +PASS <area>: Setting <file://test/>.username = 'test' +PASS URL: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS <a>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS <area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS URL: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS <a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS <area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS URL: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS <a>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS <area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net>.password = 'secret' +PASS <a>: Setting <http://example.net>.password = 'secret' +PASS <area>: Setting <http://example.net>.password = 'secret' +PASS URL: Setting <http://me@example.net>.password = 'secret' +PASS <a>: Setting <http://me@example.net>.password = 'secret' +PASS <area>: Setting <http://me@example.net>.password = 'secret' +PASS URL: Setting <http://:secret@example.net>.password = '' +PASS <a>: Setting <http://:secret@example.net>.password = '' +PASS <area>: Setting <http://:secret@example.net>.password = '' +PASS URL: Setting <http://me:secret@example.net>.password = '' +PASS <a>: Setting <http://me:secret@example.net>.password = '' +PASS <area>: Setting <http://me:secret@example.net>.password = '' +FAIL URL: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <a>: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <area>: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +PASS URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS URL: Setting <sc:///>.password = 'x' +PASS <a>: Setting <sc:///>.password = 'x' +PASS <area>: Setting <sc:///>.password = 'x' +FAIL URL: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +PASS URL: Setting <file://test/>.password = 'test' +PASS <a>: Setting <file://test/>.password = 'test' +PASS <area>: Setting <file://test/>.password = 'test' +FAIL URL: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL URL: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +FAIL <a>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +FAIL <area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +PASS URL: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS <a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS <area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS URL: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS <a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS <area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net>.host = 'example.com:8080' +PASS <a>: Setting <http://example.net>.host = 'example.com:8080' +PASS <area>: Setting <http://example.net>.host = 'example.com:8080' +PASS URL: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +PASS <a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +PASS <area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +FAIL URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +FAIL <a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +FAIL <area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +PASS URL: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +PASS <a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +PASS <area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +FAIL URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +PASS URL: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +PASS <a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +PASS <area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +FAIL URL: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +PASS URL: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS <a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS <area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS URL: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS <a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS <area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS URL: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +PASS <a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +PASS <area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +FAIL URL: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +PASS <a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +PASS <area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +FAIL URL: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL URL: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL <a>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL <area>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL URL: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL URL: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <a>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <area>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL URL: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL <a>: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL <area>: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL URL: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL <a>: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL <area>: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL URL: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +PASS URL: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS <a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS <area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS URL: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS <a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS <area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net:8080>.hostname = 'example.com' +PASS <a>: Setting <http://example.net:8080>.hostname = 'example.com' +PASS <area>: Setting <http://example.net:8080>.hostname = 'example.com' +PASS URL: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +PASS <a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +PASS <area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +FAIL URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +PASS URL: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS <a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS <area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS URL: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +PASS <a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +PASS <area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL URL: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL <a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL <area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL URL: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL <a>: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL <area>: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL URL: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL URL: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <a>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <area>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL URL: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL <a>: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL <area>: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL URL: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +FAIL <a>: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +FAIL <area>: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +PASS URL: Setting <http://example.net>.port = '8080' +PASS <a>: Setting <http://example.net>.port = '8080' +PASS <area>: Setting <http://example.net>.port = '8080' +FAIL URL: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +FAIL <a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +FAIL <area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +PASS URL: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS <a>: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS <area>: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS URL: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS <a>: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS <area>: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS URL: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS <a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS <area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +FAIL URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +FAIL <a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +FAIL <area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +PASS URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +PASS <a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +PASS <area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +FAIL URL: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL <a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL <area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +FAIL <a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +FAIL <area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +PASS URL: Setting <file://test/>.port = '12' +PASS <a>: Setting <file://test/>.port = '12' +PASS <area>: Setting <file://test/>.port = '12' +FAIL URL: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +PASS URL: Setting <non-base:value>.port = '12' +PASS <a>: Setting <non-base:value>.port = '12' +PASS <area>: Setting <non-base:value>.port = '12' +PASS URL: Setting <sc:///>.port = '12' +PASS <a>: Setting <sc:///>.port = '12' +PASS <area>: Setting <sc:///>.port = '12' +FAIL URL: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL URL: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +PASS URL: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +PASS <a>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +PASS <area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +FAIL URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +FAIL <a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +FAIL <area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +PASS URL: Setting <https://example.net#nav>.pathname = 'home' +PASS <a>: Setting <https://example.net#nav>.pathname = 'home' +PASS <area>: Setting <https://example.net#nav>.pathname = 'home' +PASS URL: Setting <https://example.net#nav>.pathname = '../home' +PASS <a>: Setting <https://example.net#nav>.pathname = '../home' +PASS <area>: Setting <https://example.net#nav>.pathname = '../home' +PASS URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +PASS <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +PASS <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +FAIL URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL URL: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/" +FAIL <a>: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/" +FAIL <area>: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/" +FAIL URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +FAIL <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +FAIL <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +PASS URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS <a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS <area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS URL: Setting <http://example.net>.pathname = '#' # needs to be encoded +PASS <a>: Setting <http://example.net>.pathname = '#' # needs to be encoded +PASS <area>: Setting <http://example.net>.pathname = '#' # needs to be encoded +FAIL URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL <a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL <area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL <a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL <area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL URL: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL <a>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL <area>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL URL: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes assert_equals: expected "file:///" but got "file://////" +PASS <a>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes +PASS <area>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes +FAIL URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes assert_equals: expected "file:///" but got "file://///" +PASS <a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes +PASS <area>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes +PASS URL: Setting <https://example.net#nav>.search = 'lang=fr' +PASS <a>: Setting <https://example.net#nav>.search = 'lang=fr' +PASS <area>: Setting <https://example.net#nav>.search = 'lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +FAIL URL: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +FAIL <a>: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +FAIL <area>: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS URL: Setting <https://example.net?lang=en-US>.search = '' +PASS <a>: Setting <https://example.net?lang=en-US>.search = '' +PASS <area>: Setting <https://example.net?lang=en-US>.search = '' +PASS URL: Setting <https://example.net>.search = '' +PASS <a>: Setting <https://example.net>.search = '' +PASS <area>: Setting <https://example.net>.search = '' +FAIL URL: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <a>: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <area>: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +PASS URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS URL: Setting <https://example.net>.hash = 'main' +PASS <a>: Setting <https://example.net>.hash = 'main' +PASS <area>: Setting <https://example.net>.hash = 'main' +PASS URL: Setting <https://example.net#nav>.hash = 'main' +PASS <a>: Setting <https://example.net#nav>.hash = 'main' +PASS <area>: Setting <https://example.net#nav>.hash = 'main' +PASS URL: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS <a>: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS <area>: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +FAIL URL: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +FAIL <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +FAIL <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '' +FAIL URL: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <a>: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <area>: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +FAIL <a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +FAIL <area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +PASS URL: Setting <javascript:alert(1)>.hash = 'castle' +PASS <a>: Setting <javascript:alert(1)>.hash = 'castle' +PASS <area>: Setting <javascript:alert(1)>.hash = 'castle' +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/crash-on-zero-radius-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/crash-on-zero-radius-expected.txt index 8a684bd..d93a9959d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/crash-on-zero-radius-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/crash-on-zero-radius-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/generated-gradients-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/generated-gradients-expected.txt index f3ab872..6538ad4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/generated-gradients-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/generated-gradients-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/radial-centered-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/radial-centered-expected.txt index 59f77c49..ef580bb9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/radial-centered-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/radial-centered-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/simple-gradients-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/simple-gradients-expected.txt index 2bc8202a..09dec51 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/simple-gradients-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/simple-gradients-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-expected.txt new file mode 100644 index 0000000..26dcb10c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-expected.txt
@@ -0,0 +1,486 @@ +This is a testharness.js-based test. +Found 473 tests; 303 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +PASS Parsing: <a: foo.com> against <http://example.org/foo/bar> +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c" +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20# e" +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +PASS Parsing: <c:/foo> against <http://example.org/foo/bar> +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/" +FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/" +FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/" +FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/" +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/" +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html" +FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar" +FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar" +FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar" +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q" +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +PASS Parsing: <file:/example.com/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http://user@/www.example.com> against <about:blank> +FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com" +FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com" +FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com" +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/" +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing: <file:...> against <http://www.example.com/test> +PASS Parsing: <file:..> against <http://www.example.com/test> +PASS Parsing: <file:a> against <http://www.example.com/test> +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/" +FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/" +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +FAIL Parsing: <http://zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/" +FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/" +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/" +FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/" +FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/" +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/" +FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/" +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/" +FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/" +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x" +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got "" +FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got "" +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got "" +FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got "" +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got "" +FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got "" +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got "" +FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got "" +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1" +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/" +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/" +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/" +PASS Parsing: <http://0xffffffff> against <http://other.com/> +FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/" +FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/" +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///" +PASS Parsing: <..> against <file:///> +FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///" +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file://d:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file://d:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +PASS Parsing: <file:\\\\?fox> against <about:blank> +PASS Parsing: <file:\\\\#guppy> against <about:blank> +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +PASS Parsing: <file://\/localhost//cat> against <about:blank> +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +PASS Parsing: </////mouse> against <file:///elephant> +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file://host/dir/C%7C" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file://host/dir/C%7C#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file://host/dir/C%7C?" +FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca" +FAIL Parsing: <file://example.net/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://example.net/C:/" +FAIL Parsing: <file://1.2.3.4/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://1.2.3.4/C:/" +FAIL Parsing: <file://[1::8]/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://[1::8]/C:/" +FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/" +FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/" +PASS Parsing: <file:> against <about:blank> +PASS Parsing: <file:?q=v> against <about:blank> +PASS Parsing: <file:#frag> against <about:blank> +PASS Parsing: <http://[1:0::]> against <http://example.net/> +FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/" +FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/" +FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/" +FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/" +FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/" +FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/" +FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/" +FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/" +FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?" +FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#" +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1" +FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1" +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:" +FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:" +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-origin-expected.txt new file mode 100644 index 0000000..3502d0c8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-origin-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 219 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing origin: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing origin: <https://test:@test> against <about:blank> +PASS Parsing origin: <https://:@test> against <about:blank> +FAIL Parsing origin: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Parsing origin: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Parsing origin: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing origin: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing origin: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing origin: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://" +PASS Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing origin: <http://f:/c> against <http://example.org/foo/bar> +FAIL Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing origin: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing origin: <> against <http://example.org/foo/bar> +PASS Parsing origin: < > against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <:> against <http://example.org/foo/bar> +PASS Parsing origin: <:a> against <http://example.org/foo/bar> +PASS Parsing origin: <:/> against <http://example.org/foo/bar> +PASS Parsing origin: <:\> against <http://example.org/foo/bar> +PASS Parsing origin: <:#> against <http://example.org/foo/bar> +PASS Parsing origin: <#> against <http://example.org/foo/bar> +PASS Parsing origin: <#/> against <http://example.org/foo/bar> +PASS Parsing origin: <#\> against <http://example.org/foo/bar> +PASS Parsing origin: <#;?> against <http://example.org/foo/bar> +PASS Parsing origin: <?> against <http://example.org/foo/bar> +PASS Parsing origin: </> against <http://example.org/foo/bar> +PASS Parsing origin: <:23> against <http://example.org/foo/bar> +PASS Parsing origin: </:23> against <http://example.org/foo/bar> +PASS Parsing origin: <::> against <http://example.org/foo/bar> +PASS Parsing origin: <::23> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing origin: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://" +PASS Parsing origin: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing origin: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing origin: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> +PASS Parsing origin: <#β> against <http://example.org/foo/bar> +PASS Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Parsing origin: <http://example.com/././foo> against <about:blank> +PASS Parsing origin: <http://example.com/./.foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo/.> against <about:blank> +PASS Parsing origin: <http://example.com/foo/./> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing origin: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Parsing origin: <http://example.com////../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing origin: <http://example.com/foo> against <about:blank> +PASS Parsing origin: <http://example.com/%20foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo%> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%41%7a> against <about:blank> +PASS Parsing origin: <http://example.com/foo %91> against <about:blank> +FAIL Parsing origin: <http://example.com/foo%00%51> against <about:blank> assert_equals: origin expected "http://example.com" but got "null" +PASS Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing origin: <http://example.com/foo bar> against <about:blank> +PASS Parsing origin: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing origin: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing origin: <http://example.com/你好你好> against <about:blank> +PASS Parsing origin: <http://example.com/‥/foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo//bar> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Parsing origin: <data:test# »> against <about:blank> +PASS Parsing origin: <http://www.google.com> against <about:blank> +PASS Parsing origin: <http://192.0x00A80001> against <about:blank> +PASS Parsing origin: <http://www/foo%2Ehtml> against <about:blank> +PASS Parsing origin: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing origin: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing origin: <http://foo:80/> against <about:blank> +PASS Parsing origin: <http://foo:81/> against <about:blank> +FAIL Parsing origin: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Parsing origin: <https://foo:443/> against <about:blank> +PASS Parsing origin: <https://foo:80/> against <about:blank> +PASS Parsing origin: <ftp://foo:21/> against <about:blank> +PASS Parsing origin: <ftp://foo:80/> against <about:blank> +PASS Parsing origin: <gopher://foo:70/> against <about:blank> +PASS Parsing origin: <gopher://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:80/> against <about:blank> +PASS Parsing origin: <ws://foo:81/> against <about:blank> +PASS Parsing origin: <ws://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:815/> against <about:blank> +PASS Parsing origin: <wss://foo:80/> against <about:blank> +PASS Parsing origin: <wss://foo:81/> against <about:blank> +PASS Parsing origin: <wss://foo:443/> against <about:blank> +PASS Parsing origin: <wss://foo:815/> against <about:blank> +PASS Parsing origin: <http:/example.com/> against <about:blank> +PASS Parsing origin: <ftp:/example.com/> against <about:blank> +PASS Parsing origin: <https:/example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <about:blank> +PASS Parsing origin: <ws:/example.com/> against <about:blank> +PASS Parsing origin: <wss:/example.com/> against <about:blank> +PASS Parsing origin: <data:/example.com/> against <about:blank> +PASS Parsing origin: <javascript:/example.com/> against <about:blank> +FAIL Parsing origin: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <about:blank> +PASS Parsing origin: <ftp:example.com/> against <about:blank> +PASS Parsing origin: <https:example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <about:blank> +PASS Parsing origin: <ws:example.com/> against <about:blank> +PASS Parsing origin: <wss:example.com/> against <about:blank> +PASS Parsing origin: <data:example.com/> against <about:blank> +PASS Parsing origin: <javascript:example.com/> against <about:blank> +FAIL Parsing origin: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/@www.example.com> against <about:blank> +PASS Parsing origin: <http://@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://@pple.com> against <about:blank> +PASS Parsing origin: <http::b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://www.@pple.com> against <about:blank> +PASS Parsing origin: <http://:@www.example.com> against <about:blank> +PASS Parsing origin: </> against <http://www.example.com/test> +PASS Parsing origin: </test.txt> against <http://www.example.com/test> +PASS Parsing origin: <.> against <http://www.example.com/test> +PASS Parsing origin: <..> against <http://www.example.com/test> +PASS Parsing origin: <test.txt> against <http://www.example.com/test> +PASS Parsing origin: <./test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <中/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Parsing origin: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing origin: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing origin: <https://x/�?�#�> against <about:blank> +PASS Parsing origin: <http://Go.com> against <http://other.com/> +FAIL Parsing origin: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Parsing origin: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing origin: <http://./> against <about:blank> +PASS Parsing origin: <http://../> against <about:blank> +PASS Parsing origin: <http://0..0x300/> against <about:blank> +PASS Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Parsing origin: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Parsing origin: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <#x> against <data:,> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <#x> against <about:blank> +FAIL Parsing origin: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing origin: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing origin: </some/path> against <http://user@example.org/smth> +PASS Parsing origin: <> against <http://user:pass@example.org:21/smth> +PASS Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing origin: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <about:/../> against <about:blank> +PASS Parsing origin: <data:/../> against <about:blank> +PASS Parsing origin: <javascript:/../> against <about:blank> +FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <x> against <sc://ñ> +FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing origin: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <http:> against <http://example.org/foo/bar> +FAIL Parsing origin: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing origin: <http://192.168.257> against <http://other.com/> +PASS Parsing origin: <http://192.168.257.com> against <http://other.com/> +PASS Parsing origin: <http://256> against <http://other.com/> +PASS Parsing origin: <http://256.com> against <http://other.com/> +PASS Parsing origin: <http://999999999> against <http://other.com/> +PASS Parsing origin: <http://999999999.com> against <http://other.com/> +PASS Parsing origin: <http://10000000000.com> against <http://other.com/> +PASS Parsing origin: <http://4294967295> against <http://other.com/> +PASS Parsing origin: <http://0xffffffff> against <http://other.com/> +PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing origin: <https://0x.0x.0> against <about:blank> +PASS Parsing origin: <http://[1:0::]> against <http://example.net/> +FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <#x> against <sc://ñ> +PASS Parsing origin: <?x> against <sc://ñ> +FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt new file mode 100644 index 0000000..3502d0c8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 219 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing origin: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing origin: <https://test:@test> against <about:blank> +PASS Parsing origin: <https://:@test> against <about:blank> +FAIL Parsing origin: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Parsing origin: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Parsing origin: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing origin: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing origin: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing origin: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://" +PASS Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing origin: <http://f:/c> against <http://example.org/foo/bar> +FAIL Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing origin: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing origin: <> against <http://example.org/foo/bar> +PASS Parsing origin: < > against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <:> against <http://example.org/foo/bar> +PASS Parsing origin: <:a> against <http://example.org/foo/bar> +PASS Parsing origin: <:/> against <http://example.org/foo/bar> +PASS Parsing origin: <:\> against <http://example.org/foo/bar> +PASS Parsing origin: <:#> against <http://example.org/foo/bar> +PASS Parsing origin: <#> against <http://example.org/foo/bar> +PASS Parsing origin: <#/> against <http://example.org/foo/bar> +PASS Parsing origin: <#\> against <http://example.org/foo/bar> +PASS Parsing origin: <#;?> against <http://example.org/foo/bar> +PASS Parsing origin: <?> against <http://example.org/foo/bar> +PASS Parsing origin: </> against <http://example.org/foo/bar> +PASS Parsing origin: <:23> against <http://example.org/foo/bar> +PASS Parsing origin: </:23> against <http://example.org/foo/bar> +PASS Parsing origin: <::> against <http://example.org/foo/bar> +PASS Parsing origin: <::23> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing origin: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://" +PASS Parsing origin: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing origin: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing origin: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> +PASS Parsing origin: <#β> against <http://example.org/foo/bar> +PASS Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Parsing origin: <http://example.com/././foo> against <about:blank> +PASS Parsing origin: <http://example.com/./.foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo/.> against <about:blank> +PASS Parsing origin: <http://example.com/foo/./> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing origin: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Parsing origin: <http://example.com////../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing origin: <http://example.com/foo> against <about:blank> +PASS Parsing origin: <http://example.com/%20foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo%> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%41%7a> against <about:blank> +PASS Parsing origin: <http://example.com/foo %91> against <about:blank> +FAIL Parsing origin: <http://example.com/foo%00%51> against <about:blank> assert_equals: origin expected "http://example.com" but got "null" +PASS Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing origin: <http://example.com/foo bar> against <about:blank> +PASS Parsing origin: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing origin: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing origin: <http://example.com/你好你好> against <about:blank> +PASS Parsing origin: <http://example.com/‥/foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo//bar> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Parsing origin: <data:test# »> against <about:blank> +PASS Parsing origin: <http://www.google.com> against <about:blank> +PASS Parsing origin: <http://192.0x00A80001> against <about:blank> +PASS Parsing origin: <http://www/foo%2Ehtml> against <about:blank> +PASS Parsing origin: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing origin: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing origin: <http://foo:80/> against <about:blank> +PASS Parsing origin: <http://foo:81/> against <about:blank> +FAIL Parsing origin: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Parsing origin: <https://foo:443/> against <about:blank> +PASS Parsing origin: <https://foo:80/> against <about:blank> +PASS Parsing origin: <ftp://foo:21/> against <about:blank> +PASS Parsing origin: <ftp://foo:80/> against <about:blank> +PASS Parsing origin: <gopher://foo:70/> against <about:blank> +PASS Parsing origin: <gopher://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:80/> against <about:blank> +PASS Parsing origin: <ws://foo:81/> against <about:blank> +PASS Parsing origin: <ws://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:815/> against <about:blank> +PASS Parsing origin: <wss://foo:80/> against <about:blank> +PASS Parsing origin: <wss://foo:81/> against <about:blank> +PASS Parsing origin: <wss://foo:443/> against <about:blank> +PASS Parsing origin: <wss://foo:815/> against <about:blank> +PASS Parsing origin: <http:/example.com/> against <about:blank> +PASS Parsing origin: <ftp:/example.com/> against <about:blank> +PASS Parsing origin: <https:/example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <about:blank> +PASS Parsing origin: <ws:/example.com/> against <about:blank> +PASS Parsing origin: <wss:/example.com/> against <about:blank> +PASS Parsing origin: <data:/example.com/> against <about:blank> +PASS Parsing origin: <javascript:/example.com/> against <about:blank> +FAIL Parsing origin: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <about:blank> +PASS Parsing origin: <ftp:example.com/> against <about:blank> +PASS Parsing origin: <https:example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <about:blank> +PASS Parsing origin: <ws:example.com/> against <about:blank> +PASS Parsing origin: <wss:example.com/> against <about:blank> +PASS Parsing origin: <data:example.com/> against <about:blank> +PASS Parsing origin: <javascript:example.com/> against <about:blank> +FAIL Parsing origin: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/@www.example.com> against <about:blank> +PASS Parsing origin: <http://@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://@pple.com> against <about:blank> +PASS Parsing origin: <http::b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://www.@pple.com> against <about:blank> +PASS Parsing origin: <http://:@www.example.com> against <about:blank> +PASS Parsing origin: </> against <http://www.example.com/test> +PASS Parsing origin: </test.txt> against <http://www.example.com/test> +PASS Parsing origin: <.> against <http://www.example.com/test> +PASS Parsing origin: <..> against <http://www.example.com/test> +PASS Parsing origin: <test.txt> against <http://www.example.com/test> +PASS Parsing origin: <./test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <中/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Parsing origin: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing origin: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing origin: <https://x/�?�#�> against <about:blank> +PASS Parsing origin: <http://Go.com> against <http://other.com/> +FAIL Parsing origin: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Parsing origin: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing origin: <http://./> against <about:blank> +PASS Parsing origin: <http://../> against <about:blank> +PASS Parsing origin: <http://0..0x300/> against <about:blank> +PASS Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Parsing origin: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Parsing origin: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <#x> against <data:,> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <#x> against <about:blank> +FAIL Parsing origin: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing origin: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing origin: </some/path> against <http://user@example.org/smth> +PASS Parsing origin: <> against <http://user:pass@example.org:21/smth> +PASS Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing origin: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <about:/../> against <about:blank> +PASS Parsing origin: <data:/../> against <about:blank> +PASS Parsing origin: <javascript:/../> against <about:blank> +FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <x> against <sc://ñ> +FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing origin: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <http:> against <http://example.org/foo/bar> +FAIL Parsing origin: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing origin: <http://192.168.257> against <http://other.com/> +PASS Parsing origin: <http://192.168.257.com> against <http://other.com/> +PASS Parsing origin: <http://256> against <http://other.com/> +PASS Parsing origin: <http://256.com> against <http://other.com/> +PASS Parsing origin: <http://999999999> against <http://other.com/> +PASS Parsing origin: <http://999999999.com> against <http://other.com/> +PASS Parsing origin: <http://10000000000.com> against <http://other.com/> +PASS Parsing origin: <http://4294967295> against <http://other.com/> +PASS Parsing origin: <http://0xffffffff> against <http://other.com/> +PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing origin: <https://0x.0x.0> against <about:blank> +PASS Parsing origin: <http://[1:0::]> against <http://example.net/> +FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <#x> against <sc://ñ> +PASS Parsing origin: <?x> against <sc://ñ> +FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt new file mode 100644 index 0000000..26dcb10c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt
@@ -0,0 +1,486 @@ +This is a testharness.js-based test. +Found 473 tests; 303 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +PASS Parsing: <a: foo.com> against <http://example.org/foo/bar> +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c" +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20# e" +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +PASS Parsing: <c:/foo> against <http://example.org/foo/bar> +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/" +FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/" +FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/" +FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/" +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/" +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html" +FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar" +FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar" +FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar" +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q" +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +PASS Parsing: <file:/example.com/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http://user@/www.example.com> against <about:blank> +FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com" +FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com" +FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com" +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/" +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing: <file:...> against <http://www.example.com/test> +PASS Parsing: <file:..> against <http://www.example.com/test> +PASS Parsing: <file:a> against <http://www.example.com/test> +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/" +FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/" +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +FAIL Parsing: <http://zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/" +FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/" +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/" +FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/" +FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/" +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/" +FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/" +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/" +FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/" +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x" +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got "" +FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got "" +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got "" +FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got "" +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got "" +FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got "" +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got "" +FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got "" +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1" +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/" +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/" +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/" +PASS Parsing: <http://0xffffffff> against <http://other.com/> +FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/" +FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/" +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///" +PASS Parsing: <..> against <file:///> +FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///" +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file://d:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file://d:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +PASS Parsing: <file:\\\\?fox> against <about:blank> +PASS Parsing: <file:\\\\#guppy> against <about:blank> +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +PASS Parsing: <file://\/localhost//cat> against <about:blank> +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +PASS Parsing: </////mouse> against <file:///elephant> +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file://host/dir/C%7C" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file://host/dir/C%7C#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file://host/dir/C%7C?" +FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca" +FAIL Parsing: <file://example.net/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://example.net/C:/" +FAIL Parsing: <file://1.2.3.4/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://1.2.3.4/C:/" +FAIL Parsing: <file://[1::8]/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://[1::8]/C:/" +FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/" +FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/" +PASS Parsing: <file:> against <about:blank> +PASS Parsing: <file:?q=v> against <about:blank> +PASS Parsing: <file:#frag> against <about:blank> +PASS Parsing: <http://[1:0::]> against <http://example.net/> +FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/" +FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/" +FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/" +FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/" +FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/" +FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/" +FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/" +FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/" +FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?" +FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#" +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1" +FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1" +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:" +FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:" +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/failure-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/failure-expected.txt new file mode 100644 index 0000000..cac2f08 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/failure-expected.txt
@@ -0,0 +1,235 @@ +This is a testharness.js-based test. +Found 231 tests; 92 PASS, 139 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +FAIL URL's href: file://example:1/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example:1/ should throw +PASS sendBeacon(): file://example:1/ should throw +FAIL Location's href: file://example:1/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:1/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example:1/ should throw +FAIL URL's href: file://example:test/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example:test/ should throw +PASS sendBeacon(): file://example:test/ should throw +FAIL Location's href: file://example:test/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:test/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example:test/ should throw +FAIL URL's href: file://example%/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example%/ should throw +PASS sendBeacon(): file://example%/ should throw +FAIL Location's href: file://example%/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example%/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example%/ should throw +FAIL URL's href: file://[example]/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://[example]/ should throw +PASS sendBeacon(): file://[example]/ should throw +FAIL Location's href: file://[example]/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://[example]/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://[example]/ should throw +FAIL URL's href: http://user:pass@/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://user:pass@/ should throw +PASS sendBeacon(): http://user:pass@/ should throw +FAIL Location's href: http://user:pass@/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user:pass@/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://user:pass@/ should throw +FAIL URL's href: http://foo:-80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://foo:-80/ should throw +PASS sendBeacon(): http://foo:-80/ should throw +FAIL Location's href: http://foo:-80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo:-80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://foo:-80/ should throw +FAIL URL's href: http:/:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/:@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://user@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://user@/www.example.com should throw +PASS sendBeacon(): http://user@/www.example.com should throw +FAIL Location's href: http://user@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://user@/www.example.com should throw +FAIL URL's href: http:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://@/www.example.com should throw +PASS sendBeacon(): http://@/www.example.com should throw +FAIL Location's href: http://@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://@/www.example.com should throw +FAIL URL's href: https:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https:@/www.example.com should throw +PASS sendBeacon(): https:@/www.example.com should throw +FAIL Location's href: https:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https:@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https:@/www.example.com should throw +FAIL URL's href: http:a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:a:b@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://a:b@/www.example.com should throw +PASS sendBeacon(): http://a:b@/www.example.com should throw +FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a:b@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://a:b@/www.example.com should throw +FAIL URL's href: http::@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http::@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http::@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http::@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http::@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:@:www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/@:www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://@:www.example.com should throw +PASS sendBeacon(): http://@:www.example.com should throw +FAIL Location's href: http://@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@:www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://@:www.example.com should throw +FAIL URL's href: https://� should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://� should throw +PASS sendBeacon(): https://� should throw +FAIL Location's href: https://� should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://�' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://� should throw +FAIL URL's href: https://%EF%BF%BD should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://%EF%BF%BD should throw +PASS sendBeacon(): https://%EF%BF%BD should throw +FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://%EF%BF%BD' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://%EF%BF%BD should throw +FAIL URL's href: https://x x:12 should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: https://x x:12 should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): https://x x:12 should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: https://x x:12 should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): https://x x:12 should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://[www.google.com]/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://[www.google.com]/ should throw +PASS sendBeacon(): http://[www.google.com]/ should throw +FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[www.google.com]/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://[www.google.com]/ should throw +FAIL URL's href: sc://\0/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://\0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://\0/ should throw +FAIL Location's href: sc://\0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://\0/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc:// / should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc:// / should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc:// / should throw +FAIL Location's href: sc:// / should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc:// / should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://@/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://@/ should throw +FAIL Location's href: sc://@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://@/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://te@s:t@/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://te@s:t@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://te@s:t@/ should throw +FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://te@s:t@/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://:/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://:/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://:/ should throw +FAIL Location's href: sc://:/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://:/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://:12/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://:12/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://:12/ should throw +FAIL Location's href: sc://:12/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://:12/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://[/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://[/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://[/ should throw +FAIL Location's href: sc://[/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://[/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://\/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://\/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://\/ should throw +FAIL Location's href: sc://\/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://\/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://]/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://]/ should throw +FAIL Location's href: sc://]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://]/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: ftp://example.com%80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: ftp://example.com%80/ should throw +PASS sendBeacon(): ftp://example.com%80/ should throw +FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): ftp://example.com%80/ should throw +FAIL URL's href: ftp://example.com%A0/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: ftp://example.com%A0/ should throw +PASS sendBeacon(): ftp://example.com%A0/ should throw +FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%A0/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): ftp://example.com%A0/ should throw +FAIL URL's href: https://example.com%80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://example.com%80/ should throw +PASS sendBeacon(): https://example.com%80/ should throw +FAIL Location's href: https://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://example.com%80/ should throw +FAIL URL's href: https://example.com%A0/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://example.com%A0/ should throw +PASS sendBeacon(): https://example.com%A0/ should throw +FAIL Location's href: https://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%A0/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://example.com%A0/ should throw +FAIL URL's href: https://[0::0::0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0::0::0] should throw +PASS sendBeacon(): https://[0::0::0] should throw +FAIL Location's href: https://[0::0::0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0::0::0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0::0::0] should throw +FAIL URL's href: https://[0:.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:.0] should throw +PASS sendBeacon(): https://[0:.0] should throw +FAIL Location's href: https://[0:.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:.0] should throw +FAIL URL's href: https://[0:0:] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:0:] should throw +PASS sendBeacon(): https://[0:0:] should throw +FAIL Location's href: https://[0:0:] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:0:]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:0:] should throw +FAIL URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1:2:3:4:5:6:7.0.0.0.1]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +FAIL URL's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.00.0.0.0] should throw +PASS sendBeacon(): https://[0:1.00.0.0.0] should throw +FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.00.0.0.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.00.0.0.0] should throw +FAIL URL's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.290.0.0.0] should throw +PASS sendBeacon(): https://[0:1.290.0.0.0] should throw +FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.290.0.0.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.290.0.0.0] should throw +FAIL URL's href: https://[0:1.23.23] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.23.23] should throw +PASS sendBeacon(): https://[0:1.23.23] should throw +FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.23.23]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.23.23] should throw +FAIL URL's href: http://? should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://? should throw +PASS sendBeacon(): http://? should throw +FAIL Location's href: http://? should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://?' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://? should throw +FAIL URL's href: http://# should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://# should throw +PASS sendBeacon(): http://# should throw +FAIL Location's href: http://# should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://#' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://# should throw +FAIL URL's href: non-special://[:80/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: non-special://[:80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): non-special://[:80/ should throw +FAIL Location's href: non-special://[:80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): non-special://[:80/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-constructor-expected.txt new file mode 100644 index 0000000..d28b52a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-constructor-expected.txt
@@ -0,0 +1,532 @@ +This is a testharness.js-based test. +Found 477 tests; 367 PASS, 110 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS URL.searchParams getter +PASS URL.searchParams updating, clearing +PASS URL.searchParams setter, invalid values +PASS URL.searchParams and URL.search setters, update propagation +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +PASS Parsing: <a: foo.com> against <http://example.org/foo/bar> +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f: /c> against <http://example.org/foo/bar> +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +PASS Parsing: <c:/foo> against <http://example.org/foo/bar> +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +PASS Parsing: <file://example%/> against <about:blank> +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html" +FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar" +FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar" +FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar" +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +PASS Parsing: <file:/example.com/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +PASS Parsing: <http:/:@/www.example.com> against <about:blank> +PASS Parsing: <http://user@/www.example.com> against <about:blank> +PASS Parsing: <http:@/www.example.com> against <about:blank> +PASS Parsing: <http:/@/www.example.com> against <about:blank> +PASS Parsing: <http://@/www.example.com> against <about:blank> +PASS Parsing: <https:@/www.example.com> against <about:blank> +PASS Parsing: <http:a:b@/www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@/www.example.com> against <about:blank> +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +PASS Parsing: <http::@/www.example.com> against <about:blank> +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +PASS Parsing: <http:@:www.example.com> against <about:blank> +PASS Parsing: <http:/@:www.example.com> against <about:blank> +PASS Parsing: <http://@:www.example.com> against <about:blank> +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing: <file:...> against <http://www.example.com/test> +PASS Parsing: <file:..> against <http://www.example.com/test> +PASS Parsing: <file:a> against <http://www.example.com/test> +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://[]> against <http://other.com/> +PASS Parsing: <http://[:]> against <http://other.com/> +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing: <http://zyx.com> against <http://other.com/> +PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> +PASS Parsing: <https://�> against <about:blank> +PASS Parsing: <https://%EF%BF%BD> against <about:blank> +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://%00.com> against <http://other.com/> +PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +PASS Parsing: <http://%zz%66%a.com> against <http://other.com/> +PASS Parsing: <http://%25> against <http://other.com/> +PASS Parsing: <http://hello%00> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing: <http://192.168.0.257> against <http://other.com/> +PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <https://x x:12> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +PASS Parsing: <http://[google.com]> against <http://other.com/> +PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/> +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +PASS Parsing: <#x> against <data:,> +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +PASS Parsing: <i> against <sc:sd> +PASS Parsing: <i> against <sc:sd/sd> +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +PASS Parsing: <../i> against <sc:sd> +PASS Parsing: <../i> against <sc:sd/sd> +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +PASS Parsing: </i> against <sc:sd> +PASS Parsing: </i> against <sc:sd/sd> +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +PASS Parsing: <?i> against <sc:sd> +PASS Parsing: <?i> against <sc:sd/sd> +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc:// /> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://:/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://:12/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://[/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://\/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://]/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +PASS Parsing: <ftp://example.com%80/> against <about:blank> +PASS Parsing: <ftp://example.com%A0/> against <about:blank> +PASS Parsing: <https://example.com%80/> against <about:blank> +PASS Parsing: <https://example.com%A0/> against <about:blank> +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +PASS Parsing: <http://10000000000> against <http://other.com/> +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +PASS Parsing: <http://4294967296> against <http://other.com/> +PASS Parsing: <http://0xffffffff> against <http://other.com/> +PASS Parsing: <http://0xffffffff1> against <http://other.com/> +PASS Parsing: <http://256.256.256.256> against <http://other.com/> +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///" +PASS Parsing: <..> against <file:///> +FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///" +FAIL Parsing: <//d:> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL +FAIL Parsing: <//d:/..> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +PASS Parsing: <file:\\\\?fox> against <about:blank> +PASS Parsing: <file:\\\\#guppy> against <about:blank> +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +PASS Parsing: <file://\/localhost//cat> against <about:blank> +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +PASS Parsing: </////mouse> against <file:///elephant> +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file://host/dir/C%7C" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file://host/dir/C%7C#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file://host/dir/C%7C?" +FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file:///C:/" but got "file://host/dir/C%7C/" +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca" +FAIL Parsing: <file://example.net/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://example.net/C:/" +FAIL Parsing: <file://1.2.3.4/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://1.2.3.4/C:/" +FAIL Parsing: <file://[1::8]/C:/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://[1::8]/C:/" +FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/" +FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/" +PASS Parsing: <file:> against <about:blank> +PASS Parsing: <file:?q=v> against <about:blank> +PASS Parsing: <file:#frag> against <about:blank> +PASS Parsing: <http://[1:0::]> against <http://example.net/> +PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> +PASS Parsing: <https://[0::0::0]> against <about:blank> +PASS Parsing: <https://[0:.0]> against <about:blank> +PASS Parsing: <https://[0:0:]> against <about:blank> +PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> +PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank> +PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank> +PASS Parsing: <https://[0:1.23.23]> against <about:blank> +PASS Parsing: <http://?> against <about:blank> +PASS Parsing: <http://#> against <about:blank> +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL +FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-origin-expected.txt new file mode 100644 index 0000000..863219f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-origin-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 217 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Origin parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Origin parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Origin parsing: <https://test:@test> against <about:blank> +PASS Origin parsing: <https://:@test> against <about:blank> +FAIL Origin parsing: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Origin parsing: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Origin parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Origin parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Origin parsing: < foo.com > against <http://example.org/foo/bar> +FAIL Origin parsing: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "a://" +PASS Origin parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Origin parsing: <http://f:/c> against <http://example.org/foo/bar> +FAIL Origin parsing: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Origin parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Origin parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Origin parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Origin parsing: <> against <http://example.org/foo/bar> +PASS Origin parsing: < > against <http://example.org/foo/bar> +PASS Origin parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Origin parsing: <:> against <http://example.org/foo/bar> +PASS Origin parsing: <:a> against <http://example.org/foo/bar> +PASS Origin parsing: <:/> against <http://example.org/foo/bar> +PASS Origin parsing: <:\> against <http://example.org/foo/bar> +PASS Origin parsing: <:#> against <http://example.org/foo/bar> +PASS Origin parsing: <#> against <http://example.org/foo/bar> +PASS Origin parsing: <#/> against <http://example.org/foo/bar> +PASS Origin parsing: <#\> against <http://example.org/foo/bar> +PASS Origin parsing: <#;?> against <http://example.org/foo/bar> +PASS Origin parsing: <?> against <http://example.org/foo/bar> +PASS Origin parsing: </> against <http://example.org/foo/bar> +PASS Origin parsing: <:23> against <http://example.org/foo/bar> +PASS Origin parsing: </:23> against <http://example.org/foo/bar> +PASS Origin parsing: <::> against <http://example.org/foo/bar> +PASS Origin parsing: <::23> against <http://example.org/foo/bar> +FAIL Origin parsing: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Origin parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Origin parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Origin parsing: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "c://" +PASS Origin parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Origin parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Origin parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Origin parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <https:example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Origin parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Origin parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Origin parsing: </a/%2f/c> against <http://example.org/foo/bar> +PASS Origin parsing: <#β> against <http://example.org/foo/bar> +PASS Origin parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Origin parsing: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Origin parsing: <http://example.com/././foo> against <about:blank> +PASS Origin parsing: <http://example.com/./.foo> against <about:blank> +PASS Origin parsing: <http://example.com/foo/.> against <about:blank> +PASS Origin parsing: <http://example.com/foo/./> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Origin parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Origin parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e%2> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Origin parsing: <http://example.com////../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Origin parsing: <http://example.com/foo> against <about:blank> +PASS Origin parsing: <http://example.com/%20foo> against <about:blank> +PASS Origin parsing: <http://example.com/foo%> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2©zbar> against <about:blank> +PASS Origin parsing: <http://example.com/foo%41%7a> against <about:blank> +PASS Origin parsing: <http://example.com/foo %91> against <about:blank> +FAIL Origin parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL +PASS Origin parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Origin parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Origin parsing: <http://example.com/foo bar> against <about:blank> +PASS Origin parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Origin parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Origin parsing: <http://example.com/你好你好> against <about:blank> +PASS Origin parsing: <http://example.com/‥/foo> against <about:blank> +PASS Origin parsing: <http://example.com//foo> against <about:blank> +PASS Origin parsing: <http://example.com//foo//bar> against <about:blank> +PASS Origin parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Origin parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Origin parsing: <data:test# »> against <about:blank> +PASS Origin parsing: <http://www.google.com> against <about:blank> +PASS Origin parsing: <http://192.0x00A80001> against <about:blank> +PASS Origin parsing: <http://www/foo%2Ehtml> against <about:blank> +PASS Origin parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Origin parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Origin parsing: <http://foo:80/> against <about:blank> +PASS Origin parsing: <http://foo:81/> against <about:blank> +FAIL Origin parsing: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Origin parsing: <https://foo:443/> against <about:blank> +PASS Origin parsing: <https://foo:80/> against <about:blank> +PASS Origin parsing: <ftp://foo:21/> against <about:blank> +PASS Origin parsing: <ftp://foo:80/> against <about:blank> +PASS Origin parsing: <gopher://foo:70/> against <about:blank> +PASS Origin parsing: <gopher://foo:443/> against <about:blank> +PASS Origin parsing: <ws://foo:80/> against <about:blank> +PASS Origin parsing: <ws://foo:81/> against <about:blank> +PASS Origin parsing: <ws://foo:443/> against <about:blank> +PASS Origin parsing: <ws://foo:815/> against <about:blank> +PASS Origin parsing: <wss://foo:80/> against <about:blank> +PASS Origin parsing: <wss://foo:81/> against <about:blank> +PASS Origin parsing: <wss://foo:443/> against <about:blank> +PASS Origin parsing: <wss://foo:815/> against <about:blank> +PASS Origin parsing: <http:/example.com/> against <about:blank> +PASS Origin parsing: <ftp:/example.com/> against <about:blank> +PASS Origin parsing: <https:/example.com/> against <about:blank> +FAIL Origin parsing: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:/example.com/> against <about:blank> +PASS Origin parsing: <ws:/example.com/> against <about:blank> +PASS Origin parsing: <wss:/example.com/> against <about:blank> +PASS Origin parsing: <data:/example.com/> against <about:blank> +PASS Origin parsing: <javascript:/example.com/> against <about:blank> +FAIL Origin parsing: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:example.com/> against <about:blank> +PASS Origin parsing: <ftp:example.com/> against <about:blank> +PASS Origin parsing: <https:example.com/> against <about:blank> +FAIL Origin parsing: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:example.com/> against <about:blank> +PASS Origin parsing: <ws:example.com/> against <about:blank> +PASS Origin parsing: <wss:example.com/> against <about:blank> +PASS Origin parsing: <data:example.com/> against <about:blank> +PASS Origin parsing: <javascript:example.com/> against <about:blank> +FAIL Origin parsing: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:@www.example.com> against <about:blank> +PASS Origin parsing: <http:/@www.example.com> against <about:blank> +PASS Origin parsing: <http://@www.example.com> against <about:blank> +PASS Origin parsing: <http:a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://@pple.com> against <about:blank> +PASS Origin parsing: <http::b@www.example.com> against <about:blank> +PASS Origin parsing: <http:/:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://:b@www.example.com> against <about:blank> +PASS Origin parsing: <http:a:@www.example.com> against <about:blank> +PASS Origin parsing: <http:/a:@www.example.com> against <about:blank> +PASS Origin parsing: <http://a:@www.example.com> against <about:blank> +PASS Origin parsing: <http://www.@pple.com> against <about:blank> +PASS Origin parsing: <http://:@www.example.com> against <about:blank> +PASS Origin parsing: </> against <http://www.example.com/test> +PASS Origin parsing: </test.txt> against <http://www.example.com/test> +PASS Origin parsing: <.> against <http://www.example.com/test> +PASS Origin parsing: <..> against <http://www.example.com/test> +PASS Origin parsing: <test.txt> against <http://www.example.com/test> +PASS Origin parsing: <./test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../../test.txt> against <http://www.example.com/test> +PASS Origin parsing: <中/test.txt> against <http://www.example.com/test> +PASS Origin parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Origin parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Origin parsing: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Origin parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Origin parsing: <http://www.foo。bar.com> against <http://other.com/> +PASS Origin parsing: <https://x/�?�#�> against <about:blank> +PASS Origin parsing: <http://Go.com> against <http://other.com/> +FAIL Origin parsing: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Origin parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Origin parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Origin parsing: <http://./> against <about:blank> +PASS Origin parsing: <http://../> against <about:blank> +PASS Origin parsing: <http://0..0x300/> against <about:blank> +PASS Origin parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Origin parsing: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Origin parsing: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <#x> against <data:,> +PASS Origin parsing: <#x> against <about:blank> +FAIL Origin parsing: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Origin parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Origin parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Origin parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Origin parsing: </some/path> against <http://user@example.org/smth> +PASS Origin parsing: <> against <http://user:pass@example.org:21/smth> +PASS Origin parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Origin parsing: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Origin parsing: <about:/../> against <about:blank> +PASS Origin parsing: <data:/../> against <about:blank> +PASS Origin parsing: <javascript:/../> against <about:blank> +FAIL Origin parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Origin parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Origin parsing: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Origin parsing: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Origin parsing: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Origin parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Origin parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Origin parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Origin parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Origin parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Origin parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Origin parsing: <http:> against <http://example.org/foo/bar> +FAIL Origin parsing: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Origin parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Origin parsing: <http://192.168.257> against <http://other.com/> +PASS Origin parsing: <http://192.168.257.com> against <http://other.com/> +PASS Origin parsing: <http://256> against <http://other.com/> +PASS Origin parsing: <http://256.com> against <http://other.com/> +PASS Origin parsing: <http://999999999> against <http://other.com/> +PASS Origin parsing: <http://999999999.com> against <http://other.com/> +PASS Origin parsing: <http://10000000000.com> against <http://other.com/> +PASS Origin parsing: <http://4294967295> against <http://other.com/> +PASS Origin parsing: <http://0xffffffff> against <http://other.com/> +PASS Origin parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Origin parsing: <https://0x.0x.0> against <about:blank> +PASS Origin parsing: <http://[1:0::]> against <http://example.net/> +FAIL Origin parsing: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Origin parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Origin parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Origin parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Origin parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Origin parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Origin parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Origin parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Origin parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Origin parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Origin parsing: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Origin parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-setters-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-setters-expected.txt new file mode 100644 index 0000000..96b43a3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/url/url-setters-expected.txt
@@ -0,0 +1,596 @@ +This is a testharness.js-based test. +Found 571 tests; 272 PASS, 299 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. +PASS <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. +PASS <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. +PASS URL: Setting <a://example.net>.protocol = 'b' +PASS <a>: Setting <a://example.net>.protocol = 'b' +PASS <area>: Setting <a://example.net>.protocol = 'b' +PASS URL: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS <a>: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS <area>: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased +PASS <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased +PASS <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased +PASS URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected +PASS <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected +PASS <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected +PASS URL: Setting <a://example.net>.protocol = '0b' No leading digit +PASS <a>: Setting <a://example.net>.protocol = '0b' No leading digit +PASS <area>: Setting <a://example.net>.protocol = '0b' No leading digit +PASS URL: Setting <a://example.net>.protocol = '+b' No leading punctuation +PASS <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation +PASS <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation +PASS URL: Setting <a://example.net>.protocol = 'bC0+-.' +PASS <a>: Setting <a://example.net>.protocol = 'bC0+-.' +PASS <area>: Setting <a://example.net>.protocol = 'bC0+-.' +PASS URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable +PASS <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable +PASS <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable +PASS URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected +PASS <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected +PASS <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected +FAIL URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL <a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL <area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL URL: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL <a>: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL <area>: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL URL: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file://x:x%40example.net:1234/" +FAIL <a>: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file://x:x%40example.net:1234/" +FAIL <area>: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file://x:x%40example.net:1234/" +FAIL URL: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL <a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL <area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL URL: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL <a>: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL <area>: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL URL: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL <a>: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL <area>: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/" +FAIL <a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/" +FAIL <area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/" +FAIL URL: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "s://hi/path" +FAIL <a>: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "s://hi/path" +FAIL <area>: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "s://hi/path" +FAIL URL: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/" +FAIL <a>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/" +FAIL <area>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/" +FAIL URL: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL <a>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL <area>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL URL: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL <a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL <area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL URL: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL <a>: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL <area>: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL URL: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +FAIL <a>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +FAIL <area>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +PASS URL: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS <a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS <area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS URL: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS <a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS <area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS URL: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS <a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS <area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS URL: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS <a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS <area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS URL: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS <a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS <area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS URL: Setting <javascript:alert(1)>.username = 'wario' +PASS <a>: Setting <javascript:alert(1)>.username = 'wario' +PASS <area>: Setting <javascript:alert(1)>.username = 'wario' +PASS URL: Setting <http://example.net>.username = 'me' +PASS <a>: Setting <http://example.net>.username = 'me' +PASS <area>: Setting <http://example.net>.username = 'me' +PASS URL: Setting <http://:secret@example.net>.username = 'me' +PASS <a>: Setting <http://:secret@example.net>.username = 'me' +PASS <area>: Setting <http://:secret@example.net>.username = 'me' +PASS URL: Setting <http://me@example.net>.username = '' +PASS <a>: Setting <http://me@example.net>.username = '' +PASS <area>: Setting <http://me@example.net>.username = '' +PASS URL: Setting <http://me:secret@example.net>.username = '' +PASS <a>: Setting <http://me:secret@example.net>.username = '' +PASS <area>: Setting <http://me:secret@example.net>.username = '' +FAIL URL: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <a>: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <area>: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +PASS URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS URL: Setting <sc:///>.username = 'x' +PASS <a>: Setting <sc:///>.username = 'x' +PASS <area>: Setting <sc:///>.username = 'x' +FAIL URL: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +PASS URL: Setting <file://test/>.username = 'test' +PASS <a>: Setting <file://test/>.username = 'test' +PASS <area>: Setting <file://test/>.username = 'test' +PASS URL: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS <a>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS <area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS URL: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS <a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS <area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS URL: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS <a>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS <area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net>.password = 'secret' +PASS <a>: Setting <http://example.net>.password = 'secret' +PASS <area>: Setting <http://example.net>.password = 'secret' +PASS URL: Setting <http://me@example.net>.password = 'secret' +PASS <a>: Setting <http://me@example.net>.password = 'secret' +PASS <area>: Setting <http://me@example.net>.password = 'secret' +PASS URL: Setting <http://:secret@example.net>.password = '' +PASS <a>: Setting <http://:secret@example.net>.password = '' +PASS <area>: Setting <http://:secret@example.net>.password = '' +PASS URL: Setting <http://me:secret@example.net>.password = '' +PASS <a>: Setting <http://me:secret@example.net>.password = '' +PASS <area>: Setting <http://me:secret@example.net>.password = '' +FAIL URL: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <a>: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <area>: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +PASS URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS URL: Setting <sc:///>.password = 'x' +PASS <a>: Setting <sc:///>.password = 'x' +PASS <area>: Setting <sc:///>.password = 'x' +FAIL URL: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +PASS URL: Setting <file://test/>.password = 'test' +PASS <a>: Setting <file://test/>.password = 'test' +PASS <area>: Setting <file://test/>.password = 'test' +FAIL URL: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL URL: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +FAIL <a>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +FAIL <area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +PASS URL: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS <a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS <area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS URL: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS <a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS <area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net>.host = 'example.com:8080' +PASS <a>: Setting <http://example.net>.host = 'example.com:8080' +PASS <area>: Setting <http://example.net>.host = 'example.com:8080' +PASS URL: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +PASS <a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +PASS <area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +FAIL URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +FAIL <a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +FAIL <area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +PASS URL: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +PASS <a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +PASS <area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +FAIL URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +PASS URL: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +PASS <a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +PASS <area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +FAIL URL: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +PASS URL: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS <a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS <area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS URL: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS <a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS <area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS URL: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +PASS <a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +PASS <area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +FAIL URL: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +PASS <a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +PASS <area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +FAIL URL: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL URL: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL <a>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL <area>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL URL: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL URL: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <a>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <area>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL URL: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL <a>: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL <area>: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL URL: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL <a>: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL <area>: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL URL: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +PASS URL: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS <a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS <area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS URL: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS <a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS <area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net:8080>.hostname = 'example.com' +PASS <a>: Setting <http://example.net:8080>.hostname = 'example.com' +PASS <area>: Setting <http://example.net:8080>.hostname = 'example.com' +PASS URL: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +PASS <a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +PASS <area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +FAIL URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +FAIL <area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "a:/foo" +PASS URL: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS <a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS <area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS URL: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +PASS <a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +PASS <area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL URL: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL <a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL <area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL URL: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL <a>: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL <area>: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL URL: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL URL: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <a>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <area>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL URL: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL <a>: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL <area>: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL URL: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +FAIL <a>: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +FAIL <area>: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +PASS URL: Setting <http://example.net>.port = '8080' +PASS <a>: Setting <http://example.net>.port = '8080' +PASS <area>: Setting <http://example.net>.port = '8080' +FAIL URL: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +FAIL <a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +FAIL <area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +PASS URL: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS <a>: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS <area>: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS URL: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS <a>: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS <area>: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS URL: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS <a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS <area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +FAIL URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +FAIL <a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +FAIL <area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +PASS URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +PASS <a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +PASS <area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +FAIL URL: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL <a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL <area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +FAIL <a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +FAIL <area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +PASS URL: Setting <file://test/>.port = '12' +PASS <a>: Setting <file://test/>.port = '12' +PASS <area>: Setting <file://test/>.port = '12' +FAIL URL: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +PASS URL: Setting <non-base:value>.port = '12' +PASS <a>: Setting <non-base:value>.port = '12' +PASS <area>: Setting <non-base:value>.port = '12' +PASS URL: Setting <sc:///>.port = '12' +PASS <a>: Setting <sc:///>.port = '12' +PASS <area>: Setting <sc:///>.port = '12' +FAIL URL: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL URL: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +PASS URL: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +PASS <a>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +PASS <area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +FAIL URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +FAIL <a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +FAIL <area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +PASS URL: Setting <https://example.net#nav>.pathname = 'home' +PASS <a>: Setting <https://example.net#nav>.pathname = 'home' +PASS <area>: Setting <https://example.net#nav>.pathname = 'home' +PASS URL: Setting <https://example.net#nav>.pathname = '../home' +PASS <a>: Setting <https://example.net#nav>.pathname = '../home' +PASS <area>: Setting <https://example.net#nav>.pathname = '../home' +PASS URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +PASS <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +PASS <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +FAIL URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL URL: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/" +FAIL <a>: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/" +FAIL <area>: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/" +FAIL URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +FAIL <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +FAIL <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +PASS URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS <a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS <area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS URL: Setting <http://example.net>.pathname = '#' # needs to be encoded +PASS <a>: Setting <http://example.net>.pathname = '#' # needs to be encoded +PASS <area>: Setting <http://example.net>.pathname = '#' # needs to be encoded +FAIL URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL <a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL <area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL <a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL <area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL URL: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL <a>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL <area>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL URL: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes assert_equals: expected "file:///" but got "file://////" +PASS <a>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes +PASS <area>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes +FAIL URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes assert_equals: expected "file:///" but got "file://///" +PASS <a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes +PASS <area>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes +PASS URL: Setting <https://example.net#nav>.search = 'lang=fr' +PASS <a>: Setting <https://example.net#nav>.search = 'lang=fr' +PASS <area>: Setting <https://example.net#nav>.search = 'lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +FAIL URL: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +FAIL <a>: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +FAIL <area>: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS URL: Setting <https://example.net?lang=en-US>.search = '' +PASS <a>: Setting <https://example.net?lang=en-US>.search = '' +PASS <area>: Setting <https://example.net?lang=en-US>.search = '' +PASS URL: Setting <https://example.net>.search = '' +PASS <a>: Setting <https://example.net>.search = '' +PASS <area>: Setting <https://example.net>.search = '' +FAIL URL: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <a>: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <area>: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +PASS URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS URL: Setting <https://example.net>.hash = 'main' +PASS <a>: Setting <https://example.net>.hash = 'main' +PASS <area>: Setting <https://example.net>.hash = 'main' +PASS URL: Setting <https://example.net#nav>.hash = 'main' +PASS <a>: Setting <https://example.net#nav>.hash = 'main' +PASS <area>: Setting <https://example.net#nav>.hash = 'main' +PASS URL: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS <a>: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS <area>: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +FAIL URL: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +FAIL <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +FAIL <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '' +FAIL URL: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <a>: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL <area>: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%C2%80%C2%81%C3%89%C3%A9" +FAIL URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +FAIL <a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +FAIL <area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +PASS URL: Setting <javascript:alert(1)>.hash = 'castle' +PASS <a>: Setting <javascript:alert(1)>.hash = 'castle' +PASS <area>: Setting <javascript:alert(1)>.hash = 'castle' +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/crash-on-zero-radius-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/crash-on-zero-radius-expected.txt index a575569..785aed9 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/crash-on-zero-radius-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/crash-on-zero-radius-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/generated-gradients-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/generated-gradients-expected.txt index 0e441cd..6be0ccd 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/generated-gradients-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/generated-gradients-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/radial-centered-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/radial-centered-expected.txt index 0cc2994..0166e3c0 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/radial-centered-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/radial-centered-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/simple-gradients-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/simple-gradients-expected.txt index 21ec109..07d1a08 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/simple-gradients-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/gradients/simple-gradients-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-expected.txt new file mode 100644 index 0000000..aa856e2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-expected.txt
@@ -0,0 +1,486 @@ +This is a testharness.js-based test. +Found 473 tests; 302 PASS, 171 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing: <a: foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com" +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c" +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20# e" +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo" +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/" +FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/" +FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/" +FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/" +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/" +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html" +PASS Parsing: <C|/foo/bar> against <file:///tmp/mock/path> +PASS Parsing: </C|\foo\bar> against <file:///tmp/mock/path> +PASS Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q" +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +FAIL Parsing: <file:/example.com/> against <about:blank> assert_equals: href expected "file:///example.com/" but got "file://example.com/" +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http://user@/www.example.com> against <about:blank> +FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com" +FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com" +FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com" +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/" +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +FAIL Parsing: <file:...> against <http://www.example.com/test> assert_equals: href expected "file:///..." but got "file://.../" +FAIL Parsing: <file:..> against <http://www.example.com/test> assert_equals: href expected "file:///" but got "file://../" +FAIL Parsing: <file:a> against <http://www.example.com/test> assert_equals: href expected "file:///a" but got "file://a/" +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/" +FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/" +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +FAIL Parsing: <http://zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/" +FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/" +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/" +FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/" +FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/" +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/" +FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/" +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/" +FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/" +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x" +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got "" +FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got "" +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got "" +FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got "" +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got "" +FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got "" +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got "" +FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got "" +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1" +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/" +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/" +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/" +PASS Parsing: <http://0xffffffff> against <http://other.com/> +FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/" +FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/" +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +PASS Parsing: <..> against <file:///C:/> +PASS Parsing: <..> against <file:///> +PASS Parsing: </> against <file:///C:/a/b> +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file:///D:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file:///D:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +FAIL Parsing: <file:\\\\?fox> against <about:blank> assert_equals: href expected "file:///?fox" but got "file://%3Ffox/" +FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:///#guppy" but got "file://%23guppy/" +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:///localhost//cat" but got "file://localhost//cat" +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file:///mouse" but got "file://mouse/" +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file:///C:/" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file:///C:/#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file:///C:/?" +PASS Parsing: <C|/> against <file://host/dir/file> +PASS Parsing: <C|\> against <file://host/dir/file> +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file:///C:/a" +PASS Parsing: <file://example.net/C:/> against <about:blank> +PASS Parsing: <file://1.2.3.4/C:/> against <about:blank> +PASS Parsing: <file://[1::8]/C:/> against <about:blank> +PASS Parsing: <file:/C|/> against <about:blank> +PASS Parsing: <file://C|/> against <about:blank> +PASS Parsing: <file:> against <about:blank> +FAIL Parsing: <file:?q=v> against <about:blank> assert_equals: href expected "file:///?q=v" but got "file://%3Fq%3Dv/" +FAIL Parsing: <file:#frag> against <about:blank> assert_equals: href expected "file:///#frag" but got "file://%23frag/" +PASS Parsing: <http://[1:0::]> against <http://example.net/> +FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/" +FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/" +FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/" +FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/" +FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/" +FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/" +FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/" +FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/" +FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?" +FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#" +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1" +FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1" +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:" +FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:" +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-origin-expected.txt new file mode 100644 index 0000000..664b7f7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-origin-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 219 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing origin: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing origin: <https://test:@test> against <about:blank> +PASS Parsing origin: <https://:@test> against <about:blank> +FAIL Parsing origin: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Parsing origin: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Parsing origin: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing origin: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing origin: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing origin: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "file://" +PASS Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing origin: <http://f:/c> against <http://example.org/foo/bar> +FAIL Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing origin: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing origin: <> against <http://example.org/foo/bar> +PASS Parsing origin: < > against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <:> against <http://example.org/foo/bar> +PASS Parsing origin: <:a> against <http://example.org/foo/bar> +PASS Parsing origin: <:/> against <http://example.org/foo/bar> +PASS Parsing origin: <:\> against <http://example.org/foo/bar> +PASS Parsing origin: <:#> against <http://example.org/foo/bar> +PASS Parsing origin: <#> against <http://example.org/foo/bar> +PASS Parsing origin: <#/> against <http://example.org/foo/bar> +PASS Parsing origin: <#\> against <http://example.org/foo/bar> +PASS Parsing origin: <#;?> against <http://example.org/foo/bar> +PASS Parsing origin: <?> against <http://example.org/foo/bar> +PASS Parsing origin: </> against <http://example.org/foo/bar> +PASS Parsing origin: <:23> against <http://example.org/foo/bar> +PASS Parsing origin: </:23> against <http://example.org/foo/bar> +PASS Parsing origin: <::> against <http://example.org/foo/bar> +PASS Parsing origin: <::23> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing origin: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "file://" +PASS Parsing origin: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing origin: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing origin: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> +PASS Parsing origin: <#β> against <http://example.org/foo/bar> +PASS Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Parsing origin: <http://example.com/././foo> against <about:blank> +PASS Parsing origin: <http://example.com/./.foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo/.> against <about:blank> +PASS Parsing origin: <http://example.com/foo/./> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing origin: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Parsing origin: <http://example.com////../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing origin: <http://example.com/foo> against <about:blank> +PASS Parsing origin: <http://example.com/%20foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo%> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%41%7a> against <about:blank> +PASS Parsing origin: <http://example.com/foo %91> against <about:blank> +FAIL Parsing origin: <http://example.com/foo%00%51> against <about:blank> assert_equals: origin expected "http://example.com" but got "null" +PASS Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing origin: <http://example.com/foo bar> against <about:blank> +PASS Parsing origin: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing origin: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing origin: <http://example.com/你好你好> against <about:blank> +PASS Parsing origin: <http://example.com/‥/foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo//bar> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Parsing origin: <data:test# »> against <about:blank> +PASS Parsing origin: <http://www.google.com> against <about:blank> +PASS Parsing origin: <http://192.0x00A80001> against <about:blank> +PASS Parsing origin: <http://www/foo%2Ehtml> against <about:blank> +PASS Parsing origin: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing origin: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing origin: <http://foo:80/> against <about:blank> +PASS Parsing origin: <http://foo:81/> against <about:blank> +FAIL Parsing origin: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Parsing origin: <https://foo:443/> against <about:blank> +PASS Parsing origin: <https://foo:80/> against <about:blank> +PASS Parsing origin: <ftp://foo:21/> against <about:blank> +PASS Parsing origin: <ftp://foo:80/> against <about:blank> +PASS Parsing origin: <gopher://foo:70/> against <about:blank> +PASS Parsing origin: <gopher://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:80/> against <about:blank> +PASS Parsing origin: <ws://foo:81/> against <about:blank> +PASS Parsing origin: <ws://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:815/> against <about:blank> +PASS Parsing origin: <wss://foo:80/> against <about:blank> +PASS Parsing origin: <wss://foo:81/> against <about:blank> +PASS Parsing origin: <wss://foo:443/> against <about:blank> +PASS Parsing origin: <wss://foo:815/> against <about:blank> +PASS Parsing origin: <http:/example.com/> against <about:blank> +PASS Parsing origin: <ftp:/example.com/> against <about:blank> +PASS Parsing origin: <https:/example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <about:blank> +PASS Parsing origin: <ws:/example.com/> against <about:blank> +PASS Parsing origin: <wss:/example.com/> against <about:blank> +PASS Parsing origin: <data:/example.com/> against <about:blank> +PASS Parsing origin: <javascript:/example.com/> against <about:blank> +FAIL Parsing origin: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <about:blank> +PASS Parsing origin: <ftp:example.com/> against <about:blank> +PASS Parsing origin: <https:example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <about:blank> +PASS Parsing origin: <ws:example.com/> against <about:blank> +PASS Parsing origin: <wss:example.com/> against <about:blank> +PASS Parsing origin: <data:example.com/> against <about:blank> +PASS Parsing origin: <javascript:example.com/> against <about:blank> +FAIL Parsing origin: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/@www.example.com> against <about:blank> +PASS Parsing origin: <http://@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://@pple.com> against <about:blank> +PASS Parsing origin: <http::b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://www.@pple.com> against <about:blank> +PASS Parsing origin: <http://:@www.example.com> against <about:blank> +PASS Parsing origin: </> against <http://www.example.com/test> +PASS Parsing origin: </test.txt> against <http://www.example.com/test> +PASS Parsing origin: <.> against <http://www.example.com/test> +PASS Parsing origin: <..> against <http://www.example.com/test> +PASS Parsing origin: <test.txt> against <http://www.example.com/test> +PASS Parsing origin: <./test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <中/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Parsing origin: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing origin: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing origin: <https://x/�?�#�> against <about:blank> +PASS Parsing origin: <http://Go.com> against <http://other.com/> +FAIL Parsing origin: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Parsing origin: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing origin: <http://./> against <about:blank> +PASS Parsing origin: <http://../> against <about:blank> +PASS Parsing origin: <http://0..0x300/> against <about:blank> +PASS Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Parsing origin: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Parsing origin: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <#x> against <data:,> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <#x> against <about:blank> +FAIL Parsing origin: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing origin: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing origin: </some/path> against <http://user@example.org/smth> +PASS Parsing origin: <> against <http://user:pass@example.org:21/smth> +PASS Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing origin: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <about:/../> against <about:blank> +PASS Parsing origin: <data:/../> against <about:blank> +PASS Parsing origin: <javascript:/../> against <about:blank> +FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <x> against <sc://ñ> +FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing origin: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <http:> against <http://example.org/foo/bar> +FAIL Parsing origin: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing origin: <http://192.168.257> against <http://other.com/> +PASS Parsing origin: <http://192.168.257.com> against <http://other.com/> +PASS Parsing origin: <http://256> against <http://other.com/> +PASS Parsing origin: <http://256.com> against <http://other.com/> +PASS Parsing origin: <http://999999999> against <http://other.com/> +PASS Parsing origin: <http://999999999.com> against <http://other.com/> +PASS Parsing origin: <http://10000000000.com> against <http://other.com/> +PASS Parsing origin: <http://4294967295> against <http://other.com/> +PASS Parsing origin: <http://0xffffffff> against <http://other.com/> +PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing origin: <https://0x.0x.0> against <about:blank> +PASS Parsing origin: <http://[1:0::]> against <http://example.net/> +FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <#x> against <sc://ñ> +PASS Parsing origin: <?x> against <sc://ñ> +FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt new file mode 100644 index 0000000..664b7f7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 219 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing origin: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing origin: <https://test:@test> against <about:blank> +PASS Parsing origin: <https://:@test> against <about:blank> +FAIL Parsing origin: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Parsing origin: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Parsing origin: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing origin: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing origin: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing origin: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "file://" +PASS Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing origin: <http://f:/c> against <http://example.org/foo/bar> +FAIL Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing origin: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing origin: <> against <http://example.org/foo/bar> +PASS Parsing origin: < > against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <:> against <http://example.org/foo/bar> +PASS Parsing origin: <:a> against <http://example.org/foo/bar> +PASS Parsing origin: <:/> against <http://example.org/foo/bar> +PASS Parsing origin: <:\> against <http://example.org/foo/bar> +PASS Parsing origin: <:#> against <http://example.org/foo/bar> +PASS Parsing origin: <#> against <http://example.org/foo/bar> +PASS Parsing origin: <#/> against <http://example.org/foo/bar> +PASS Parsing origin: <#\> against <http://example.org/foo/bar> +PASS Parsing origin: <#;?> against <http://example.org/foo/bar> +PASS Parsing origin: <?> against <http://example.org/foo/bar> +PASS Parsing origin: </> against <http://example.org/foo/bar> +PASS Parsing origin: <:23> against <http://example.org/foo/bar> +PASS Parsing origin: </:23> against <http://example.org/foo/bar> +PASS Parsing origin: <::> against <http://example.org/foo/bar> +PASS Parsing origin: <::23> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing origin: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Parsing origin: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Parsing origin: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "file://" +PASS Parsing origin: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <https:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing origin: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing origin: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> +PASS Parsing origin: <#β> against <http://example.org/foo/bar> +PASS Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Parsing origin: <http://example.com/././foo> against <about:blank> +PASS Parsing origin: <http://example.com/./.foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo/.> against <about:blank> +PASS Parsing origin: <http://example.com/foo/./> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing origin: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Parsing origin: <http://example.com////../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing origin: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing origin: <http://example.com/foo> against <about:blank> +PASS Parsing origin: <http://example.com/%20foo> against <about:blank> +PASS Parsing origin: <http://example.com/foo%> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> +PASS Parsing origin: <http://example.com/foo%41%7a> against <about:blank> +PASS Parsing origin: <http://example.com/foo %91> against <about:blank> +FAIL Parsing origin: <http://example.com/foo%00%51> against <about:blank> assert_equals: origin expected "http://example.com" but got "null" +PASS Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing origin: <http://example.com/foo bar> against <about:blank> +PASS Parsing origin: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing origin: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing origin: <http://example.com/你好你好> against <about:blank> +PASS Parsing origin: <http://example.com/‥/foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo> against <about:blank> +PASS Parsing origin: <http://example.com//foo//bar> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Parsing origin: <data:test# »> against <about:blank> +PASS Parsing origin: <http://www.google.com> against <about:blank> +PASS Parsing origin: <http://192.0x00A80001> against <about:blank> +PASS Parsing origin: <http://www/foo%2Ehtml> against <about:blank> +PASS Parsing origin: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing origin: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing origin: <http://foo:80/> against <about:blank> +PASS Parsing origin: <http://foo:81/> against <about:blank> +FAIL Parsing origin: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Parsing origin: <https://foo:443/> against <about:blank> +PASS Parsing origin: <https://foo:80/> against <about:blank> +PASS Parsing origin: <ftp://foo:21/> against <about:blank> +PASS Parsing origin: <ftp://foo:80/> against <about:blank> +PASS Parsing origin: <gopher://foo:70/> against <about:blank> +PASS Parsing origin: <gopher://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:80/> against <about:blank> +PASS Parsing origin: <ws://foo:81/> against <about:blank> +PASS Parsing origin: <ws://foo:443/> against <about:blank> +PASS Parsing origin: <ws://foo:815/> against <about:blank> +PASS Parsing origin: <wss://foo:80/> against <about:blank> +PASS Parsing origin: <wss://foo:81/> against <about:blank> +PASS Parsing origin: <wss://foo:443/> against <about:blank> +PASS Parsing origin: <wss://foo:815/> against <about:blank> +PASS Parsing origin: <http:/example.com/> against <about:blank> +PASS Parsing origin: <ftp:/example.com/> against <about:blank> +PASS Parsing origin: <https:/example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:/example.com/> against <about:blank> +PASS Parsing origin: <ws:/example.com/> against <about:blank> +PASS Parsing origin: <wss:/example.com/> against <about:blank> +PASS Parsing origin: <data:/example.com/> against <about:blank> +PASS Parsing origin: <javascript:/example.com/> against <about:blank> +FAIL Parsing origin: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:example.com/> against <about:blank> +PASS Parsing origin: <ftp:example.com/> against <about:blank> +PASS Parsing origin: <https:example.com/> against <about:blank> +FAIL Parsing origin: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Parsing origin: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Parsing origin: <gopher:example.com/> against <about:blank> +PASS Parsing origin: <ws:example.com/> against <about:blank> +PASS Parsing origin: <wss:example.com/> against <about:blank> +PASS Parsing origin: <data:example.com/> against <about:blank> +PASS Parsing origin: <javascript:example.com/> against <about:blank> +FAIL Parsing origin: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <http:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/@www.example.com> against <about:blank> +PASS Parsing origin: <http://@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://@pple.com> against <about:blank> +PASS Parsing origin: <http::b@www.example.com> against <about:blank> +PASS Parsing origin: <http:/:b@www.example.com> against <about:blank> +PASS Parsing origin: <http://:b@www.example.com> against <about:blank> +PASS Parsing origin: <http:a:@www.example.com> against <about:blank> +PASS Parsing origin: <http:/a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://a:@www.example.com> against <about:blank> +PASS Parsing origin: <http://www.@pple.com> against <about:blank> +PASS Parsing origin: <http://:@www.example.com> against <about:blank> +PASS Parsing origin: </> against <http://www.example.com/test> +PASS Parsing origin: </test.txt> against <http://www.example.com/test> +PASS Parsing origin: <.> against <http://www.example.com/test> +PASS Parsing origin: <..> against <http://www.example.com/test> +PASS Parsing origin: <test.txt> against <http://www.example.com/test> +PASS Parsing origin: <./test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <../../test.txt> against <http://www.example.com/test> +PASS Parsing origin: <中/test.txt> against <http://www.example.com/test> +PASS Parsing origin: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <//www.example2.com> against <http://www.example.com/test> +PASS Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Parsing origin: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing origin: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing origin: <https://x/�?�#�> against <about:blank> +PASS Parsing origin: <http://Go.com> against <http://other.com/> +FAIL Parsing origin: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Parsing origin: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing origin: <http://./> against <about:blank> +PASS Parsing origin: <http://../> against <about:blank> +PASS Parsing origin: <http://0..0x300/> against <about:blank> +PASS Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Parsing origin: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Parsing origin: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <#x> against <data:,> assert_equals: origin expected "null" but got "mailto://" +PASS Parsing origin: <#x> against <about:blank> +FAIL Parsing origin: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing origin: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing origin: </some/path> against <http://user@example.org/smth> +PASS Parsing origin: <> against <http://user:pass@example.org:21/smth> +PASS Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing origin: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <about:/../> against <about:blank> +PASS Parsing origin: <data:/../> against <about:blank> +PASS Parsing origin: <javascript:/../> against <about:blank> +FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <x> against <sc://ñ> +FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing origin: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing origin: <http:> against <http://example.org/foo/bar> +FAIL Parsing origin: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing origin: <http://192.168.257> against <http://other.com/> +PASS Parsing origin: <http://192.168.257.com> against <http://other.com/> +PASS Parsing origin: <http://256> against <http://other.com/> +PASS Parsing origin: <http://256.com> against <http://other.com/> +PASS Parsing origin: <http://999999999> against <http://other.com/> +PASS Parsing origin: <http://999999999.com> against <http://other.com/> +PASS Parsing origin: <http://10000000000.com> against <http://other.com/> +PASS Parsing origin: <http://4294967295> against <http://other.com/> +PASS Parsing origin: <http://0xffffffff> against <http://other.com/> +PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing origin: <https://0x.0x.0> against <about:blank> +PASS Parsing origin: <http://[1:0::]> against <http://example.net/> +FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +PASS Parsing origin: <#x> against <sc://ñ> +PASS Parsing origin: <?x> against <sc://ñ> +FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-xhtml-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-xhtml-expected.txt new file mode 100644 index 0000000..aa856e2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/a-element-xhtml-expected.txt
@@ -0,0 +1,486 @@ +This is a testharness.js-based test. +Found 473 tests; 302 PASS, 171 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing: <a: foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com" +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c" +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20# e" +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo" +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/" +FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/" +FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/" +FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/" +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/" +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html" +PASS Parsing: <C|/foo/bar> against <file:///tmp/mock/path> +PASS Parsing: </C|\foo\bar> against <file:///tmp/mock/path> +PASS Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q" +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +FAIL Parsing: <file:/example.com/> against <about:blank> assert_equals: href expected "file:///example.com/" but got "file://example.com/" +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http://user@/www.example.com> against <about:blank> +FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com" +FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com" +FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com" +FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com" +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com" +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/" +FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/" +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +FAIL Parsing: <file:...> against <http://www.example.com/test> assert_equals: href expected "file:///..." but got "file://.../" +FAIL Parsing: <file:..> against <http://www.example.com/test> assert_equals: href expected "file:///" but got "file://../" +FAIL Parsing: <file:a> against <http://www.example.com/test> assert_equals: href expected "file:///a" but got "file://a/" +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/" +FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/" +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +FAIL Parsing: <http://zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/" +FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/" +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/" +FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/" +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/" +FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/" +FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/" +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/" +FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/" +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/" +FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/" +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x" +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got "" +FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got "" +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got "" +FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got "" +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got "" +FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got "" +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got "" +FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got "" +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1" +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/" +FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/" +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/" +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/" +PASS Parsing: <http://0xffffffff> against <http://other.com/> +FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/" +FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/" +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +PASS Parsing: <..> against <file:///C:/> +PASS Parsing: <..> against <file:///> +PASS Parsing: </> against <file:///C:/a/b> +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file:///D:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file:///D:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +FAIL Parsing: <file:\\\\?fox> against <about:blank> assert_equals: href expected "file:///?fox" but got "file://%3Ffox/" +FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:///#guppy" but got "file://%23guppy/" +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:///localhost//cat" but got "file://localhost//cat" +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file:///mouse" but got "file://mouse/" +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file:///C:/" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file:///C:/#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file:///C:/?" +PASS Parsing: <C|/> against <file://host/dir/file> +PASS Parsing: <C|\> against <file://host/dir/file> +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file:///C:/a" +PASS Parsing: <file://example.net/C:/> against <about:blank> +PASS Parsing: <file://1.2.3.4/C:/> against <about:blank> +PASS Parsing: <file://[1::8]/C:/> against <about:blank> +PASS Parsing: <file:/C|/> against <about:blank> +PASS Parsing: <file://C|/> against <about:blank> +PASS Parsing: <file:> against <about:blank> +FAIL Parsing: <file:?q=v> against <about:blank> assert_equals: href expected "file:///?q=v" but got "file://%3Fq%3Dv/" +FAIL Parsing: <file:#frag> against <about:blank> assert_equals: href expected "file:///#frag" but got "file://%23frag/" +PASS Parsing: <http://[1:0::]> against <http://example.net/> +FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/" +FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/" +FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/" +FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/" +FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/" +FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/" +FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/" +FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/" +FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?" +FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#" +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1" +FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1" +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:" +FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:" +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/failure-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/failure-expected.txt new file mode 100644 index 0000000..8c5ca0477 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/failure-expected.txt
@@ -0,0 +1,235 @@ +This is a testharness.js-based test. +Found 231 tests; 93 PASS, 138 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +FAIL URL's href: file://example:1/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example:1/ should throw +PASS sendBeacon(): file://example:1/ should throw +FAIL Location's href: file://example:1/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:1/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example:1/ should throw +FAIL URL's href: file://example:test/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example:test/ should throw +PASS sendBeacon(): file://example:test/ should throw +FAIL Location's href: file://example:test/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example:test/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example:test/ should throw +FAIL URL's href: file://example%/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://example%/ should throw +PASS sendBeacon(): file://example%/ should throw +FAIL Location's href: file://example%/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://example%/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://example%/ should throw +FAIL URL's href: file://[example]/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: file://[example]/ should throw +PASS sendBeacon(): file://[example]/ should throw +FAIL Location's href: file://[example]/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'file://[example]/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): file://[example]/ should throw +FAIL URL's href: http://user:pass@/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://user:pass@/ should throw +PASS sendBeacon(): http://user:pass@/ should throw +FAIL Location's href: http://user:pass@/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user:pass@/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://user:pass@/ should throw +FAIL URL's href: http://foo:-80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://foo:-80/ should throw +PASS sendBeacon(): http://foo:-80/ should throw +FAIL Location's href: http://foo:-80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://foo:-80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://foo:-80/ should throw +FAIL URL's href: http:/:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/:@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://user@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://user@/www.example.com should throw +PASS sendBeacon(): http://user@/www.example.com should throw +FAIL Location's href: http://user@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://user@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://user@/www.example.com should throw +FAIL URL's href: http:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://@/www.example.com should throw +PASS sendBeacon(): http://@/www.example.com should throw +FAIL Location's href: http://@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://@/www.example.com should throw +FAIL URL's href: https:@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https:@/www.example.com should throw +PASS sendBeacon(): https:@/www.example.com should throw +FAIL Location's href: https:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https:@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https:@/www.example.com should throw +FAIL URL's href: http:a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): http:a:b@/www.example.com should throw +FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://a:b@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://a:b@/www.example.com should throw +PASS sendBeacon(): http://a:b@/www.example.com should throw +FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://a:b@/www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://a:b@/www.example.com should throw +FAIL URL's href: http::@/www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http::@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http::@/www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http::@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http::@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:@:www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http:/@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: http:/@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): http:/@:www.example.com should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: http:/@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): http:/@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://@:www.example.com should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://@:www.example.com should throw +PASS sendBeacon(): http://@:www.example.com should throw +FAIL Location's href: http://@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://@:www.example.com' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://@:www.example.com should throw +FAIL URL's href: https://� should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://� should throw +PASS sendBeacon(): https://� should throw +FAIL Location's href: https://� should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://�' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://� should throw +FAIL URL's href: https://%EF%BF%BD should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://%EF%BF%BD should throw +PASS sendBeacon(): https://%EF%BF%BD should throw +FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://%EF%BF%BD' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://%EF%BF%BD should throw +FAIL URL's href: https://x x:12 should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: https://x x:12 should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +FAIL sendBeacon(): https://x x:12 should throw assert_throws: function "() => self.navigator.sendBeacon(test.input)" did not throw +FAIL Location's href: https://x x:12 should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): https://x x:12 should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: http://[www.google.com]/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://[www.google.com]/ should throw +PASS sendBeacon(): http://[www.google.com]/ should throw +FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://[www.google.com]/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://[www.google.com]/ should throw +FAIL URL's href: sc://\0/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://\0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://\0/ should throw +FAIL Location's href: sc://\0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://\0/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc:// / should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc:// / should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc:// / should throw +FAIL Location's href: sc:// / should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc:// / should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://@/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://@/ should throw +FAIL Location's href: sc://@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://@/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://te@s:t@/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://te@s:t@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://te@s:t@/ should throw +FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://te@s:t@/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://:/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://:/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://:/ should throw +FAIL Location's href: sc://:/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://:/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://:12/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://:12/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://:12/ should throw +FAIL Location's href: sc://:12/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://:12/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://[/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://[/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://[/ should throw +FAIL Location's href: sc://[/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://[/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://\/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://\/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://\/ should throw +FAIL Location's href: sc://\/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://\/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: sc://]/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: sc://]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): sc://]/ should throw +FAIL Location's href: sc://]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): sc://]/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +FAIL URL's href: ftp://example.com%80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: ftp://example.com%80/ should throw +PASS sendBeacon(): ftp://example.com%80/ should throw +FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): ftp://example.com%80/ should throw +FAIL URL's href: ftp://example.com%A0/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: ftp://example.com%A0/ should throw +PASS sendBeacon(): ftp://example.com%A0/ should throw +FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'ftp://example.com%A0/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): ftp://example.com%A0/ should throw +FAIL URL's href: https://example.com%80/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://example.com%80/ should throw +PASS sendBeacon(): https://example.com%80/ should throw +FAIL Location's href: https://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%80/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://example.com%80/ should throw +FAIL URL's href: https://example.com%A0/ should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://example.com%A0/ should throw +PASS sendBeacon(): https://example.com%A0/ should throw +FAIL Location's href: https://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://example.com%A0/' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://example.com%A0/ should throw +FAIL URL's href: https://[0::0::0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0::0::0] should throw +PASS sendBeacon(): https://[0::0::0] should throw +FAIL Location's href: https://[0::0::0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0::0::0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0::0::0] should throw +FAIL URL's href: https://[0:.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:.0] should throw +PASS sendBeacon(): https://[0:.0] should throw +FAIL Location's href: https://[0:.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:.0] should throw +FAIL URL's href: https://[0:0:] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:0:] should throw +PASS sendBeacon(): https://[0:0:] should throw +FAIL Location's href: https://[0:0:] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:0:]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:0:] should throw +FAIL URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1:2:3:4:5:6:7.0.0.0.1]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw +FAIL URL's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.00.0.0.0] should throw +PASS sendBeacon(): https://[0:1.00.0.0.0] should throw +FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.00.0.0.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.00.0.0.0] should throw +FAIL URL's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.290.0.0.0] should throw +PASS sendBeacon(): https://[0:1.290.0.0.0] should throw +FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.290.0.0.0]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.290.0.0.0] should throw +FAIL URL's href: https://[0:1.23.23] should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: https://[0:1.23.23] should throw +PASS sendBeacon(): https://[0:1.23.23] should throw +FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'https://[0:1.23.23]' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): https://[0:1.23.23] should throw +FAIL URL's href: http://? should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://? should throw +PASS sendBeacon(): http://? should throw +FAIL Location's href: http://? should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://?' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://? should throw +FAIL URL's href: http://# should throw assert_throws: function "() => url.href = test.input" did not throw +PASS XHR: http://# should throw +PASS sendBeacon(): http://# should throw +FAIL Location's href: http://# should throw assert_throws: function "() => self[0].location = test.input" threw object "SyntaxError: Failed to set the 'href' property on 'Location': 'http://#' is not a valid URL." ("SyntaxError") expected object "TypeError" ("TypeError") +PASS window.open(): http://# should throw +FAIL URL's href: non-special://[:80/ should throw assert_throws: function "() => url.href = test.input" did not throw +FAIL XHR: non-special://[:80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw +PASS sendBeacon(): non-special://[:80/ should throw +FAIL Location's href: non-special://[:80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw +FAIL window.open(): non-special://[:80/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-constructor-expected.txt new file mode 100644 index 0000000..c21a0c2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-constructor-expected.txt
@@ -0,0 +1,532 @@ +This is a testharness.js-based test. +Found 477 tests; 366 PASS, 111 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS URL.searchParams getter +PASS URL.searchParams updating, clearing +PASS URL.searchParams setter, invalid values +PASS URL.searchParams and URL.search setters, update propagation +PASS Loading data… +PASS Parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Parsing: <https://test:@test> against <about:blank> +PASS Parsing: <https://:@test> against <about:blank> +FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x" +FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x" +PASS Parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Parsing: < foo.com > against <http://example.org/foo/bar> +FAIL Parsing: <a: foo.com> against <http://example.org/foo/bar> assert_equals: href expected "a: foo.com" but got "file:///A:/%20foo.com" +PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <lolscheme:x x#x x> against <about:blank> +PASS Parsing: <http://f:/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f: /c> against <http://example.org/foo/bar> +PASS Parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar> +PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar> +FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> +PASS Parsing: <> against <http://example.org/foo/bar> +PASS Parsing: < > against <http://example.org/foo/bar> +PASS Parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <:> against <http://example.org/foo/bar> +PASS Parsing: <:a> against <http://example.org/foo/bar> +PASS Parsing: <:/> against <http://example.org/foo/bar> +PASS Parsing: <:\> against <http://example.org/foo/bar> +PASS Parsing: <:#> against <http://example.org/foo/bar> +PASS Parsing: <#> against <http://example.org/foo/bar> +PASS Parsing: <#/> against <http://example.org/foo/bar> +PASS Parsing: <#\> against <http://example.org/foo/bar> +PASS Parsing: <#;?> against <http://example.org/foo/bar> +PASS Parsing: <?> against <http://example.org/foo/bar> +PASS Parsing: </> against <http://example.org/foo/bar> +PASS Parsing: <:23> against <http://example.org/foo/bar> +PASS Parsing: </:23> against <http://example.org/foo/bar> +PASS Parsing: <::> against <http://example.org/foo/bar> +PASS Parsing: <::23> against <http://example.org/foo/bar> +FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//" +PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +PASS Parsing: <foo:/> against <http://example.org/foo/bar> +PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar> +FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////" +FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/" +FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///" +FAIL Parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: href expected "c:/foo" but got "file:///C:/foo" +PASS Parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> +FAIL Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" +PASS Parsing: <file://example:1/> against <about:blank> +PASS Parsing: <file://example:test/> against <about:blank> +PASS Parsing: <file://example%/> against <about:blank> +PASS Parsing: <file://[example]/> against <about:blank> +PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar> +PASS Parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <https:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar> +PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar> +PASS Parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar> +FAIL Parsing: <#β> against <http://example.org/foo/bar> assert_equals: href expected "http://example.org/foo/bar#%CE%B2" but got "http://example.org/foo/bar#β" +PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar> +FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html" +FAIL Parsing: < File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html" +PASS Parsing: <C|/foo/bar> against <file:///tmp/mock/path> +PASS Parsing: </C|\foo\bar> against <file:///tmp/mock/path> +PASS Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> +PASS Parsing: <//server/file> against <file:///tmp/mock/path> +PASS Parsing: <\\server\file> against <file:///tmp/mock/path> +PASS Parsing: </\server/file> against <file:///tmp/mock/path> +PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path> +PASS Parsing: <file:///home/me> against <file:///tmp/mock/path> +PASS Parsing: <//> against <file:///tmp/mock/path> +PASS Parsing: <///> against <file:///tmp/mock/path> +PASS Parsing: <///test> against <file:///tmp/mock/path> +PASS Parsing: <file://test> against <file:///tmp/mock/path> +FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/" +FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test" +PASS Parsing: <test> against <file:///tmp/mock/path> +PASS Parsing: <file:test> against <file:///tmp/mock/path> +PASS Parsing: <http://example.com/././foo> against <about:blank> +PASS Parsing: <http://example.com/./.foo> against <about:blank> +PASS Parsing: <http://example.com/foo/.> against <about:blank> +PASS Parsing: <http://example.com/foo/./> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Parsing: <http://example.com/foo/%2e> against <about:blank> +FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2" +FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar" +PASS Parsing: <http://example.com////../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Parsing: <http://example.com/foo> against <about:blank> +PASS Parsing: <http://example.com/%20foo> against <about:blank> +PASS Parsing: <http://example.com/foo%> against <about:blank> +PASS Parsing: <http://example.com/foo%2> against <about:blank> +PASS Parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank> +FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz" +PASS Parsing: <http://example.com/foo %91> against <about:blank> +FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL +PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Parsing: <http://example.com/foo bar> against <about:blank> +PASS Parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Parsing: <http://example.com/你好你好> against <about:blank> +PASS Parsing: <http://example.com/‥/foo> against <about:blank> +PASS Parsing: <http://example.com//foo> against <about:blank> +PASS Parsing: <http://example.com//foo//bar> against <about:blank> +PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +FAIL Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> assert_equals: href expected "http://www.google.com/foo?bar=baz# %C2%BB" but got "http://www.google.com/foo?bar=baz# »" +PASS Parsing: <data:test# »> against <about:blank> +PASS Parsing: <http://www.google.com> against <about:blank> +PASS Parsing: <http://192.0x00A80001> against <about:blank> +FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html" +PASS Parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Parsing: <http://user:pass@/> against <about:blank> +PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Parsing: <http://foo:80/> against <about:blank> +PASS Parsing: <http://foo:81/> against <about:blank> +FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got "" +PASS Parsing: <http://foo:-80/> against <about:blank> +PASS Parsing: <https://foo:443/> against <about:blank> +PASS Parsing: <https://foo:80/> against <about:blank> +PASS Parsing: <ftp://foo:21/> against <about:blank> +PASS Parsing: <ftp://foo:80/> against <about:blank> +PASS Parsing: <gopher://foo:70/> against <about:blank> +PASS Parsing: <gopher://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:80/> against <about:blank> +PASS Parsing: <ws://foo:81/> against <about:blank> +PASS Parsing: <ws://foo:443/> against <about:blank> +PASS Parsing: <ws://foo:815/> against <about:blank> +PASS Parsing: <wss://foo:80/> against <about:blank> +PASS Parsing: <wss://foo:81/> against <about:blank> +PASS Parsing: <wss://foo:443/> against <about:blank> +PASS Parsing: <wss://foo:815/> against <about:blank> +PASS Parsing: <http:/example.com/> against <about:blank> +PASS Parsing: <ftp:/example.com/> against <about:blank> +PASS Parsing: <https:/example.com/> against <about:blank> +PASS Parsing: <madeupscheme:/example.com/> against <about:blank> +FAIL Parsing: <file:/example.com/> against <about:blank> assert_equals: href expected "file:///example.com/" but got "file://example.com/" +PASS Parsing: <ftps:/example.com/> against <about:blank> +PASS Parsing: <gopher:/example.com/> against <about:blank> +PASS Parsing: <ws:/example.com/> against <about:blank> +PASS Parsing: <wss:/example.com/> against <about:blank> +PASS Parsing: <data:/example.com/> against <about:blank> +PASS Parsing: <javascript:/example.com/> against <about:blank> +PASS Parsing: <mailto:/example.com/> against <about:blank> +PASS Parsing: <http:example.com/> against <about:blank> +PASS Parsing: <ftp:example.com/> against <about:blank> +PASS Parsing: <https:example.com/> against <about:blank> +PASS Parsing: <madeupscheme:example.com/> against <about:blank> +PASS Parsing: <ftps:example.com/> against <about:blank> +PASS Parsing: <gopher:example.com/> against <about:blank> +PASS Parsing: <ws:example.com/> against <about:blank> +PASS Parsing: <wss:example.com/> against <about:blank> +PASS Parsing: <data:example.com/> against <about:blank> +PASS Parsing: <javascript:example.com/> against <about:blank> +PASS Parsing: <mailto:example.com/> against <about:blank> +PASS Parsing: <http:@www.example.com> against <about:blank> +PASS Parsing: <http:/@www.example.com> against <about:blank> +PASS Parsing: <http://@www.example.com> against <about:blank> +PASS Parsing: <http:a:b@www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Parsing: <http://a:b@www.example.com> against <about:blank> +PASS Parsing: <http://@pple.com> against <about:blank> +PASS Parsing: <http::b@www.example.com> against <about:blank> +PASS Parsing: <http:/:b@www.example.com> against <about:blank> +PASS Parsing: <http://:b@www.example.com> against <about:blank> +PASS Parsing: <http:/:@/www.example.com> against <about:blank> +PASS Parsing: <http://user@/www.example.com> against <about:blank> +PASS Parsing: <http:@/www.example.com> against <about:blank> +PASS Parsing: <http:/@/www.example.com> against <about:blank> +PASS Parsing: <http://@/www.example.com> against <about:blank> +PASS Parsing: <https:@/www.example.com> against <about:blank> +PASS Parsing: <http:a:b@/www.example.com> against <about:blank> +PASS Parsing: <http:/a:b@/www.example.com> against <about:blank> +PASS Parsing: <http://a:b@/www.example.com> against <about:blank> +PASS Parsing: <http::@/www.example.com> against <about:blank> +PASS Parsing: <http:a:@www.example.com> against <about:blank> +PASS Parsing: <http:/a:@www.example.com> against <about:blank> +PASS Parsing: <http://a:@www.example.com> against <about:blank> +PASS Parsing: <http://www.@pple.com> against <about:blank> +PASS Parsing: <http:@:www.example.com> against <about:blank> +PASS Parsing: <http:/@:www.example.com> against <about:blank> +PASS Parsing: <http://@:www.example.com> against <about:blank> +PASS Parsing: <http://:@www.example.com> against <about:blank> +PASS Parsing: </> against <http://www.example.com/test> +PASS Parsing: </test.txt> against <http://www.example.com/test> +PASS Parsing: <.> against <http://www.example.com/test> +PASS Parsing: <..> against <http://www.example.com/test> +PASS Parsing: <test.txt> against <http://www.example.com/test> +PASS Parsing: <./test.txt> against <http://www.example.com/test> +PASS Parsing: <../test.txt> against <http://www.example.com/test> +PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Parsing: <../../test.txt> against <http://www.example.com/test> +PASS Parsing: <中/test.txt> against <http://www.example.com/test> +PASS Parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Parsing: <//www.example2.com> against <http://www.example.com/test> +FAIL Parsing: <file:...> against <http://www.example.com/test> assert_equals: href expected "file:///..." but got "file://.../" +FAIL Parsing: <file:..> against <http://www.example.com/test> assert_equals: href expected "file:///" but got "file://../" +FAIL Parsing: <file:a> against <http://www.example.com/test> assert_equals: href expected "file:///a" but got "file://a/" +PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/> +FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://[]> against <http://other.com/> +PASS Parsing: <http://[:]> against <http://other.com/> +FAIL Parsing: <http://GOO goo.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Parsing: <http://www.foo。bar.com> against <http://other.com/> +PASS Parsing: <http://zyx.com> against <http://other.com/> +PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> +PASS Parsing: <https://�> against <about:blank> +PASS Parsing: <https://%EF%BF%BD> against <about:blank> +FAIL Parsing: <https://x/�?�#�> against <about:blank> assert_equals: href expected "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD" but got "https://x/%EF%BF%BD?%EF%BF%BD#\ufffd" +PASS Parsing: <http://Go.com> against <http://other.com/> +FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://%00.com> against <http://other.com/> +PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> +PASS Parsing: <http://你好你好> against <http://other.com/> +FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/" +FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got "" +PASS Parsing: <http://%zz%66%a.com> against <http://other.com/> +PASS Parsing: <http://%25> against <http://other.com/> +PASS Parsing: <http://hello%00> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Parsing: <http://192.168.0.257> against <http://other.com/> +PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> +FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <https://x x:12> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Parsing: <http://./> against <about:blank> +PASS Parsing: <http://../> against <about:blank> +PASS Parsing: <http://0..0x300/> against <about:blank> +PASS Parsing: <http://[www.google.com]/> against <about:blank> +PASS Parsing: <http://[google.com]> against <http://other.com/> +PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/> +FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +PASS Parsing: <#> against <test:test> +PASS Parsing: <#x> against <mailto:x@x.com> +PASS Parsing: <#x> against <data:,> +PASS Parsing: <#x> against <about:blank> +PASS Parsing: <#> against <test:test?test> +PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Parsing: </some/path> against <http://user@example.org/smth> +PASS Parsing: <> against <http://user:pass@example.org:21/smth> +PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth> +PASS Parsing: <i> against <sc:sd> +PASS Parsing: <i> against <sc:sd/sd> +PASS Parsing: <i> against <sc:/pa/pa> +FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i" +PASS Parsing: <../i> against <sc:sd> +PASS Parsing: <../i> against <sc:sd/sd> +PASS Parsing: <../i> against <sc:/pa/pa> +FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +PASS Parsing: </i> against <sc:sd> +PASS Parsing: </i> against <sc:sd/sd> +PASS Parsing: </i> against <sc:/pa/pa> +FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i" +PASS Parsing: <?i> against <sc:sd> +PASS Parsing: <?i> against <sc:sd/sd> +PASS Parsing: <?i> against <sc:/pa/pa> +FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +PASS Parsing: <#i> against <sc:sd> +PASS Parsing: <#i> against <sc:sd/sd> +PASS Parsing: <#i> against <sc:/pa/pa> +FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got "" +FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa" +FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../" +FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../" +FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../" +FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../" +FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got "" +FAIL Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;<=>^_`{|}~" but got "" +FAIL Parsing: <sc://\0/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc:// /> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got "" +FAIL Parsing: <sc://@/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://:/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://:12/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://[/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://\/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <sc://]/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL +PASS Parsing: <sc:\../> against <about:blank> +PASS Parsing: <sc::a@example.net> against <about:blank> +PASS Parsing: <wow:%NBD> against <about:blank> +PASS Parsing: <wow:%1G> against <about:blank> +PASS Parsing: <ftp://example.com%80/> against <about:blank> +PASS Parsing: <ftp://example.com%A0/> against <about:blank> +PASS Parsing: <https://example.com%80/> against <about:blank> +PASS Parsing: <https://example.com%A0/> against <about:blank> +PASS Parsing: <ftp://%e2%98%83> against <about:blank> +PASS Parsing: <https://%e2%98%83> against <about:blank> +PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <http://example.org/foo/bar> +PASS Parsing: <http:> against <https://example.org/foo/bar> +PASS Parsing: <sc:> against <https://example.org/foo/bar> +PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Parsing: <http://192.168.257> against <http://other.com/> +PASS Parsing: <http://192.168.257.com> against <http://other.com/> +PASS Parsing: <http://256> against <http://other.com/> +PASS Parsing: <http://256.com> against <http://other.com/> +PASS Parsing: <http://999999999> against <http://other.com/> +PASS Parsing: <http://999999999.com> against <http://other.com/> +PASS Parsing: <http://10000000000> against <http://other.com/> +PASS Parsing: <http://10000000000.com> against <http://other.com/> +PASS Parsing: <http://4294967295> against <http://other.com/> +PASS Parsing: <http://4294967296> against <http://other.com/> +PASS Parsing: <http://0xffffffff> against <http://other.com/> +PASS Parsing: <http://0xffffffff1> against <http://other.com/> +PASS Parsing: <http://256.256.256.256> against <http://other.com/> +PASS Parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Parsing: <https://0x.0x.0> against <about:blank> +PASS Parsing: <file:///C%3A/> against <about:blank> +PASS Parsing: <file:///C%7C/> against <about:blank> +PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html> +PASS Parsing: <..> against <file:///C:/> +PASS Parsing: <..> against <file:///> +PASS Parsing: </> against <file:///C:/a/b> +FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file:///D:/" +FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file:///D:/" +PASS Parsing: <..> against <file:///ab:/> +PASS Parsing: <..> against <file:///1:/> +PASS Parsing: <> against <file:///test?test#test> +PASS Parsing: <file:> against <file:///test?test#test> +PASS Parsing: <?x> against <file:///test?test#test> +PASS Parsing: <file:?x> against <file:///test?test#test> +PASS Parsing: <#x> against <file:///test?test#test> +PASS Parsing: <file:#x> against <file:///test?test#test> +PASS Parsing: <file:\\//> against <about:blank> +PASS Parsing: <file:\\\\> against <about:blank> +FAIL Parsing: <file:\\\\?fox> against <about:blank> Failed to construct 'URL': Invalid URL +FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:///#guppy" but got "file://%23guppy/" +FAIL Parsing: <file://spider///> against <about:blank> assert_equals: href expected "file://spider/" but got "file://spider///" +FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost//" +PASS Parsing: <file:///localhost//cat> against <about:blank> +FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:///localhost//cat" but got "file://localhost//cat" +FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file:///" but got "file://localhost///" +FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file:///mouse" but got "file://mouse/" +PASS Parsing: <\//pig> against <file://lion/> +FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:///pig" but got "file://localhost//pig" +FAIL Parsing: </..//localhost//pig> against <file://lion/> assert_equals: href expected "file://lion/localhost//pig" but got "file://lion//localhost//pig" +PASS Parsing: <file://> against <file://ape/> +PASS Parsing: </rooibos> against <file://tea/> +PASS Parsing: </?chai> against <file://tea/> +FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file:///C:" but got "file:///C:/" +FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file:///C:#" but got "file:///C:/#" +FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file:///C:?" but got "file:///C:/?" +PASS Parsing: <C|/> against <file://host/dir/file> +PASS Parsing: <C|\> against <file://host/dir/file> +PASS Parsing: <C> against <file://host/dir/file> +FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file:///C:/a" +PASS Parsing: <file://example.net/C:/> against <about:blank> +PASS Parsing: <file://1.2.3.4/C:/> against <about:blank> +PASS Parsing: <file://[1::8]/C:/> against <about:blank> +PASS Parsing: <file:/C|/> against <about:blank> +PASS Parsing: <file://C|/> against <about:blank> +PASS Parsing: <file:> against <about:blank> +FAIL Parsing: <file:?q=v> against <about:blank> Failed to construct 'URL': Invalid URL +FAIL Parsing: <file:#frag> against <about:blank> assert_equals: href expected "file:///#frag" but got "file://%23frag/" +PASS Parsing: <http://[1:0::]> against <http://example.net/> +PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> +PASS Parsing: <https://[0::0::0]> against <about:blank> +PASS Parsing: <https://[0:.0]> against <about:blank> +PASS Parsing: <https://[0:0:]> against <about:blank> +PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> +PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank> +PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank> +PASS Parsing: <https://[0:1.23.23]> against <about:blank> +PASS Parsing: <http://?> against <about:blank> +PASS Parsing: <http://#> against <about:blank> +FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got "" +FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//" +FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL +FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL +FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/" +FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got "" +FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got "" +FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got "" +FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got "" +FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got "" +FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got "" +FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got "" +FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got "" +FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got "" +PASS Parsing: <urn:ietf:rfc:2648> against <about:blank> +PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> +FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got "" +FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got "" +FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/" +FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/" +FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got "" +FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws: function "function () { + bURL(expected.input, expected.base) + }" did not throw +PASS Parsing: <blob:https://example.com:443/> against <about:blank> +PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank> +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-origin-expected.txt new file mode 100644 index 0000000..af23b30 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-origin-expected.txt
@@ -0,0 +1,307 @@ +This is a testharness.js-based test. +Found 294 tests; 217 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +PASS Origin parsing: <http://example . +org> against <http://example.org/foo/bar> +PASS Origin parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> +PASS Origin parsing: <https://test:@test> against <about:blank> +PASS Origin parsing: <https://:@test> against <about:blank> +FAIL Origin parsing: <non-special://test:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +FAIL Origin parsing: <non-special://:@test/x> against <about:blank> assert_equals: origin expected "null" but got "non-special://" +PASS Origin parsing: <http:foo.com> against <http://example.org/foo/bar> +PASS Origin parsing: < :foo.com +> against <http://example.org/foo/bar> +PASS Origin parsing: < foo.com > against <http://example.org/foo/bar> +FAIL Origin parsing: <a: foo.com> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "file://" +PASS Origin parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> +PASS Origin parsing: <http://f:/c> against <http://example.org/foo/bar> +FAIL Origin parsing: <http://f:0/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +FAIL Origin parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> assert_equals: origin expected "http://f:0" but got "http://f" +PASS Origin parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> +PASS Origin parsing: <http://f: +/c> against <http://example.org/foo/bar> +PASS Origin parsing: <> against <http://example.org/foo/bar> +PASS Origin parsing: < > against <http://example.org/foo/bar> +PASS Origin parsing: <:foo.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <:foo.com\> against <http://example.org/foo/bar> +PASS Origin parsing: <:> against <http://example.org/foo/bar> +PASS Origin parsing: <:a> against <http://example.org/foo/bar> +PASS Origin parsing: <:/> against <http://example.org/foo/bar> +PASS Origin parsing: <:\> against <http://example.org/foo/bar> +PASS Origin parsing: <:#> against <http://example.org/foo/bar> +PASS Origin parsing: <#> against <http://example.org/foo/bar> +PASS Origin parsing: <#/> against <http://example.org/foo/bar> +PASS Origin parsing: <#\> against <http://example.org/foo/bar> +PASS Origin parsing: <#;?> against <http://example.org/foo/bar> +PASS Origin parsing: <?> against <http://example.org/foo/bar> +PASS Origin parsing: </> against <http://example.org/foo/bar> +PASS Origin parsing: <:23> against <http://example.org/foo/bar> +PASS Origin parsing: </:23> against <http://example.org/foo/bar> +PASS Origin parsing: <::> against <http://example.org/foo/bar> +PASS Origin parsing: <::23> against <http://example.org/foo/bar> +FAIL Origin parsing: <foo://> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +PASS Origin parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> +PASS Origin parsing: <http::@c:29> against <http://example.org/foo/bar> +PASS Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> +PASS Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar> +PASS Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar> +PASS Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> +FAIL Origin parsing: <foo:/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "foo://" +FAIL Origin parsing: <c:/foo> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "file://" +PASS Origin parsing: <//foo/bar> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> +PASS Origin parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> +PASS Origin parsing: <[61:24:74]:98> against <http://example.org/foo/bar> +PASS Origin parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[2001::1]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> +PASS Origin parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> +PASS Origin parsing: <http:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ftp:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <https:/example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ws:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <wss:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <data:/example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <javascript:/example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <mailto:/example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ftp:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <https:example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <ws:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <wss:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <data:example.com/> against <http://example.org/foo/bar> +PASS Origin parsing: <javascript:example.com/> against <http://example.org/foo/bar> +FAIL Origin parsing: <mailto:example.com/> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: </a/b/c> against <http://example.org/foo/bar> +PASS Origin parsing: </a/ /c> against <http://example.org/foo/bar> +PASS Origin parsing: </a%2fc> against <http://example.org/foo/bar> +PASS Origin parsing: </a/%2f/c> against <http://example.org/foo/bar> +PASS Origin parsing: <#β> against <http://example.org/foo/bar> +PASS Origin parsing: <data:text/html,test#test> against <http://example.org/foo/bar> +FAIL Origin parsing: <tel:1234567890> against <http://example.org/foo/bar> assert_equals: origin expected "null" but got "tel://" +PASS Origin parsing: <http://example.com/././foo> against <about:blank> +PASS Origin parsing: <http://example.com/./.foo> against <about:blank> +PASS Origin parsing: <http://example.com/foo/.> against <about:blank> +PASS Origin parsing: <http://example.com/foo/./> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../> against <about:blank> +PASS Origin parsing: <http://example.com/foo/..bar> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../ton> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> +PASS Origin parsing: <http://example.com/foo/../../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/../../../ton> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e%2> against <about:blank> +PASS Origin parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> +PASS Origin parsing: <http://example.com////../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar//../..> against <about:blank> +PASS Origin parsing: <http://example.com/foo/bar//..> against <about:blank> +PASS Origin parsing: <http://example.com/foo> against <about:blank> +PASS Origin parsing: <http://example.com/%20foo> against <about:blank> +PASS Origin parsing: <http://example.com/foo%> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2zbar> against <about:blank> +PASS Origin parsing: <http://example.com/foo%2©zbar> against <about:blank> +PASS Origin parsing: <http://example.com/foo%41%7a> against <about:blank> +PASS Origin parsing: <http://example.com/foo %91> against <about:blank> +FAIL Origin parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL +PASS Origin parsing: <http://example.com/(%28:%3A%29)> against <about:blank> +PASS Origin parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> +PASS Origin parsing: <http://example.com/foo bar> against <about:blank> +PASS Origin parsing: <http://example.com\\foo\\bar> against <about:blank> +PASS Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> +PASS Origin parsing: <http://example.com/@asdf%40> against <about:blank> +PASS Origin parsing: <http://example.com/你好你好> against <about:blank> +PASS Origin parsing: <http://example.com/‥/foo> against <about:blank> +PASS Origin parsing: <http://example.com//foo> against <about:blank> +PASS Origin parsing: <http://example.com//foo//bar> against <about:blank> +PASS Origin parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> +PASS Origin parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> +PASS Origin parsing: <data:test# »> against <about:blank> +PASS Origin parsing: <http://www.google.com> against <about:blank> +PASS Origin parsing: <http://192.0x00A80001> against <about:blank> +PASS Origin parsing: <http://www/foo%2Ehtml> against <about:blank> +PASS Origin parsing: <http://www/foo/%2E/html> against <about:blank> +PASS Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> +PASS Origin parsing: <http:\\www.google.com\foo> against <about:blank> +PASS Origin parsing: <http://foo:80/> against <about:blank> +PASS Origin parsing: <http://foo:81/> against <about:blank> +FAIL Origin parsing: <httpa://foo:80/> against <about:blank> assert_equals: origin expected "null" but got "httpa://" +PASS Origin parsing: <https://foo:443/> against <about:blank> +PASS Origin parsing: <https://foo:80/> against <about:blank> +PASS Origin parsing: <ftp://foo:21/> against <about:blank> +PASS Origin parsing: <ftp://foo:80/> against <about:blank> +PASS Origin parsing: <gopher://foo:70/> against <about:blank> +PASS Origin parsing: <gopher://foo:443/> against <about:blank> +PASS Origin parsing: <ws://foo:80/> against <about:blank> +PASS Origin parsing: <ws://foo:81/> against <about:blank> +PASS Origin parsing: <ws://foo:443/> against <about:blank> +PASS Origin parsing: <ws://foo:815/> against <about:blank> +PASS Origin parsing: <wss://foo:80/> against <about:blank> +PASS Origin parsing: <wss://foo:81/> against <about:blank> +PASS Origin parsing: <wss://foo:443/> against <about:blank> +PASS Origin parsing: <wss://foo:815/> against <about:blank> +PASS Origin parsing: <http:/example.com/> against <about:blank> +PASS Origin parsing: <ftp:/example.com/> against <about:blank> +PASS Origin parsing: <https:/example.com/> against <about:blank> +FAIL Origin parsing: <madeupscheme:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:/example.com/> against <about:blank> +PASS Origin parsing: <ws:/example.com/> against <about:blank> +PASS Origin parsing: <wss:/example.com/> against <about:blank> +PASS Origin parsing: <data:/example.com/> against <about:blank> +PASS Origin parsing: <javascript:/example.com/> against <about:blank> +FAIL Origin parsing: <mailto:/example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:example.com/> against <about:blank> +PASS Origin parsing: <ftp:example.com/> against <about:blank> +PASS Origin parsing: <https:example.com/> against <about:blank> +FAIL Origin parsing: <madeupscheme:example.com/> against <about:blank> assert_equals: origin expected "null" but got "madeupscheme://" +FAIL Origin parsing: <ftps:example.com/> against <about:blank> assert_equals: origin expected "null" but got "ftps://" +PASS Origin parsing: <gopher:example.com/> against <about:blank> +PASS Origin parsing: <ws:example.com/> against <about:blank> +PASS Origin parsing: <wss:example.com/> against <about:blank> +PASS Origin parsing: <data:example.com/> against <about:blank> +PASS Origin parsing: <javascript:example.com/> against <about:blank> +FAIL Origin parsing: <mailto:example.com/> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <http:@www.example.com> against <about:blank> +PASS Origin parsing: <http:/@www.example.com> against <about:blank> +PASS Origin parsing: <http://@www.example.com> against <about:blank> +PASS Origin parsing: <http:a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http:/a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://a:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://@pple.com> against <about:blank> +PASS Origin parsing: <http::b@www.example.com> against <about:blank> +PASS Origin parsing: <http:/:b@www.example.com> against <about:blank> +PASS Origin parsing: <http://:b@www.example.com> against <about:blank> +PASS Origin parsing: <http:a:@www.example.com> against <about:blank> +PASS Origin parsing: <http:/a:@www.example.com> against <about:blank> +PASS Origin parsing: <http://a:@www.example.com> against <about:blank> +PASS Origin parsing: <http://www.@pple.com> against <about:blank> +PASS Origin parsing: <http://:@www.example.com> against <about:blank> +PASS Origin parsing: </> against <http://www.example.com/test> +PASS Origin parsing: </test.txt> against <http://www.example.com/test> +PASS Origin parsing: <.> against <http://www.example.com/test> +PASS Origin parsing: <..> against <http://www.example.com/test> +PASS Origin parsing: <test.txt> against <http://www.example.com/test> +PASS Origin parsing: <./test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../aaa/test.txt> against <http://www.example.com/test> +PASS Origin parsing: <../../test.txt> against <http://www.example.com/test> +PASS Origin parsing: <中/test.txt> against <http://www.example.com/test> +PASS Origin parsing: <http://www.example2.com> against <http://www.example.com/test> +PASS Origin parsing: <//www.example2.com> against <http://www.example.com/test> +PASS Origin parsing: <http://ExAmPlE.CoM> against <http://other.com/> +PASS Origin parsing: <http://GOOgoo.com> against <http://other.com/> +PASS Origin parsing: <http://www.foo。bar.com> against <http://other.com/> +PASS Origin parsing: <https://x/�?�#�> against <about:blank> +PASS Origin parsing: <http://Go.com> against <http://other.com/> +FAIL Origin parsing: <http://你好你好> against <http://other.com/> assert_equals: origin expected "http://你好你好" but got "http://xn--6qqa088eba" +FAIL Origin parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: origin expected "https://faß.example" but got "https://fass.example" +PASS Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> +PASS Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> +PASS Origin parsing: <http://0Xc0.0250.01> against <http://other.com/> +PASS Origin parsing: <http://./> against <about:blank> +PASS Origin parsing: <http://../> against <about:blank> +PASS Origin parsing: <http://0..0x300/> against <about:blank> +PASS Origin parsing: <http://foo:💩@example.com/bar> against <http://other.com/> +FAIL Origin parsing: <#> against <test:test> assert_equals: origin expected "null" but got "test://" +FAIL Origin parsing: <#x> against <mailto:x@x.com> assert_equals: origin expected "null" but got "mailto://" +PASS Origin parsing: <#x> against <data:,> +PASS Origin parsing: <#x> against <about:blank> +FAIL Origin parsing: <#> against <test:test?test> assert_equals: origin expected "null" but got "test://" +PASS Origin parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> +PASS Origin parsing: <https://@@@example> against <http://doesnotmatter/> +PASS Origin parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/> +PASS Origin parsing: </some/path> against <http://user@example.org/smth> +PASS Origin parsing: <> against <http://user:pass@example.org:21/smth> +PASS Origin parsing: </some/path> against <http://user:pass@example.org:21/smth> +FAIL Origin parsing: <i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <../i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: </i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <?i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:sd> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:sd/sd> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:/pa/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc://ho/pa> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#i> against <sc:///pa/pa> assert_equals: origin expected "null" but got "sc://" +PASS Origin parsing: <about:/../> against <about:blank> +PASS Origin parsing: <data:/../> against <about:blank> +PASS Origin parsing: <javascript:/../> against <about:blank> +FAIL Origin parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://" +FAIL Origin parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <wow:%NBD> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Origin parsing: <wow:%1G> against <about:blank> assert_equals: origin expected "null" but got "wow://" +FAIL Origin parsing: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h" +FAIL Origin parsing: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h" +PASS Origin parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> +PASS Origin parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> +PASS Origin parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> +PASS Origin parsing: <h t +t\rp://h o +s\rt:9 0 +0\r0/p a +t\rh?q u +e\rry#f r +a\rg> against <about:blank> +PASS Origin parsing: <?a=b&c=d> against <http://example.org/foo/bar> +PASS Origin parsing: <??a=b&c=d> against <http://example.org/foo/bar> +PASS Origin parsing: <http:> against <http://example.org/foo/bar> +FAIL Origin parsing: <sc:> against <https://example.org/foo/bar> assert_equals: origin expected "null" but got "sc://" +PASS Origin parsing: <http://foo.bar/baz?qux#foobar> against <about:blank> +PASS Origin parsing: <http://192.168.257> against <http://other.com/> +PASS Origin parsing: <http://192.168.257.com> against <http://other.com/> +PASS Origin parsing: <http://256> against <http://other.com/> +PASS Origin parsing: <http://256.com> against <http://other.com/> +PASS Origin parsing: <http://999999999> against <http://other.com/> +PASS Origin parsing: <http://999999999.com> against <http://other.com/> +PASS Origin parsing: <http://10000000000.com> against <http://other.com/> +PASS Origin parsing: <http://4294967295> against <http://other.com/> +PASS Origin parsing: <http://0xffffffff> against <http://other.com/> +PASS Origin parsing: <http://256.256.256.256.256> against <http://other.com/> +PASS Origin parsing: <https://0x.0x.0> against <about:blank> +PASS Origin parsing: <http://[1:0::]> against <http://example.net/> +FAIL Origin parsing: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://" +FAIL Origin parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL +FAIL Origin parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://" +FAIL Origin parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://" +FAIL Origin parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://" +FAIL Origin parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://" +FAIL Origin parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://" +FAIL Origin parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://" +FAIL Origin parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://" +FAIL Origin parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://" +FAIL Origin parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://" +FAIL Origin parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://" +FAIL Origin parsing: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://" +FAIL Origin parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-setters-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-setters-expected.txt new file mode 100644 index 0000000..721366e --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/url-setters-expected.txt
@@ -0,0 +1,596 @@ +This is a testharness.js-based test. +Found 571 tests; 245 PASS, 326 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Loading data… +FAIL URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net" but got "file:///B:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net" but got "file:///B:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net" but got "file:///B:///A://example.net" +PASS URL: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS <a>: Setting <javascript:alert(1)>.protocol = 'defuse' +PASS <area>: Setting <javascript:alert(1)>.protocol = 'defuse' +FAIL URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net" but got "file:///B:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net" but got "file:///B:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net" but got "file:///B:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net" but got "bc0+-.:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net" but got "bc0+-.:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net" but got "bc0+-.:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net" but got "file:///A://example.net" +FAIL URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL <a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL <area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file assert_equals: expected "http://test@example.net/" but got "file://test%40example.net/" +FAIL URL: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL <a>: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL <area>: Setting <gopher://example.net:1234>.protocol = 'file' assert_equals: expected "gopher://example.net:1234/" but got "file://example.net:1234/" +FAIL URL: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file:///X:/x@example.net:1234/" +FAIL <a>: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file:///X:/x@example.net:1234/" +FAIL <area>: Setting <wss://x:x@example.net:1234>.protocol = 'file' assert_equals: expected "wss://x:x@example.net:1234/" but got "file:///X:/x@example.net:1234/" +FAIL URL: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL <a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL <area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host assert_equals: expected "file:///" but got "http://localhost/" +FAIL URL: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL <a>: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL <area>: Setting <file:///test>.protocol = 'gopher' assert_equals: expected "file:///test" but got "gopher://test/" +FAIL URL: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL <a>: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL <area>: Setting <file:>.protocol = 'wss' assert_equals: expected "file:///" but got "wss:" +FAIL URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "file:///B://example.net/" +FAIL <a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "file:///B://example.net/" +FAIL <area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "file:///B://example.net/" +FAIL URL: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "file:///S://hi/path" +FAIL <a>: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "file:///S://hi/path" +FAIL <area>: Setting <file://hi/path>.protocol = 's' assert_equals: expected "file://hi/path" but got "file:///S://hi/path" +FAIL URL: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "file:///S://example.net/" +FAIL <a>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "file:///S://example.net/" +FAIL <area>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "file:///S://example.net/" +FAIL URL: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL <a>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL <area>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/" +FAIL URL: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL <a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL <area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/" +FAIL URL: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL <a>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL <area>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/" +FAIL URL: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL <a>: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL <area>: Setting <ssh://example.net>.protocol = 'file' assert_equals: expected "ssh://example.net" but got "file://example.net/" +FAIL URL: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +FAIL <a>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +FAIL <area>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/" +PASS URL: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS <a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS <area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored +PASS URL: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS <a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS <area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored +PASS URL: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS <a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS <area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username +PASS URL: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS <a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS <area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username +PASS URL: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS <a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS <area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username +PASS URL: Setting <javascript:alert(1)>.username = 'wario' +PASS <a>: Setting <javascript:alert(1)>.username = 'wario' +PASS <area>: Setting <javascript:alert(1)>.username = 'wario' +PASS URL: Setting <http://example.net>.username = 'me' +PASS <a>: Setting <http://example.net>.username = 'me' +PASS <area>: Setting <http://example.net>.username = 'me' +PASS URL: Setting <http://:secret@example.net>.username = 'me' +PASS <a>: Setting <http://:secret@example.net>.username = 'me' +PASS <area>: Setting <http://:secret@example.net>.username = 'me' +PASS URL: Setting <http://me@example.net>.username = '' +PASS <a>: Setting <http://me@example.net>.username = '' +PASS <area>: Setting <http://me@example.net>.username = '' +PASS URL: Setting <http://me:secret@example.net>.username = '' +PASS <a>: Setting <http://me:secret@example.net>.username = '' +PASS <area>: Setting <http://me:secret@example.net>.username = '' +FAIL URL: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <a>: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <area>: Setting <http://example.net>.username = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +PASS URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS URL: Setting <sc:///>.username = 'x' +PASS <a>: Setting <sc:///>.username = 'x' +PASS <area>: Setting <sc:///>.username = 'x' +FAIL URL: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.username = 'wario' assert_equals: expected "javascript://wario@x/" but got "javascript://x/" +PASS URL: Setting <file://test/>.username = 'test' +PASS <a>: Setting <file://test/>.username = 'test' +PASS <area>: Setting <file://test/>.username = 'test' +PASS URL: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS <a>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS <area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password +PASS URL: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS <a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS <area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password +PASS URL: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS <a>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS <area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net>.password = 'secret' +PASS <a>: Setting <http://example.net>.password = 'secret' +PASS <area>: Setting <http://example.net>.password = 'secret' +PASS URL: Setting <http://me@example.net>.password = 'secret' +PASS <a>: Setting <http://me@example.net>.password = 'secret' +PASS <area>: Setting <http://me@example.net>.password = 'secret' +PASS URL: Setting <http://:secret@example.net>.password = '' +PASS <a>: Setting <http://:secret@example.net>.password = '' +PASS <area>: Setting <http://:secret@example.net>.password = '' +PASS URL: Setting <http://me:secret@example.net>.password = '' +PASS <a>: Setting <http://me:secret@example.net>.password = '' +PASS <area>: Setting <http://me:secret@example.net>.password = '' +FAIL URL: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <a>: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +FAIL <area>: Setting <http://example.net>.password = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" +PASS URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. +PASS URL: Setting <sc:///>.password = 'x' +PASS <a>: Setting <sc:///>.password = 'x' +PASS <area>: Setting <sc:///>.password = 'x' +FAIL URL: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.password = 'bowser' assert_equals: expected "javascript://:bowser@x/" but got "javascript://x/" +PASS URL: Setting <file://test/>.password = 'test' +PASS <a>: Setting <file://test/>.password = 'test' +PASS <area>: Setting <file://test/>.password = 'test' +FAIL URL: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.host = '@' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://x/" +FAIL URL: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +FAIL <a>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +FAIL <area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/" +PASS URL: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS <a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS <area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host +PASS URL: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS <a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS <area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net>.host = 'example.com:8080' +PASS <a>: Setting <http://example.net>.host = 'example.com:8080' +PASS <area>: Setting <http://example.net>.host = 'example.com:8080' +PASS URL: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +PASS <a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +PASS <area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value +FAIL URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +FAIL <a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +FAIL <area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/" +PASS URL: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +PASS <a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +PASS <area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes +FAIL URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "file://example.net/A:/foo" +FAIL <a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "file:///A:/foo" +FAIL <area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "file:///A:/foo" +PASS URL: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +PASS <a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +PASS <area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized +FAIL URL: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/" +PASS URL: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS <a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS <area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed +PASS URL: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS <a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS <area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed +PASS URL: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +PASS <a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +PASS <area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme +FAIL URL: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored +FAIL URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes +FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path" +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +PASS <a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +PASS <area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers +FAIL URL: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL <a>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL <area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path" +FAIL URL: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <a>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL <area>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/" +FAIL URL: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL <a>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL <area>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x/" +FAIL URL: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://y/>.host = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL URL: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <a>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <area>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL URL: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL <a>: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL <area>: Setting <sc://test@test/>.host = '' assert_equals: expected "test" but got "" +FAIL URL: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL <a>: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL <area>: Setting <sc://test:12/>.host = '' assert_equals: expected "test:12" but got "" +FAIL URL: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = ' +' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '\r' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "x" but got "" +FAIL URL: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://x/" +FAIL URL: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +FAIL <a>: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +FAIL <area>: Setting <sc://x/>.hostname = '@' assert_equals: expected "x" but got "" +PASS URL: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS <a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS <area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host +PASS URL: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS <a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS <area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password +PASS URL: Setting <http://example.net:8080>.hostname = 'example.com' +PASS <a>: Setting <http://example.net:8080>.hostname = 'example.com' +PASS <area>: Setting <http://example.net:8080>.hostname = 'example.com' +PASS URL: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +PASS <a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +PASS <area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes +FAIL URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL <area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo" +FAIL URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "file://example.net/A:/foo" +FAIL <a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "file:///A:/foo" +FAIL <area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host assert_equals: expected "a://example.net/foo" but got "file:///A:/foo" +PASS URL: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS <a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS <area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized +PASS URL: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +PASS <a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +PASS <area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com:8080/path" +FAIL URL: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL <a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL <area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.com::8080/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%2Fstuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%3Fstuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com%23stuff/path" +FAIL URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com%5Cstuff/path" +FAIL URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts assert_equals: expected "example.net" but got "" +FAIL URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[::1.2.3.4x]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[::102:3]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[::100:2]/" +FAIL URL: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL <a>: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL <area>: Setting <http://example.net/>.hostname = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[::1]/" +FAIL URL: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/" +FAIL <a>: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file:///X:/123/" +FAIL <area>: Setting <file://y/>.hostname = 'x:123' assert_equals: expected "file://y/" but got "file:///X:/123/" +FAIL URL: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://y/>.hostname = 'loc%41lhost' assert_equals: expected "file:///" but got "file://localhost/" +FAIL URL: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <a>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL <area>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x" +FAIL URL: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL <a>: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL <area>: Setting <sc://test@test/>.hostname = '' assert_equals: expected "test" but got "" +FAIL URL: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +FAIL <a>: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +FAIL <area>: Setting <sc://test:12/>.hostname = '' assert_equals: expected "test:12" but got "" +PASS URL: Setting <http://example.net>.port = '8080' +PASS <a>: Setting <http://example.net>.port = '8080' +PASS <area>: Setting <http://example.net>.port = '8080' +FAIL URL: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +FAIL <a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +FAIL <area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/" +PASS URL: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS <a>: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS <area>: Setting <http://example.net:8080>.port = '80' Default port number is removed +PASS URL: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS <a>: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS <area>: Setting <https://example.net:4433>.port = '443' Default port number is removed +PASS URL: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS <a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS <area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme +PASS URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored +PASS URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +PASS <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes +FAIL URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +FAIL <a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +FAIL <area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path" +PASS URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <a>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS <area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error +PASS URL: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +PASS <a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +PASS <area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers +FAIL URL: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL <a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL <area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path" +FAIL URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +FAIL <a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +FAIL <area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "example.net:8080" but got "" +PASS URL: Setting <file://test/>.port = '12' +PASS <a>: Setting <file://test/>.port = '12' +PASS <area>: Setting <file://test/>.port = '12' +FAIL URL: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <a>: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +FAIL <area>: Setting <file://localhost/>.port = '12' assert_equals: expected "file:///" but got "file://localhost/" +PASS URL: Setting <non-base:value>.port = '12' +PASS <a>: Setting <non-base:value>.port = '12' +PASS <area>: Setting <non-base:value>.port = '12' +PASS URL: Setting <sc:///>.port = '12' +PASS <a>: Setting <sc:///>.port = '12' +PASS <area>: Setting <sc:///>.port = '12' +FAIL URL: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL <a>: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL <area>: Setting <sc://x/>.port = '12' assert_equals: expected "sc://x:12/" but got "sc://x/" +FAIL URL: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +FAIL <a>: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +FAIL <area>: Setting <javascript://x/>.port = '12' assert_equals: expected "javascript://x:12/" but got "javascript://x/" +PASS URL: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +PASS <a>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +PASS <area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path +FAIL URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +FAIL <a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +FAIL <area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10" +PASS URL: Setting <https://example.net#nav>.pathname = 'home' +PASS <a>: Setting <https://example.net#nav>.pathname = 'home' +PASS <area>: Setting <https://example.net#nav>.pathname = 'home' +PASS URL: Setting <https://example.net#nav>.pathname = '../home' +PASS <a>: Setting <https://example.net#nav>.pathname = '../home' +PASS <area>: Setting <https://example.net#nav>.pathname = '../home' +PASS URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +PASS <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +PASS <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs +FAIL URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav" +FAIL URL: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9" +FAIL <a>: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9" +FAIL <area>: Setting <a:/>.pathname = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9" +FAIL URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +FAIL <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +FAIL <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9" +PASS URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS <a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS <area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded +PASS URL: Setting <http://example.net>.pathname = '#' # needs to be encoded +PASS <a>: Setting <http://example.net>.pathname = '#' # needs to be encoded +PASS <area>: Setting <http://example.net>.pathname = '#' # needs to be encoded +FAIL URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL <a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL <area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%3F" but got "sc://example.net" +FAIL URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL <a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL <area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme assert_equals: expected "sc://example.net/%23" but got "sc://example.net" +FAIL URL: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL <a>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL <area>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes assert_equals: expected "file://monkey/" but got "file://monkey//" +FAIL URL: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes assert_equals: expected "file:///" but got "file://////" +PASS <a>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes +PASS <area>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes +FAIL URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes assert_equals: expected "file:///" but got "file://///" +PASS <a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes +PASS <area>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes +PASS URL: Setting <https://example.net#nav>.search = 'lang=fr' +PASS <a>: Setting <https://example.net#nav>.search = 'lang=fr' +PASS <area>: Setting <https://example.net#nav>.search = 'lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' +FAIL URL: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +FAIL <a>: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +FAIL <area>: Setting <https://example.net?lang=en-US#nav>.search = '?' assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav" +PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '' +PASS URL: Setting <https://example.net?lang=en-US>.search = '' +PASS <a>: Setting <https://example.net?lang=en-US>.search = '' +PASS <area>: Setting <https://example.net?lang=en-US>.search = '' +PASS URL: Setting <https://example.net>.search = '' +PASS <a>: Setting <https://example.net>.search = '' +PASS <area>: Setting <https://example.net>.search = '' +FAIL URL: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" +FAIL <a>: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" +FAIL <area>: Setting <a:/>.search = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" +PASS URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is +PASS URL: Setting <https://example.net>.hash = 'main' +PASS <a>: Setting <https://example.net>.hash = 'main' +PASS <area>: Setting <https://example.net>.hash = 'main' +PASS URL: Setting <https://example.net#nav>.hash = 'main' +PASS <a>: Setting <https://example.net#nav>.hash = 'main' +PASS <area>: Setting <https://example.net#nav>.hash = 'main' +PASS URL: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS <a>: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS <area>: Setting <https://example.net?lang=en-US>.hash = '##nav' +PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' +FAIL URL: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +FAIL <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +FAIL <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US" +PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '' +PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '' +PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '' +FAIL URL: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~Éé" +FAIL <a>: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~Éé" +FAIL <area>: Setting <a:/>.hash = '\0 +\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%01%09%0A%0D%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~Éé" +FAIL URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +FAIL <a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +FAIL <area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89t%C3%A9" but got "http://example.net/#%c3%89té" +PASS URL: Setting <javascript:alert(1)>.hash = 'castle' +PASS <a>: Setting <javascript:alert(1)>.hash = 'castle' +PASS <area>: Setting <javascript:alert(1)>.hash = 'castle' +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/crash-on-zero-radius-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/crash-on-zero-radius-expected.txt index e4c41bf1..c7596ee 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/crash-on-zero-radius-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/crash-on-zero-radius-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/generated-gradients-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/generated-gradients-expected.txt index 1a559ff5..8b67268 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/generated-gradients-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/generated-gradients-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/radial-centered-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/radial-centered-expected.txt index 311c487..74121bc 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/radial-centered-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/radial-centered-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/simple-gradients-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/simple-gradients-expected.txt index 66b129d..36e93ec 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/gradients/simple-gradients-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/gradients/simple-gradients-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/rootlayerscrolls/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt new file mode 100644 index 0000000..97296481 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/crash-on-gradient-with-derived-color-expected.txt
@@ -0,0 +1 @@ +This test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/linear-gradient-currentcolor-expected.txt
@@ -0,0 +1 @@ +
diff --git a/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt new file mode 100644 index 0000000..75cf4f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win7/virtual/sharedarraybuffer/fast/css/number-parsing-crash-expected.txt
@@ -0,0 +1 @@ +This should not crash.
diff --git a/third_party/WebKit/LayoutTests/scrollbars/scrollbar-gradient-crash-expected.txt b/third_party/WebKit/LayoutTests/scrollbars/scrollbar-gradient-crash-expected.txt index f3f51ea..654ddf7f 100644 --- a/third_party/WebKit/LayoutTests/scrollbars/scrollbar-gradient-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/scrollbars/scrollbar-gradient-crash-expected.txt
@@ -1,2 +1 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. This test passes if it does not crash.
diff --git a/third_party/WebKit/LayoutTests/scrollbars/scrollbar-percent-padding-crash-expected.txt b/third_party/WebKit/LayoutTests/scrollbars/scrollbar-percent-padding-crash-expected.txt index a2919ad6..f2acb99 100644 --- a/third_party/WebKit/LayoutTests/scrollbars/scrollbar-percent-padding-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/scrollbars/scrollbar-percent-padding-crash-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead. Test for bug 86162: This tests that there is no crash when using percentage value for scrollbar's padding property. On success you should see a frame with scrollbars and one PASS message in it.
diff --git a/third_party/WebKit/LayoutTests/virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history-expected.txt b/third_party/WebKit/LayoutTests/virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history-expected.txt index 7cf8834..4b9f777a 100644 --- a/third_party/WebKit/LayoutTests/virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history-expected.txt
@@ -1,23 +1,7 @@ This is a testharness.js-based test. -FAIL history.pushState(): simple case assert_throws: function "() => { - history[method](new SharedArrayBuffer(), "dummy title"); - }" did not throw -FAIL history.pushState(): is interleaved correctly assert_throws: function "() => { - history[method]([ - { get x() { getter1Called = true; return 5; } }, - new SharedArrayBuffer(), - { get x() { getter2Called = true; return 5; } } - ], "dummy title"); - }" did not throw -FAIL history.replaceState(): simple case assert_throws: function "() => { - history[method](new SharedArrayBuffer(), "dummy title"); - }" did not throw -FAIL history.replaceState(): is interleaved correctly assert_throws: function "() => { - history[method]([ - { get x() { getter1Called = true; return 5; } }, - new SharedArrayBuffer(), - { get x() { getter2Called = true; return 5; } } - ], "dummy title"); - }" did not throw +PASS history.pushState(): simple case +PASS history.pushState(): is interleaved correctly +PASS history.replaceState(): simple case +PASS history.replaceState(): is interleaved correctly Harness: the test ran to completion.
diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h b/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h index 7da9c69..f4f5b3d 100644 --- a/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h
@@ -91,14 +91,29 @@ // has been the cause of at least one bug in the past. static constexpr uint32_t kWireFormatVersion = 17; + // This enumeration specifies whether we're serializing a value for storage; + // e.g. when writing to IndexedDB. This corresponds to the forStorage flag of + // the HTML spec: + // https://html.spec.whatwg.org/multipage/infrastructure.html#safe-passing-of-structured-data + enum StoragePolicy { + // Not persisted; used only during the execution of the browser. + kNotForStorage, + // May be written to disk and read during a subsequent execution of the + // browser. + kForStorage, + }; + struct SerializeOptions { STACK_ALLOCATED(); + + SerializeOptions() {} + explicit SerializeOptions(StoragePolicy for_storage) + : for_storage(for_storage) {} + Transferables* transferables = nullptr; WebBlobInfoArray* blob_info = nullptr; bool write_wasm_to_stream = false; - // Set when serializing a value for storage; e.g. when writing to - // IndexedDB. - bool for_storage = false; + StoragePolicy for_storage = kNotForStorage; }; static PassRefPtr<SerializedScriptValue> Serialize(v8::Isolate*, v8::Local<v8::Value>, @@ -238,10 +253,10 @@ CORE_EXPORT static inline PassRefPtr<SerializedScriptValue> NativeValue( v8::Isolate* isolate, v8::Local<v8::Value> value, + const SerializedScriptValue::SerializeOptions& options, ExceptionState& exception_state) { - return SerializedScriptValue::Serialize( - isolate, value, SerializedScriptValue::SerializeOptions(), - exception_state); + return SerializedScriptValue::Serialize(isolate, value, options, + exception_state); } };
diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp index dee9be5..18596854 100644 --- a/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp
@@ -52,7 +52,7 @@ transferables_(options.transferables), blob_info_array_(options.blob_info), inline_wasm_(options.write_wasm_to_stream), - for_storage_(options.for_storage) {} + for_storage_(options.for_storage == SerializedScriptValue::kForStorage) {} RefPtr<SerializedScriptValue> V8ScriptValueSerializer::Serialize( v8::Local<v8::Value> value,
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_methods.py b/third_party/WebKit/Source/bindings/scripts/v8_methods.py index 623c9511..eec4c47 100644 --- a/third_party/WebKit/Source/bindings/scripts/v8_methods.py +++ b/third_party/WebKit/Source/bindings/scripts/v8_methods.py
@@ -275,7 +275,7 @@ 'use_permissive_dictionary_conversion': 'PermissiveDictionaryConversion' in extended_attributes, 'v8_set_return_value': v8_set_return_value(interface.name, method, this_cpp_value), 'v8_set_return_value_for_main_world': v8_set_return_value(interface.name, method, this_cpp_value, for_main_world=True), - 'v8_value_to_local_cpp_value': v8_value_to_local_cpp_value(method, argument, index), + 'v8_value_to_local_cpp_value': v8_value_to_local_cpp_value(interface.name, method, argument, index), } context.update({ 'is_optional_without_default_value': @@ -370,13 +370,50 @@ } -def v8_value_to_local_cpp_value(method, argument, index, return_promise=False): +def v8_value_to_local_cpp_ssv_value(extended_attributes, idl_type, v8_value, variable_name, for_storage): + this_cpp_type = idl_type.cpp_type_args(extended_attributes=extended_attributes, raw_type=True) + + storage_policy = 'kForStorage' if for_storage else 'kNotForStorage' + arguments = ', '.join([ + 'info.GetIsolate()', + v8_value, + '{ssv}::SerializeOptions({ssv}::{storage_policy})', + 'exceptionState' + ]) + cpp_expression_format = 'NativeValueTraits<{ssv}>::NativeValue(%s)' % arguments + this_cpp_value = cpp_expression_format.format( + ssv='SerializedScriptValue', + storage_policy=storage_policy + ) + + return { + 'assign_expression': this_cpp_value, + 'check_expression': 'exceptionState.HadException()', + 'cpp_type': this_cpp_type, + 'cpp_name': variable_name, + 'declare_variable': False, + } + + +def v8_value_to_local_cpp_value(interface_name, method, argument, index, return_promise=False): extended_attributes = argument.extended_attributes idl_type = argument.idl_type name = argument.name + v8_value = 'info[%s]' % index + + # History.pushState and History.replaceState are explicitly specified as + # serializing the value for storage. The default is to not serialize for + # storage. See https://html.spec.whatwg.org/multipage/browsers.html#dom-history-pushstate + if idl_type.name == 'SerializedScriptValue': + for_storage = (interface_name == 'History' and + method.name in ('pushState', 'replaceState')) + return v8_value_to_local_cpp_ssv_value(extended_attributes, idl_type, + v8_value, name, + for_storage=for_storage) + if argument.is_variadic: return v8_value_to_local_cpp_variadic_value(method, argument, index, return_promise) - return idl_type.v8_value_to_local_cpp_value(extended_attributes, 'info[%s]' % index, + return idl_type.v8_value_to_local_cpp_value(extended_attributes, v8_value, name, declare_variable=False, use_exception_state=method.returns_promise)
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_types.py b/third_party/WebKit/Source/bindings/scripts/v8_types.py index 8e1b3e0..121779c 100644 --- a/third_party/WebKit/Source/bindings/scripts/v8_types.py +++ b/third_party/WebKit/Source/bindings/scripts/v8_types.py
@@ -606,6 +606,11 @@ elif 'Clamp' in extended_attributes: configuration = 'kClamp' arguments = ', '.join([v8_value, 'exceptionState', configuration]) + elif base_idl_type == 'SerializedScriptValue': + arguments = ', '.join([ + v8_value, + 'SerializedScriptValue::SerializeOptions(SerializedScriptValue::kNotForStorage)', + 'exceptionState']) elif idl_type.v8_conversion_needs_exception_state: arguments = ', '.join([v8_value, 'exceptionState']) else:
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp index 4f2ffcf..5be5593 100644 --- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp +++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
@@ -868,7 +868,7 @@ ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestObject", "serializedScriptValueAttribute"); // Prepare the value to be set. - RefPtr<SerializedScriptValue> cppValue = NativeValueTraits<SerializedScriptValue>::NativeValue(info.GetIsolate(), v8Value, exceptionState); + RefPtr<SerializedScriptValue> cppValue = NativeValueTraits<SerializedScriptValue>::NativeValue(info.GetIsolate(), v8Value, SerializedScriptValue::SerializeOptions(SerializedScriptValue::kNotForStorage), exceptionState); if (exceptionState.HadException()) return; @@ -6037,7 +6037,7 @@ } RefPtr<SerializedScriptValue> serializedScriptValueArg; - serializedScriptValueArg = NativeValueTraits<SerializedScriptValue>::NativeValue(info.GetIsolate(), info[0], exceptionState); + serializedScriptValueArg = NativeValueTraits<SerializedScriptValue>::NativeValue(info.GetIsolate(), info[0], SerializedScriptValue::SerializeOptions(SerializedScriptValue::kNotForStorage), exceptionState); if (exceptionState.HadException()) return;
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp index 203b4dc6..47144acf 100644 --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp
@@ -1295,12 +1295,11 @@ } else if (id == CSSValueRepeatingRadialGradient) { result = ConsumeRadialGradient(args, context->Mode(), kRepeating); } else if (id == CSSValueWebkitLinearGradient) { - context->CountDeprecation(UseCounter::kDeprecatedWebKitLinearGradient); + context->Count(UseCounter::kDeprecatedWebKitLinearGradient); result = ConsumeLinearGradient(args, context->Mode(), kNonRepeating, kCSSPrefixedLinearGradient); } else if (id == CSSValueWebkitRepeatingLinearGradient) { - context->CountDeprecation( - UseCounter::kDeprecatedWebKitRepeatingLinearGradient); + context->Count(UseCounter::kDeprecatedWebKitRepeatingLinearGradient); result = ConsumeLinearGradient(args, context->Mode(), kRepeating, kCSSPrefixedLinearGradient); } else if (id == CSSValueRepeatingLinearGradient) { @@ -1310,15 +1309,14 @@ result = ConsumeLinearGradient(args, context->Mode(), kNonRepeating, kCSSLinearGradient); } else if (id == CSSValueWebkitGradient) { - context->CountDeprecation(UseCounter::kDeprecatedWebKitGradient); + context->Count(UseCounter::kDeprecatedWebKitGradient); result = ConsumeDeprecatedGradient(args, context->Mode()); } else if (id == CSSValueWebkitRadialGradient) { - context->CountDeprecation(UseCounter::kDeprecatedWebKitRadialGradient); + context->Count(UseCounter::kDeprecatedWebKitRadialGradient); result = ConsumeDeprecatedRadialGradient(args, context->Mode(), kNonRepeating); } else if (id == CSSValueWebkitRepeatingRadialGradient) { - context->CountDeprecation( - UseCounter::kDeprecatedWebKitRepeatingRadialGradient); + context->Count(UseCounter::kDeprecatedWebKitRepeatingRadialGradient); result = ConsumeDeprecatedRadialGradient(args, context->Mode(), kRepeating); } else if (id == CSSValueConicGradient) { result = ConsumeConicGradient(args, context->Mode(), kNonRepeating);
diff --git a/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp b/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp index 67abf4c8..08b4653 100644 --- a/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp +++ b/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp
@@ -39,7 +39,7 @@ namespace blink { -static const float kOffScreenCanvasEmFontSize = 10.0; +static const float kOffScreenCanvasEmFontSize = 16.0; static const float kOffScreenCanvasRemFontSize = 16.0; FilterOperation::OperationType FilterOperationResolver::FilterOperationForType( @@ -218,7 +218,7 @@ Font font(font_description); CSSToLengthConversionData::FontSizes font_sizes( kOffScreenCanvasEmFontSize, kOffScreenCanvasRemFontSize, &font); - CSSToLengthConversionData::ViewportSize viewport_size(1024, 768); + CSSToLengthConversionData::ViewportSize viewport_size(0, 0); CSSToLengthConversionData conversion_data(&ComputedStyle::InitialStyle(), font_sizes, viewport_size, 1);
diff --git a/third_party/WebKit/Source/core/frame/Deprecation.cpp b/third_party/WebKit/Source/core/frame/Deprecation.cpp index eceee5ec..6ad05bf 100644 --- a/third_party/WebKit/Source/core/frame/Deprecation.cpp +++ b/third_party/WebKit/Source/core/frame/Deprecation.cpp
@@ -414,24 +414,6 @@ return willBeRemoved("SVGPathElement.getPathSegAtLength", M62, "5638783282184192"); - case UseCounter::kDeprecatedWebKitLinearGradient: - return replacedBy("-webkit-linear-gradient", "linear-gradient"); - - case UseCounter::kDeprecatedWebKitRepeatingLinearGradient: - return replacedBy("-webkit-repeating-linear-gradient", - "repeating-linear-gradient"); - - case UseCounter::kDeprecatedWebKitGradient: - return replacedBy("-webkit-gradient", - "linear-gradient or radial-gradient"); - - case UseCounter::kDeprecatedWebKitRadialGradient: - return replacedBy("-webkit-radial-gradient", "radial-gradient"); - - case UseCounter::kDeprecatedWebKitRepeatingRadialGradient: - return replacedBy("-webkit-repeating-radial-gradient", - "repeating-radial-gradient"); - // Features that aren't deprecated don't have a deprecation message. default: return String();
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp b/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp index aa1a9c6b..977ae00 100644 --- a/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp +++ b/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
@@ -106,8 +106,8 @@ const ImageBitmapOptions default_options; HTMLImageElement* image_element = HTMLImageElement::Create(*Document::Create()); - ImageResourceContent* image = - ImageResourceContent::Create(StaticBitmapImage::Create(image_).Get()); + ImageResourceContent* image = ImageResourceContent::CreateLoaded( + StaticBitmapImage::Create(image_).Get()); image_element->SetImageResource(image); Optional<IntRect> crop_rect = @@ -149,7 +149,8 @@ TEST_F(ImageBitmapTest, ImageBitmapSourceChanged) { HTMLImageElement* image = HTMLImageElement::Create(*Document::Create()); ImageResourceContent* original_image_resource = - ImageResourceContent::Create(StaticBitmapImage::Create(image_).Get()); + ImageResourceContent::CreateLoaded( + StaticBitmapImage::Create(image_).Get()); image->SetImageResource(original_image_resource); const ImageBitmapOptions default_options; @@ -163,8 +164,8 @@ ASSERT_NE(image_bitmap->BitmapImage()->ImageForCurrentFrame(), original_image_resource->GetImage()->ImageForCurrentFrame()); - ImageResourceContent* new_image_resource = - ImageResourceContent::Create(StaticBitmapImage::Create(image2_).Get()); + ImageResourceContent* new_image_resource = ImageResourceContent::CreateLoaded( + StaticBitmapImage::Create(image2_).Get()); image->SetImageResource(new_image_resource); { @@ -241,7 +242,8 @@ image->width() * raster_image_info.bytesPerPixel(), 5, 5); ImageResourceContent* original_image_resource = - ImageResourceContent::Create(StaticBitmapImage::Create(image).Get()); + ImageResourceContent::CreateLoaded( + StaticBitmapImage::Create(image).Get()); image_element->SetImageResource(original_image_resource); Optional<IntRect> crop_rect = IntRect(0, 0, image->width(), image->height()); @@ -352,7 +354,8 @@ image->width() * raster_image_info.bytesPerPixel(), 5, 5); ImageResourceContent* source_image_resource = - ImageResourceContent::Create(StaticBitmapImage::Create(image).Get()); + ImageResourceContent::CreateLoaded( + StaticBitmapImage::Create(image).Get()); image_element->SetImageResource(source_image_resource); Optional<IntRect> crop_rect = IntRect(0, 0, image->width(), image->height());
diff --git a/third_party/WebKit/Source/core/frame/Settings.cpp b/third_party/WebKit/Source/core/frame/Settings.cpp index afb571b..17debdf 100644 --- a/third_party/WebKit/Source/core/frame/Settings.cpp +++ b/third_party/WebKit/Source/core/frame/Settings.cpp
@@ -61,14 +61,7 @@ #endif Settings::Settings() -#if DEBUG_TEXT_AUTOSIZING_ON_DESKTOP - : text_autosizing_window_size_override_(320, 480), - text_autosizing_enabled_(true) -#else - : text_autosizing_enabled_(false) -#endif - SETTINGS_INITIALIZER_LIST { -} + : text_autosizing_enabled_(false) SETTINGS_INITIALIZER_LIST {} std::unique_ptr<Settings> Settings::Create() { return WTF::WrapUnique(new Settings);
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp index 6046a9a..6ad4929 100644 --- a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
@@ -372,8 +372,9 @@ blink::DeviceScaleFactorDeprecated(layout_image->GetFrame()); std::pair<Image*, float> broken_image_and_image_scale_factor = ImageResourceContent::BrokenImage(device_scale_factor); - ImageResourceContent* new_image_resource = ImageResourceContent::Create( - broken_image_and_image_scale_factor.first); + ImageResourceContent* new_image_resource = + ImageResourceContent::CreateLoaded( + broken_image_and_image_scale_factor.first); layout_image->ImageResource()->SetImageResource(new_image_resource); } if (layout_image_resource->HasImage())
diff --git a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp index 2a4f851..afb5e8c6 100644 --- a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp +++ b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp
@@ -309,11 +309,6 @@ } } -#ifdef DEBUG_DOM_PATCH_SUPPORT - dumpMap(oldMap, "OLD"); - dumpMap(newMap, "NEW"); -#endif - return std::make_pair(old_map, new_map); } @@ -552,22 +547,6 @@ } } -#ifdef DEBUG_DOM_PATCH_SUPPORT -static String nodeName(Node* node) { - if (node->document().isXHTMLDocument()) - return node->nodeName(); - return node->nodeName().lower(); -} - -void DOMPatchSupport::dumpMap(const ResultMap& map, const String& name) { - fprintf(stderr, "\n\n"); - for (size_t i = 0; i < map.size(); ++i) - fprintf(stderr, "%s[%lu]: %s (%p) - [%lu]\n", name.utf8().data(), i, - map[i].first ? nodeName(map[i].first->m_node).utf8().data() : "", - map[i].first, map[i].second); -} -#endif - DEFINE_TRACE(DOMPatchSupport::Digest) { visitor->Trace(node_); visitor->Trace(children_);
diff --git a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h index 2d8ffe84..26fd66e 100644 --- a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h +++ b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h
@@ -86,9 +86,6 @@ ExceptionState&); bool RemoveChildAndMoveToNew(Digest*, ExceptionState&); void MarkNodeAsUsed(Digest*); -#ifdef DEBUG_DOM_PATCH_SUPPORT - void dumpMap(const ResultMap&, const String& name); -#endif Document& GetDocument() const { return *document_; } Member<DOMEditor> dom_editor_;
diff --git a/third_party/WebKit/Source/core/layout/LayoutText.cpp b/third_party/WebKit/Source/core/layout/LayoutText.cpp index bedd7fc..6d0f1d2 100644 --- a/third_party/WebKit/Source/core/layout/LayoutText.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutText.cpp
@@ -249,8 +249,6 @@ } void LayoutText::ExtractTextBox(InlineTextBox* box) { - CheckConsistency(); - last_text_box_ = box->PrevTextBox(); if (box == first_text_box_) first_text_box_ = nullptr; @@ -259,13 +257,9 @@ box->SetPreviousTextBox(nullptr); for (InlineTextBox* curr = box; curr; curr = curr->NextTextBox()) curr->SetExtracted(); - - CheckConsistency(); } void LayoutText::AttachTextBox(InlineTextBox* box) { - CheckConsistency(); - if (last_text_box_) { last_text_box_->SetNextTextBox(box); box->SetPreviousTextBox(last_text_box_); @@ -278,13 +272,9 @@ last = curr; } last_text_box_ = last; - - CheckConsistency(); } void LayoutText::RemoveTextBox(InlineTextBox* box) { - CheckConsistency(); - if (box == first_text_box_) first_text_box_ = box->NextTextBox(); if (box == last_text_box_) @@ -293,8 +283,6 @@ box->NextTextBox()->SetPreviousTextBox(box->PrevTextBox()); if (box->PrevTextBox()) box->PrevTextBox()->SetNextTextBox(box->NextTextBox()); - - CheckConsistency(); } void LayoutText::DeleteTextBoxes() { @@ -2027,23 +2015,6 @@ return len; } -#if DCHECK_IS_ON() - -void LayoutText::CheckConsistency() const { -#ifdef CHECK_CONSISTENCY - const InlineTextBox* prev = nullptr; - for (const InlineTextBox* child = m_firstTextBox; child; - child = child->nextTextBox()) { - DCHECK(child->getLineLayoutItem().isEqual(this)); - DCHECK_EQ(child->prevTextBox(), prev); - prev = child; - } - DCHECK_EQ(prev, m_lastTextBox); -#endif -} - -#endif - void LayoutText::MomentarilyRevealLastTypedCharacter( unsigned last_typed_character_offset) { if (!g_secure_text_timers)
diff --git a/third_party/WebKit/Source/core/layout/LayoutText.h b/third_party/WebKit/Source/core/layout/LayoutText.h index 22c4160f..218b1cb4 100644 --- a/third_party/WebKit/Source/core/layout/LayoutText.h +++ b/third_party/WebKit/Source/core/layout/LayoutText.h
@@ -285,8 +285,6 @@ LayoutRect LocalVisualRect() const override; - void CheckConsistency() const; - // We put the bitfield first to minimize padding on 64-bit. // Whether or not we can be broken into multiple lines. @@ -351,10 +349,6 @@ DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutText, IsText()); -#if !DCHECK_IS_ON() -inline void LayoutText::CheckConsistency() const {} -#endif - inline LayoutText* Text::GetLayoutObject() const { return ToLayoutText(CharacterData::GetLayoutObject()); }
diff --git a/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.cpp b/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.cpp index 25cfd8a..bba8fdc 100644 --- a/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.cpp
@@ -78,7 +78,7 @@ } void AbstractInlineTextBox::Detach() { - if (Node* node = line_layout_item_.GetNode()) { + if (Node* node = GetNode()) { if (AXObjectCache* cache = node->GetDocument().ExistingAXObjectCache()) cache->Remove(this); }
diff --git a/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.h b/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.h index 2d58a27..d168516 100644 --- a/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.h +++ b/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.h
@@ -79,6 +79,7 @@ LayoutRect LocalBounds() const; unsigned Len() const; Direction GetDirection() const; + Node* GetNode() const { return line_layout_item_.GetNode(); } void CharacterWidths(Vector<float>&) const; void GetWordBoundaries(Vector<WordBoundaries>&) const; String GetText() const;
diff --git a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp index b296976..fb1fa86 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp +++ b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp
@@ -95,7 +95,6 @@ DCHECK(!child->Parent()); DCHECK(!child->NextOnLine()); DCHECK(!child->PrevOnLine()); - CheckConsistency(); child->SetParent(this); if (!first_child_) { @@ -195,13 +194,9 @@ !ToInlineFlowBox(child)->KnownToHaveNoOverflow()) ClearKnownToHaveNoOverflow(); } - - CheckConsistency(); } void InlineFlowBox::RemoveChild(InlineBox* child, MarkLineBoxes mark_dirty) { - CheckConsistency(); - if (mark_dirty == kMarkLineBoxesDirty && !IsDirty()) DirtyLineBoxes(); @@ -217,8 +212,6 @@ child->PrevOnLine()->SetNextOnLine(child->NextOnLine()); child->SetParent(nullptr); - - CheckConsistency(); } void InlineFlowBox::DeleteLine() { @@ -1720,21 +1713,4 @@ #endif -#if DCHECK_IS_ON() -void InlineFlowBox::CheckConsistency() const { -#ifdef CHECK_CONSISTENCY - DCHECK(!m_hasBadChildList); - const InlineBox* prev = nullptr; - for (const InlineBox* child = m_firstChild; child; - child = child->nextOnLine()) { - DCHECK_EQ(child->parent(), this); - DCHECK_EQ(child->prevOnLine(), prev); - prev = child; - } - DCHECK_EQ(prev, m_lastChild); -#endif -} - -#endif - } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.h b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.h index 1c1a3a4..ab20f32 100644 --- a/third_party/WebKit/Source/core/layout/line/InlineFlowBox.h +++ b/third_party/WebKit/Source/core/layout/line/InlineFlowBox.h
@@ -97,14 +97,8 @@ void SetNextLineBox(InlineFlowBox* n) { next_line_box_ = n; } void SetPreviousLineBox(InlineFlowBox* p) { prev_line_box_ = p; } - InlineBox* FirstChild() const { - CheckConsistency(); - return first_child_; - } - InlineBox* LastChild() const { - CheckConsistency(); - return last_child_; - } + InlineBox* FirstChild() const { return first_child_; } + InlineBox* LastChild() const { return last_child_; } bool IsLeaf() const final { return false; } @@ -282,7 +276,6 @@ bool HasTextDescendants() const { return has_text_descendants_; } void SetHasTextDescendants() { has_text_descendants_ = true; } - void CheckConsistency() const; void SetHasBadChildList(); // Line visual and layout overflow are in the coordinate space of the block. @@ -483,10 +476,6 @@ DEFINE_INLINE_BOX_TYPE_CASTS(InlineFlowBox); -#if !DCHECK_IS_ON() -inline void InlineFlowBox::CheckConsistency() const {} -#endif - inline void InlineFlowBox::SetHasBadChildList() { #if DCHECK_IS_ON() has_bad_child_list_ = true;
diff --git a/third_party/WebKit/Source/core/layout/line/LineBoxList.cpp b/third_party/WebKit/Source/core/layout/line/LineBoxList.cpp index fedc8b7b..de5ef615 100644 --- a/third_party/WebKit/Source/core/layout/line/LineBoxList.cpp +++ b/third_party/WebKit/Source/core/layout/line/LineBoxList.cpp
@@ -48,8 +48,6 @@ #endif void LineBoxList::AppendLineBox(InlineFlowBox* box) { - CheckConsistency(); - if (!first_line_box_) { first_line_box_ = last_line_box_ = box; } else { @@ -57,8 +55,6 @@ box->SetPreviousLineBox(last_line_box_); last_line_box_ = box; } - - CheckConsistency(); } void LineBoxList::DeleteLineBoxTree() { @@ -73,8 +69,6 @@ } void LineBoxList::ExtractLineBox(InlineFlowBox* box) { - CheckConsistency(); - last_line_box_ = box->PrevLineBox(); if (box == first_line_box_) first_line_box_ = nullptr; @@ -83,13 +77,9 @@ box->SetPreviousLineBox(nullptr); for (InlineFlowBox* curr = box; curr; curr = curr->NextLineBox()) curr->SetExtracted(); - - CheckConsistency(); } void LineBoxList::AttachLineBox(InlineFlowBox* box) { - CheckConsistency(); - if (last_line_box_) { last_line_box_->SetNextLineBox(box); box->SetPreviousLineBox(last_line_box_); @@ -102,13 +92,9 @@ last = curr; } last_line_box_ = last; - - CheckConsistency(); } void LineBoxList::RemoveLineBox(InlineFlowBox* box) { - CheckConsistency(); - if (box == first_line_box_) first_line_box_ = box->NextLineBox(); if (box == last_line_box_) @@ -117,8 +103,6 @@ box->NextLineBox()->SetPreviousLineBox(box->PrevLineBox()); if (box->PrevLineBox()) box->PrevLineBox()->SetNextLineBox(box->NextLineBox()); - - CheckConsistency(); } void LineBoxList::DeleteLineBoxes() { @@ -369,19 +353,4 @@ } } -#if DCHECK_IS_ON() -void LineBoxList::CheckConsistency() const { -#ifdef CHECK_CONSISTENCY - const InlineFlowBox* prev = nullptr; - for (const InlineFlowBox* child = m_firstLineBox; child; - child = child->nextLineBox()) { - DCHECK_EQ(child->prevLineBox(), prev); - prev = child; - } - DCHECK_EQ(prev, m_lastLineBox); -#endif -} - -#endif - } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/line/LineBoxList.h b/third_party/WebKit/Source/core/layout/line/LineBoxList.h index ac7a4c8..d639d1f 100644 --- a/third_party/WebKit/Source/core/layout/line/LineBoxList.h +++ b/third_party/WebKit/Source/core/layout/line/LineBoxList.h
@@ -57,8 +57,6 @@ InlineFlowBox* FirstLineBox() const { return first_line_box_; } InlineFlowBox* LastLineBox() const { return last_line_box_; } - void CheckConsistency() const; - void AppendLineBox(InlineFlowBox*); void DeleteLineBoxTree(); @@ -100,10 +98,6 @@ InlineFlowBox* last_line_box_; }; -#if !DCHECK_IS_ON() -inline void LineBoxList::CheckConsistency() const {} -#endif - } // namespace blink #endif // LineBoxList_h
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc index 581bd98..fd84b63 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
@@ -43,9 +43,10 @@ .ToConstraintSpace(FromPlatformWritingMode(style.GetWritingMode())); } -NGLogicalOffset GetOriginPointForFloats(const NGConstraintSpace& space, - LayoutUnit content_size) { - NGLogicalOffset origin_point = space.BfcOffset(); +NGLogicalOffset GetOriginPointForFloats( + const NGLogicalOffset& container_bfc_offset, + LayoutUnit content_size) { + NGLogicalOffset origin_point = container_bfc_offset; origin_point.block_offset += content_size; return origin_point; } @@ -295,7 +296,7 @@ #endif NGLogicalOffset origin_point = - GetOriginPointForFloats(ConstraintSpace(), content_size_); + GetOriginPointForFloats(ContainerBfcOffset(), content_size_); PositionPendingFloats(origin_point.block_offset, &container_builder_, MutableConstraintSpace()); FindNextLayoutOpportunity(); @@ -375,16 +376,16 @@ ToNGPhysicalBoxFragment(layout_result->PhysicalFragment().Get())); NGLogicalOffset origin_offset = - GetOriginPointForFloats(ConstraintSpace(), content_size_); - NGLogicalOffset from_offset = ConstraintSpace().BfcOffset(); + GetOriginPointForFloats(ContainerBfcOffset(), content_size_); const ComputedStyle& float_style = node->Style(); NGBoxStrut margins = ComputeMargins(ConstraintSpace(), float_style, ConstraintSpace().WritingMode(), ConstraintSpace().Direction()); RefPtr<NGFloatingObject> floating_object = NGFloatingObject::Create( float_style, float_space->WritingMode(), current_opportunity_.size, - origin_offset, from_offset, margins, + origin_offset, ContainerBfcOffset(), margins, layout_result->PhysicalFragment().Get()); + floating_object->parent_bfc_block_offset = ContainerBfcOffset().block_offset; bool float_does_not_fit = end_position + float_fragment.InlineSize() > current_opportunity_.InlineSize();
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc index f9d504e..274df6b 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
@@ -87,23 +87,35 @@ } } +void PositionPendingFloatsFromOffset(LayoutUnit origin_block_offset, + LayoutUnit from_block_offset, + NGFragmentBuilder* container_builder, + NGConstraintSpace* space) { + DCHECK(container_builder->BfcOffset()) + << "Parent BFC offset should be known here"; + const auto& floating_objects = container_builder->UnpositionedFloats(); + container_builder->MutablePositionedFloats().AppendVector( + PositionFloats(origin_block_offset, from_block_offset, + container_builder->BfcOffset().value().block_offset, + floating_objects, space)); + container_builder->MutableUnpositionedFloats().clear(); +} + void PositionPendingFloats(LayoutUnit origin_block_offset, NGFragmentBuilder* container_builder, NGConstraintSpace* space) { DCHECK(container_builder->BfcOffset()) << "Parent BFC offset should be known here"; - const auto& floating_objects = container_builder->UnpositionedFloats(); - container_builder->MutablePositionedFloats().AppendVector(PositionFloats( - origin_block_offset, container_builder->BfcOffset().value().block_offset, - floating_objects, space)); - container_builder->MutableUnpositionedFloats().clear(); + LayoutUnit from_block_offset = + container_builder->BfcOffset().value().block_offset; + PositionPendingFloatsFromOffset(origin_block_offset, from_block_offset, + container_builder, space); } NGBlockLayoutAlgorithm::NGBlockLayoutAlgorithm(NGBlockNode* node, NGConstraintSpace* space, NGBlockBreakToken* break_token) - : NGLayoutAlgorithm(node, space, break_token), - space_builder_(constraint_space_) {} + : NGLayoutAlgorithm(node, space, break_token) {} Optional<MinMaxContentSize> NGBlockLayoutAlgorithm::ComputeMinMaxContentSize() const { @@ -175,8 +187,8 @@ else adjusted_size -= border_and_padding_; - space_builder_.SetAvailableSize(adjusted_size) - .SetPercentageResolutionSize(adjusted_size); + child_available_size_ = adjusted_size; + child_percentage_size_ = adjusted_size; container_builder_.SetDirection(constraint_space_->Direction()); container_builder_.SetWritingMode(constraint_space_->WritingMode()); @@ -241,7 +253,7 @@ NGLogicalOffset child_bfc_offset = PrepareChildLayout(child); RefPtr<NGConstraintSpace> child_space = - CreateConstraintSpaceForChild(child_bfc_offset, child); + CreateConstraintSpaceForChild(child_bfc_offset, *child); RefPtr<NGLayoutResult> layout_result = child->Layout(child_space.Get(), child_break_token); @@ -314,9 +326,7 @@ curr_bfc_offset_.block_offset += content_size_; // Calculate margins in parent's writing mode. - curr_child_margins_ = CalculateMargins( - child, *space_builder_.ToConstraintSpace( - FromPlatformWritingMode(Style().GetWritingMode()))); + curr_child_margins_ = CalculateMargins(child); bool should_position_pending_floats = !child->IsFloating() && @@ -394,7 +404,7 @@ else if (IsLegacyBlock(*child)) child_bfc_offset = PositionLegacy(child_space); else if (container_builder_.BfcOffset()) - child_bfc_offset = PositionWithParentBfc(fragment); + child_bfc_offset = PositionWithParentBfc(child_space, fragment); NGLogicalOffset logical_offset = CalculateLogicalOffset(child_bfc_offset); @@ -428,6 +438,7 @@ .SetIsNewFormattingContext(false) .ToConstraintSpace(child_space.WritingMode()); PositionFloats(curr_bfc_offset_.block_offset, curr_bfc_offset_.block_offset, + curr_bfc_offset_.block_offset, container_builder_.UnpositionedFloats(), tmp_space.Get()); NGLogicalOffset origin_offset = curr_bfc_offset_; @@ -477,6 +488,7 @@ } NGLogicalOffset NGBlockLayoutAlgorithm::PositionWithParentBfc( + const NGConstraintSpace& space, const NGBoxFragment& fragment) { // The child must be an in-flow zero-block-size fragment, use its end margin // strut for positioning. @@ -489,6 +501,10 @@ curr_bfc_offset_ += {border_and_padding_.inline_start + curr_child_margins_.inline_start, margin_strut.Sum()}; + AdjustToClearance(space.ClearanceOffset(), &curr_bfc_offset_); + PositionPendingFloatsFromOffset( + curr_bfc_offset_.block_offset, curr_bfc_offset_.block_offset, + &container_builder_, MutableConstraintSpace()); return curr_bfc_offset_; } @@ -560,57 +576,66 @@ container_builder_.SetBlockOverflow(content_size_); } -NGBoxStrut NGBlockLayoutAlgorithm::CalculateMargins( - NGLayoutInputNode* child, - const NGConstraintSpace& space) { +NGBoxStrut NGBlockLayoutAlgorithm::CalculateMargins(NGLayoutInputNode* child) { DCHECK(child); if (child->IsInline()) return {}; const ComputedStyle& child_style = child->Style(); - WTF::Optional<MinMaxContentSize> sizes; - if (NeedMinMaxContentSize(space, child_style)) - sizes = child->ComputeMinMaxContentSize(); + RefPtr<NGConstraintSpace> space = + NGConstraintSpaceBuilder(MutableConstraintSpace()) + .SetAvailableSize(child_available_size_) + .SetPercentageResolutionSize(child_percentage_size_) + .ToConstraintSpace(ConstraintSpace().WritingMode()); - LayoutUnit child_inline_size = - ComputeInlineSizeForFragment(space, child_style, sizes); - NGBoxStrut margins = ComputeMargins(space, child_style, space.WritingMode(), - space.Direction()); + NGBoxStrut margins = ComputeMargins(*space, child_style, space->WritingMode(), + space->Direction()); + + // TODO(ikilpatrick): Move the auto margins calculation for different writing + // modes to post-layout. if (!child->IsFloating()) { - ApplyAutoMargins(space, child_style, child_inline_size, &margins); + WTF::Optional<MinMaxContentSize> sizes; + if (NeedMinMaxContentSize(*space, child_style)) + sizes = child->ComputeMinMaxContentSize(); + + LayoutUnit child_inline_size = + ComputeInlineSizeForFragment(*space, child_style, sizes); + ApplyAutoMargins(*space, child_style, child_inline_size, &margins); } return margins; } RefPtr<NGConstraintSpace> NGBlockLayoutAlgorithm::CreateConstraintSpaceForChild( const NGLogicalOffset& child_bfc_offset, - NGLayoutInputNode* child) { - DCHECK(child); + const NGLayoutInputNode& child) { + NGConstraintSpaceBuilder space_builder(MutableConstraintSpace()); + space_builder.SetAvailableSize(child_available_size_) + .SetPercentageResolutionSize(child_percentage_size_); - const ComputedStyle& child_style = child->Style(); - bool is_new_bfc = IsNewFormattingContextForBlockLevelChild(Style(), *child); - space_builder_.SetIsNewFormattingContext(is_new_bfc) + const ComputedStyle& child_style = child.Style(); + bool is_new_bfc = IsNewFormattingContextForBlockLevelChild(Style(), child); + space_builder.SetIsNewFormattingContext(is_new_bfc) .SetBfcOffset(child_bfc_offset); // Float's margins are not included in child's space because: // 1) Floats do not participate in margins collapsing. // 2) Floats margins are used separately to calculate floating exclusions. - space_builder_.SetMarginStrut(child->IsFloating() ? NGMarginStrut() - : curr_margin_strut_); + space_builder.SetMarginStrut(child.IsFloating() ? NGMarginStrut() + : curr_margin_strut_); if (!is_new_bfc) { - space_builder_.SetUnpositionedFloats( + space_builder.SetUnpositionedFloats( container_builder_.MutableUnpositionedFloats()); } - if (child->IsInline()) { - // TODO(kojii): Setup space_builder_ appropriately for inline child. - space_builder_.SetClearanceOffset(ConstraintSpace().ClearanceOffset()); - return space_builder_.ToConstraintSpace( + if (child.IsInline()) { + // TODO(kojii): Setup space_builder appropriately for inline child. + space_builder.SetClearanceOffset(ConstraintSpace().ClearanceOffset()); + return space_builder.ToConstraintSpace( FromPlatformWritingMode(Style().GetWritingMode())); } - space_builder_ + space_builder .SetClearanceOffset( GetClearanceOffset(constraint_space_->Exclusions(), child_style)) .SetIsShrinkToFit(ShouldShrinkToFit(Style(), child_style)) @@ -626,9 +651,9 @@ space_available -= child_bfc_offset.block_offset; } } - space_builder_.SetFragmentainerSpaceAvailable(space_available); + space_builder.SetFragmentainerSpaceAvailable(space_available); - return space_builder_.ToConstraintSpace( + return space_builder.ToConstraintSpace( FromPlatformWritingMode(child_style.GetWritingMode())); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h index d1bf12a1..fc0461b 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
@@ -48,13 +48,12 @@ virtual RefPtr<NGLayoutResult> Layout() override; private: - NGBoxStrut CalculateMargins(NGLayoutInputNode* child, - const NGConstraintSpace& space); + NGBoxStrut CalculateMargins(NGLayoutInputNode* child); // Creates a new constraint space for the current child. RefPtr<NGConstraintSpace> CreateConstraintSpaceForChild( const NGLogicalOffset& child_bfc_offset, - NGLayoutInputNode*); + const NGLayoutInputNode&); // @return Estimated BFC offset for the "to be layout" child. NGLogicalOffset PrepareChildLayout(NGLayoutInputNode*); @@ -95,7 +94,8 @@ // BFC Offset is known here because of the padding. // <div style="padding: 1px"> // <div id="empty-div" style="margins: 1px"></div> - NGLogicalOffset PositionWithParentBfc(const NGBoxFragment&); + NGLogicalOffset PositionWithParentBfc(const NGConstraintSpace&, + const NGBoxFragment&); NGLogicalOffset PositionLegacy(const NGConstraintSpace& child_space); @@ -115,7 +115,8 @@ NGLogicalOffset CalculateLogicalOffset( const WTF::Optional<NGLogicalOffset>& known_fragment_offset); - NGConstraintSpaceBuilder space_builder_; + NGLogicalSize child_available_size_; + NGLogicalSize child_percentage_size_; NGBoxStrut border_and_padding_; LayoutUnit content_size_;
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc index 0dc927d..c8328c9 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
@@ -78,8 +78,8 @@ FloatingObject* floating_object = ToLayoutBlockFlow(parent)->InsertFloatingObject(*layout_box); floating_object->SetIsInPlacedTree(false); - floating_object->SetX(positioned_float.left_offset); - floating_object->SetY(box_fragment->TopOffset()); + floating_object->SetX(positioned_float.paint_offset.left); + floating_object->SetY(positioned_float.paint_offset.top); floating_object->SetIsPlaced(true); floating_object->SetIsInPlacedTree(true); }
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h b/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h index c7b5a503..df00cbf 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
@@ -39,7 +39,7 @@ // NGLayoutOpportunityIterator to position this floating object. NGLogicalSize available_size; - // To correctly position a float we need 2 offsets: + // To correctly **position** a float we need 2 offsets: // - origin_offset which represents the layout point for this float. // - from_offset which represents the point from where we need to calculate // the relative logical offset for this float. @@ -50,6 +50,32 @@ NGLogicalOffset origin_offset; NGLogicalOffset from_offset; + // To correctly **paint** a float we need to know the BFC offset of the + // container to which we are attaching this float. It's used to calculate + // {@code paint_offset}. + // In most situations {@code paint_offset} equals to float's logical + // offset except the cases where a float needs to be re-attached to a non-zero + // height parent. + // + // Example: + // <body> + // <p style="height: 60px">Example</p> + // <div id="zero-height-div"><float></div> + // + // Here the float's logical offset is 0 relative to its #zero-height-div + // parent. Because of the "zero height" div this float is re-attached to the + // 1st non-empty parent => body. To paint this float correctly we provide the + // modified {@code paint_offset} which is relative to the float's new + // parent. + // I.e. for our example {@code paint_offset.top} == + // #zero-height-div's BFC offset + // - body's BFC offset + float's logical offset + // + // For code safety reasons {@code parent_bfc_block_offset} is Optional here + // because the block's offset can be only determined before the actual float's + // placement event. + WTF::Optional<LayoutUnit> parent_bfc_block_offset; + // Writing mode of the float's constraint space. NGWritingMode writing_mode;
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc index 47ab32ec..bdacbf0 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
@@ -78,15 +78,20 @@ return exclusion; } -// Calculates the Floating Object's left offset from the provided parent_space -// and {@code floating_object}'s space and margins. -LayoutUnit CalculateLeftOffset(const NGConstraintSpace& new_parent_space, - const NGLogicalOffset& float_logical_offset, - const NGFloatingObject& floating_object) { +// Updates the Floating Object's left and top offsets. +NGPhysicalOffset CalculateFloatingObjectPaintOffset( + const NGConstraintSpace& new_parent_space, + const NGLogicalOffset& float_logical_offset, + const NGFloatingObject& floating_object) { // TODO(glebl): We should use physical offset here. - return floating_object.from_offset.inline_offset - - new_parent_space.BfcOffset().inline_offset + - float_logical_offset.inline_offset; + LayoutUnit left_offset = floating_object.from_offset.inline_offset - + new_parent_space.BfcOffset().inline_offset + + float_logical_offset.inline_offset; + DCHECK(floating_object.parent_bfc_block_offset); + LayoutUnit top_offset = floating_object.from_offset.block_offset - + floating_object.parent_bfc_block_offset.value() + + float_logical_offset.block_offset; + return {left_offset, top_offset}; } } // namespace @@ -131,17 +136,17 @@ NGLogicalOffset logical_offset = CalculateLogicalOffsetForOpportunity( opportunity, float_offset, floating_object); - - LayoutUnit left_offset = - CalculateLeftOffset(*new_parent_space, logical_offset, *floating_object); + NGPhysicalOffset paint_offset = CalculateFloatingObjectPaintOffset( + *new_parent_space, logical_offset, *floating_object); return NGPositionedFloat(floating_object->fragment, logical_offset, - left_offset); + paint_offset); } const Vector<NGPositionedFloat> PositionFloats( LayoutUnit origin_block_offset, LayoutUnit from_block_offset, + LayoutUnit parent_bfc_offset, const Vector<RefPtr<NGFloatingObject>>& floating_objects, NGConstraintSpace* space) { Vector<NGPositionedFloat> positioned_floats; @@ -150,6 +155,7 @@ for (auto& floating_object : floating_objects) { floating_object->origin_offset.block_offset = origin_block_offset; floating_object->from_offset.block_offset = from_block_offset; + floating_object->parent_bfc_block_offset = parent_bfc_offset; positioned_floats.push_back(PositionFloat(floating_object.Get(), space)); }
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h index 81a2e3bf..4df43a3 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
@@ -23,6 +23,7 @@ CORE_EXPORT const Vector<NGPositionedFloat> PositionFloats( LayoutUnit origin_block_offset, LayoutUnit from_block_offset, + LayoutUnit container_block_offset, const Vector<RefPtr<NGFloatingObject>>& floating_objects, NGConstraintSpace* space);
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc index e75e3ca1..2e7ead08 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
@@ -198,8 +198,10 @@ for (auto& positioned_float : positioned_floats_) { NGPhysicalFragment* floating_fragment = positioned_float.fragment.Get(); - floating_fragment->SetOffset(positioned_float.offset.ConvertToPhysical( - writing_mode_, direction_, physical_size, floating_fragment->Size())); + floating_fragment->SetOffset( + positioned_float.logical_offset.ConvertToPhysical( + writing_mode_, direction_, physical_size, + floating_fragment->Size())); } RefPtr<NGPhysicalBoxFragment> fragment = AdoptRef(new NGPhysicalBoxFragment(
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h b/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h index 8443fa0..affb803 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h
@@ -13,21 +13,23 @@ // Contains the information necessary for copying back data to a FloatingObject. struct CORE_EXPORT NGPositionedFloat { NGPositionedFloat(RefPtr<NGPhysicalFragment> fragment, - NGLogicalOffset offset, - LayoutUnit left_offset) - : fragment(fragment), offset(offset), left_offset(left_offset) {} + const NGLogicalOffset& logical_offset, + const NGPhysicalOffset& paint_offset) + : fragment(fragment), + logical_offset(logical_offset), + paint_offset(paint_offset) {} RefPtr<NGPhysicalFragment> fragment; - NGLogicalOffset offset; + NGLogicalOffset logical_offset; // In the case where a legacy FloatingObject is attached to not its own // parent, e.g. a float surrounded by a bunch of nested empty divs, // NG float fragment's LeftOffset() cannot be used as legacy FloatingObject's // left offset because that offset should be relative to the original float // parent. - // {@code left_offset} is calculated when we know to which parent this float + // {@code paint_offset} is calculated when we know to which parent this float // would be attached. - LayoutUnit left_offset; + NGPhysicalOffset paint_offset; }; } // namespace blink
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp index c5c664d4..2aeeae5 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp +++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
@@ -134,7 +134,8 @@ Resource* Create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String&) const override { - return new ImageResource(request, options, ImageResourceContent::Create(), + return new ImageResource(request, options, + ImageResourceContent::CreateNotStarted(), fetch_params_->GetPlaceholderImageRequestType() == FetchParameters::kAllowPlaceholder); } @@ -183,7 +184,7 @@ ImageResource* ImageResource::Create(const ResourceRequest& request) { return new ImageResource(request, ResourceLoaderOptions(), - ImageResourceContent::Create(), false); + ImageResourceContent::CreateNotStarted(), false); } ImageResource::ImageResource(const ResourceRequest& resource_request,
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp index 221aca3..a476478 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp +++ b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp
@@ -74,6 +74,14 @@ info_ = &null_info; } +ImageResourceContent* ImageResourceContent::CreateLoaded( + PassRefPtr<blink::Image> image) { + DCHECK(image); + ImageResourceContent* content = new ImageResourceContent(std::move(image)); + content->content_status_ = ResourceStatus::kCached; + return content; +} + ImageResourceContent* ImageResourceContent::Fetch(FetchParameters& params, ResourceFetcher* fetcher) { // TODO(hiroshige): Remove direct references to ImageResource by making
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.h b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.h index cd70475..f105fb80 100644 --- a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.h +++ b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.h
@@ -46,10 +46,15 @@ USING_GARBAGE_COLLECTED_MIXIN(ImageResourceContent); public: - static ImageResourceContent* Create( - PassRefPtr<blink::Image> image = nullptr) { - return new ImageResourceContent(std::move(image)); + // Used for loading. + // Returned content will be associated immediately later with ImageResource. + static ImageResourceContent* CreateNotStarted() { + return new ImageResourceContent(nullptr); } + + // Creates ImageResourceContent from an already loaded image. + static ImageResourceContent* CreateLoaded(PassRefPtr<blink::Image>); + static ImageResourceContent* Fetch(FetchParameters&, ResourceFetcher*); // Returns the nullImage() if the image is not available yet.
diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.cpp b/third_party/WebKit/Source/core/paint/PaintLayer.cpp index ee53d12b8..fd7f93f 100644 --- a/third_party/WebKit/Source/core/paint/PaintLayer.cpp +++ b/third_party/WebKit/Source/core/paint/PaintLayer.cpp
@@ -2769,6 +2769,9 @@ } bool PaintLayer::SupportsSubsequenceCaching() const { + if (EnclosingPaginationLayer()) + return false; + // SVG paints atomically. if (GetLayoutObject().IsSVGRoot()) return true;
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp b/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp index 0a48768..83105a9 100644 --- a/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp +++ b/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp
@@ -329,6 +329,16 @@ EXPECT_TRUE(svgroot->SupportsSubsequenceCaching()); } +TEST_P(PaintLayerTest, SubsequenceCachingMuticol) { + SetBodyInnerHTML( + "<div style='columns: 2'>" + " <svg id='svgroot' style='position: relative'></svg>" + "</div>"); + + PaintLayer* svgroot = GetPaintLayerByElementId("svgroot"); + EXPECT_FALSE(svgroot->SupportsSubsequenceCaching()); +} + TEST_P(PaintLayerTest, HasDescendantWithClipPath) { SetBodyInnerHTML( "<div id='parent' style='position:relative'>"
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.cpp b/third_party/WebKit/Source/core/style/ComputedStyle.cpp index 6990044f..fe7f67576 100644 --- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp +++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
@@ -72,10 +72,11 @@ // re-create the same structure for an accurate size comparison. struct SameSizeAsComputedStyle : public RefCounted<SameSizeAsComputedStyle> { struct ComputedStyleBase { + void* data_refs[3]; unsigned bitfields_[4]; } base_; - void* data_refs[7]; + void* data_refs[4]; void* own_ptrs[1]; void* data_ref_svg_style; }; @@ -310,19 +311,19 @@ void ComputedStyle::InheritFrom(const ComputedStyle& inherit_parent, IsAtShadowBoundary is_at_shadow_boundary) { + EUserModify current_user_modify = UserModify(); + ComputedStyleBase::InheritFrom(inherit_parent, is_at_shadow_boundary); - if (is_at_shadow_boundary == kAtShadowBoundary) { - // Even if surrounding content is user-editable, shadow DOM should act as a - // single unit, and not necessarily be editable - EUserModify current_user_modify = UserModify(); - rare_inherited_data_ = inherit_parent.rare_inherited_data_; - SetUserModify(current_user_modify); - } else { - rare_inherited_data_ = inherit_parent.rare_inherited_data_; - } + rare_inherited_data_ = inherit_parent.rare_inherited_data_; inherited_data_ = inherit_parent.inherited_data_; if (svg_style_ != inherit_parent.svg_style_) svg_style_.Access()->InheritFrom(inherit_parent.svg_style_.Get()); + + if (is_at_shadow_boundary == kAtShadowBoundary) { + // Even if surrounding content is user-editable, shadow DOM should act as a + // single unit, and not necessarily be editable + SetUserModify(current_user_modify); + } } void ComputedStyle::CopyNonInheritedFromCached(const ComputedStyle& other) {
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp index 166a856..cd91a07 100644 --- a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp +++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
@@ -130,9 +130,6 @@ bool StyleFetchedImage::KnownToBeOpaque( const LayoutObject& layout_object) const { - TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage", - "data", - InspectorPaintImageEvent::Data(&layout_object, *image_.Get())); return image_->GetImage()->CurrentFrameKnownToBeOpaque( Image::kPreCacheMetadata); }
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp index 420aae1..d5866e7 100644 --- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp +++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
@@ -128,9 +128,6 @@ bool StyleFetchedImageSet::KnownToBeOpaque( const LayoutObject& layout_object) const { - TRACE_EVENT1( - TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage", "data", - InspectorPaintImageEvent::Data(&layout_object, *best_fit_image_.Get())); return best_fit_image_->GetImage()->CurrentFrameKnownToBeOpaque( Image::kPreCacheMetadata); }
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js index 351cfa1..4727ff6 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js
@@ -22,6 +22,9 @@ this._textByProvider = new Map(); /** @type {!Multimap<!Common.ContentProvider, !Workspace.UISourceCode>} */ this._uiSourceCodeByContentProvider = new Multimap(); + // TODO(crbug.com/720162): get rid of this, use bindings. + /** @type {!WeakMap<!Workspace.UISourceCode, !Array<!SDK.CSSStyleSheetHeader>>} */ + this._documentUISouceCodeToStylesheets = new WeakMap(); for (var uiSourceCode of Workspace.workspace.uiSourceCodes()) uiSourceCode.addLineDecoration(0, Coverage.CoverageDecorationManager._decoratorType, this); @@ -59,12 +62,12 @@ for (var line = 0; line < sourceText.lineCount(); ++line) { var lineLength = lineEndings[line] - (line ? lineEndings[line - 1] : 0) - 1; if (!lineLength) { - result.push(false); + result.push(undefined); continue; } var startLocations = this._rawLocationsForSourceLocation(uiSourceCode, line, 0); var endLocations = this._rawLocationsForSourceLocation(uiSourceCode, line, lineLength); - var used = false; + var used = undefined; for (var startIndex = 0, endIndex = 0; startIndex < startLocations.length; ++startIndex) { var start = startLocations[startIndex]; while (endIndex < endLocations.length && @@ -77,14 +80,14 @@ if (!text) continue; var textValue = text.value(); - var startOffset = text.offsetFromPosition(start.line, start.column); - var endOffset = text.offsetFromPosition(end.line, end.column); + var startOffset = Math.min(text.offsetFromPosition(start.line, start.column), textValue.length - 1); + var endOffset = Math.min(text.offsetFromPosition(end.line, end.column), textValue.length - 1); while (startOffset <= endOffset && /\s/.test(textValue[startOffset])) ++startOffset; while (startOffset <= endOffset && /\s/.test(textValue[endOffset])) --endOffset; - used = - startOffset <= endOffset && this._coverageModel.usageForRange(end.contentProvider, startOffset, endOffset); + if (startOffset <= endOffset) + used = this._coverageModel.usageForRange(end.contentProvider, startOffset, endOffset); if (used) break; } @@ -133,20 +136,41 @@ if (contentType.hasScripts()) { var location = Bindings.debuggerWorkspaceBinding.uiLocationToRawLocation(uiSourceCode, line, column); if (location && location.script()) { - result.push({ - id: `js:${location.scriptId}`, - contentProvider: location.script(), - line: location.lineNumber, - column: location.columnNumber - }); + var script = location.script(); + if (script.isInlineScript() && contentType.isDocument()) { + if (comparePositions(script.lineOffset, script.columnOffset, location.lineNumber, location.columnNumber) > + 0 || + comparePositions(script.endLine, script.endColumn, location.lineNumber, location.columnNumber) <= 0) { + location = null; + } else { + location.lineNumber -= script.lineOffset; + if (!location.lineNumber) + location.columnNumber -= script.columnOffset; + } + } + if (location) { + result.push({ + id: `js:${location.scriptId}`, + contentProvider: location.script(), + line: location.lineNumber, + column: location.columnNumber + }); + } } } if (contentType.isStyleSheet() || contentType.isDocument()) { - var rawStyleLocations = + var rawStyleLocations = contentType.isDocument() ? + this._documentUILocationToCSSRawLocations(uiSourceCode, line, column) : Bindings.cssWorkspaceBinding.uiLocationToRawLocations(new Workspace.UILocation(uiSourceCode, line, column)); for (var location of rawStyleLocations) { - if (!location.header()) + var header = location.header(); + if (!header) continue; + if (header.isInline && contentType.isDocument()) { + location.lineNumber -= header.startLine; + if (!location.lineNumber) + location.columnNumber -= header.startColumn; + } result.push({ id: `css:${location.styleSheetId}`, contentProvider: location.header(), @@ -156,10 +180,66 @@ } } result.sort(Coverage.CoverageDecorationManager._compareLocations); + + /** + * @param {number} aLine + * @param {number} aColumn + * @param {number} bLine + * @param {number} bColumn + * @return {number} + */ + function comparePositions(aLine, aColumn, bLine, bColumn) { + return aLine - bLine || aColumn - bColumn; + } return result; } /** + * TODO(crbug.com/720162): get rid of this, use bindings. + * + * @param {!Workspace.UISourceCode} uiSourceCode + * @param {number} line + * @param {number} column + * @return {!Array<!SDK.CSSLocation>} + */ + _documentUILocationToCSSRawLocations(uiSourceCode, line, column) { + var stylesheets = this._documentUISouceCodeToStylesheets.get(uiSourceCode); + if (!stylesheets) { + stylesheets = []; + var cssModel = this._coverageModel.target().model(SDK.CSSModel); + if (!cssModel) + return []; + for (var headerId of cssModel.styleSheetIdsForURL(uiSourceCode.url())) { + var header = cssModel.styleSheetHeaderForId(headerId); + if (header) + stylesheets.push(header); + } + stylesheets.sort(stylesheetComparator); + this._documentUISouceCodeToStylesheets.set(uiSourceCode, stylesheets); + } + var endIndex = + stylesheets.upperBound(undefined, (unused, header) => line - header.startLine || column - header.startColumn); + if (!endIndex) + return []; + var locations = []; + var last = stylesheets[endIndex - 1]; + for (var index = endIndex - 1; index >= 0 && stylesheets[index].startLine === last.startLine && + stylesheets[index].startColumn === last.startColumn; + --index) + locations.push(new SDK.CSSLocation(stylesheets[index], line, column)); + + return locations; + /** + * @param {!SDK.CSSStyleSheetHeader} a + * @param {!SDK.CSSStyleSheetHeader} b + * @return {number} + */ + function stylesheetComparator(a, b) { + return a.startLine - b.startLine || a.startColumn - b.startColumn || a.id.localeCompare(b.id); + } + } + + /** * @param {!Coverage.RawLocation} a * @param {!Coverage.RawLocation} b */ @@ -189,7 +269,7 @@ */ decorate(uiSourceCode, textEditor) { var decorations = uiSourceCode.decorationsForType(Coverage.CoverageDecorationManager._decoratorType); - if (!decorations.size) { + if (!decorations || !decorations.size) { textEditor.uninstallGutter(Coverage.CoverageView.LineDecorator._gutterType); return; } @@ -209,6 +289,9 @@ textEditor.uninstallGutter(gutterType); textEditor.installGutter(gutterType, false); for (var line = 0; line < lineUsage.length; ++line) { + // Do not decorate the line if we don't have data. + if (typeof lineUsage[line] !== 'boolean') + continue; var className = lineUsage[line] ? 'text-editor-coverage-used-marker' : 'text-editor-coverage-unused-marker'; textEditor.setGutterDecoration(line, gutterType, createElementWithClass('div', className)); }
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js index 654120e1..48d48725 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js
@@ -243,9 +243,9 @@ case 'bars': var barContainer = cell.createChild('div', 'bar-container'); var unusedSizeBar = barContainer.createChild('div', 'bar bar-unused-size'); - unusedSizeBar.style.width = Math.ceil(100 * this._coverageInfo.unusedSize() / this._maxSize) + '%'; + unusedSizeBar.style.width = (100 * this._coverageInfo.unusedSize() / this._maxSize).toFixed(4) + '%'; var usedSizeBar = barContainer.createChild('div', 'bar bar-used-size'); - usedSizeBar.style.width = Math.floor(100 * this._coverageInfo.usedSize() / this._maxSize) + '%'; + usedSizeBar.style.width = (100 * this._coverageInfo.usedSize() / this._maxSize).toFixed(4) + '%'; } return cell; }
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js index c322243..29917e34 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js
@@ -365,7 +365,7 @@ if (this._segments[index].count) return true; } - return index < this._segments.length && this._segments[index].count; + return index < this._segments.length && !!this._segments[index].count; } /**
diff --git a/third_party/WebKit/Source/modules/accessibility/AXInlineTextBox.h b/third_party/WebKit/Source/modules/accessibility/AXInlineTextBox.h index bc2cb00..923cbcf 100644 --- a/third_party/WebKit/Source/modules/accessibility/AXInlineTextBox.h +++ b/third_party/WebKit/Source/modules/accessibility/AXInlineTextBox.h
@@ -34,6 +34,7 @@ namespace blink { +class Node; class AXObjectCacheImpl; class AXInlineTextBox final : public AXObject { @@ -46,9 +47,13 @@ static AXInlineTextBox* Create(PassRefPtr<AbstractInlineTextBox>, AXObjectCacheImpl&); + protected: void Init() override; void Detach() override; + bool IsDetached() const override { return !inline_text_box_; } + bool IsAXInlineTextBox() const override { return true; } + public: AccessibilityRole RoleValue() const override { return kInlineTextBoxRole; } String GetName(AXNameFrom&, AXObject::AXObjectVector* name_objects) const override; @@ -59,6 +64,7 @@ SkMatrix44& out_container_transform) const override; AXObject* ComputeParent() const override; AccessibilityTextDirection GetTextDirection() const override; + Node* GetNode() const override { return inline_text_box_->GetNode(); } AXObject* NextOnLine() const override; AXObject* PreviousOnLine() const override;
diff --git a/third_party/WebKit/Source/modules/accessibility/AXObject.h b/third_party/WebKit/Source/modules/accessibility/AXObject.h index a7c59cb..aa8754a 100644 --- a/third_party/WebKit/Source/modules/accessibility/AXObject.h +++ b/third_party/WebKit/Source/modules/accessibility/AXObject.h
@@ -614,6 +614,7 @@ // Determine subclass type. virtual bool IsAXNodeObject() const { return false; } virtual bool IsAXLayoutObject() const { return false; } + virtual bool IsAXInlineTextBox() const { return false; } virtual bool IsAXListBox() const { return false; } virtual bool IsAXListBoxOption() const { return false; } virtual bool IsAXRadioInput() const { return false; }
diff --git a/third_party/WebKit/Source/modules/imagecapture/README.md b/third_party/WebKit/Source/modules/imagecapture/README.md new file mode 100644 index 0000000..f07b9f6 --- /dev/null +++ b/third_party/WebKit/Source/modules/imagecapture/README.md
@@ -0,0 +1,91 @@ +# Image Capture API + +This folder contains the implementation of the [W3C Image Capture API](https://w3c.github.io/mediacapture-image/). Image Capture was shipped in Chrome M59; please consult the [Implementation Status](https://github.com/w3c/mediacapture-image/blob/master/implementation-status.md) if you think a feature should be available and isn't. + +This API is structured around the [ImageCapture class](https://w3c.github.io/mediacapture-image/#imagecaptureapi) _and_ a number of [extensions](https://w3c.github.io/mediacapture-image/#extensions) to the `MediaStreamTrack` feeding it (let's call them `theImageCapturer` and `theTrack`, respectively). + +## API Mechanics + +### `takePhoto()` and `grabFrame()` + +- `takePhoto()` returns the result of a single photographic exposure as a `Blob` which can be downloaded, stored by the browser or displayed in an `img` element. This method uses the highest available photographic camera resolution. + +- `grabFrame()` returns a snapshot of the live video in `theTrack` as an `ImageBitmap` object which could (for example) be drawn on a `canvas` and then post-processed to selectively change color values. Note that the `ImageBitmap` will only have the resolution of the video track — which will generally be lower than the camera's still-image resolution. + +(_Adapted from the [Origin Trials Web Update post](https://developers.google.com/web/updates/2016/12/imagecapture)_) + +### Photo settings and capabilities + +The photo-specific options and settings are associated to `theImageCapturer` or `theTrack` depending on whether a given capability/setting has an immediately recognisable effect on `theTrack`, in other words if it's "live" or not. For example, changing the zoom level is instantly reflected on the `theTrack`, while connecting the Red Eye Reduction, if available, is not. + + Object | type | retrieved by... | + :--| :-- | --: | +[`PhotoCapabilities`](https://w3c.github.io/mediacapture-image/##photocapabilities-section) | non-live capabilities | `theImageCapturer.getPhotoCapabilities()` | +[`MediaTrackCapabilities`](https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section) | live capabilities | `theTrack.getCapabilities()` | +| | | +[`PhotoSettings`](https://w3c.github.io/mediacapture-image/##photocapabilities-section) | non-live settings | | +[`MediaTrackSettings`](https://w3c.github.io/mediacapture-image/#mediatracksettings-section) | live settings | `theTrack.getSettings()` | + +## Other topics + +### Are `takePhoto()` and `grabFrame()` the same? + +These methods would not produce the same results as explained in [this issue comment](https://bugs.chromium.org/p/chromium/issues/detail?id=655107#c8): + + +> Let me reconstruct the conversion steps each image goes through in CrOs/Linux; +> [...] +> +> a) Live video capture produces frames via `V4L2CaptureDelegate::DoCapture()` [1]. +> The original data (from the WebCam) comes in either YUY2 (a 4:2:2 format) or +> MJPEG, depending if the capture is smaller than 1280x720p or not, respectively. + +> b) This `V4L2CaptureDelegate` sends the capture frame to a conversion stage to +> I420 [2]. I420 is a 4:2:0 format, so it has lost some information +> irretrievably. This I420 format is the one used for transporting video frames +> to the rendered. + +> c) This I420 is the input to `grabFrame()`, which produces a JS ImageBitmap, +> unencoded, after converting the I420 into RGBA [3] of the appropriate endian-ness. + +> What happens to `takePhoto()`? It takes the data from the Webcam in a) and +> either returns a JPEG Blob [4] or converts the YUY2 [5] and encodes it to PNG +> using the default compression value (6 in a 0-10 scale IIRC) [6]. + +> IOW: + +``` + - for smaller video resolutions: + + OS -> YUY2 ---> I420 --> RGBA --> ImageBitmap grabFrame() + | + +--> RGBA --> PNG ---> Blob takePhoto() + + - and for larger video resolutions: + + OS -> MJPEG ---> I420 --> RGBA --> ImageBitmap grabFrame() + | + +--> JPG ------------> Blob takePhoto() +``` + + +> Where every conversion to-I420 loses information and so does the encoding to +> PNG. Even a conversion `RGBA --> I420 --> RGBA` would not produce the original +> image. (Plus, when you show `ImageBitmap` and/or Blob on an `<img>` or `<canvas>` +> there are more stages of decoding and even colour correction involved!) + +> With all that, I'm not surprised at all that the images are not pixel +> accurate! :-) + + +### Why are `PhotoCapabilities.fillLightMode` and `MediaTrackCapabilities.torch` separated? + +Because they are different things: `torch` means flash constantly on/off whereas `fillLightMode` means flash always-on/always-off/auto _when taking a photographic exposure_. + +`torch` lives in `theTrack` because the effect can be seen "live" on it, whereas `fillLightMode` lives in `theImageCapture` object because the effect of modifying it can only be seen after taking a picture. + + + +## Testing + +Sensors layout tests are located in [`LayoutTests/imagecapture`](https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/LayoutTests/imagecapture/), [`LayoutTests/fast/imagecapture`](https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/LayoutTests/fast/imagecapture/) and [`LayoutTests/external/mediacapture-image`](https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/).
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp index 1c67e1e5..c248588 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp
@@ -383,7 +383,7 @@ // TODO(crbug.com/719053): This wasm behavior differs from other browsers. options.write_wasm_to_stream = ExecutionContext::From(script_state)->IsSecureContext(); - options.for_storage = true; + options.for_storage = SerializedScriptValue::kForStorage; RefPtr<SerializedScriptValue> serialized_value = SerializedScriptValue::Serialize(isolate, value.V8Value(), options, exception_state);
diff --git a/third_party/WebKit/Source/modules/notifications/NotificationData.cpp b/third_party/WebKit/Source/modules/notifications/NotificationData.cpp index 6d07382..d1ebe35a 100644 --- a/third_party/WebKit/Source/modules/notifications/NotificationData.cpp +++ b/third_party/WebKit/Source/modules/notifications/NotificationData.cpp
@@ -87,7 +87,7 @@ v8::Isolate* isolate = data.GetIsolate(); DCHECK(isolate->InContext()); SerializedScriptValue::SerializeOptions options; - options.for_storage = true; + options.for_storage = SerializedScriptValue::kForStorage; RefPtr<SerializedScriptValue> serialized_script_value = SerializedScriptValue::Serialize(isolate, data.V8Value(), options, exception_state);
diff --git a/third_party/WebKit/Source/platform/heap/WrapperVisitor.h b/third_party/WebKit/Source/platform/heap/WrapperVisitor.h index a554b2b..af2c6c9 100644 --- a/third_party/WebKit/Source/platform/heap/WrapperVisitor.h +++ b/third_party/WebKit/Source/platform/heap/WrapperVisitor.h
@@ -27,37 +27,33 @@ template <typename T> class TraceWrapperMember; -/** - * Declares non-virtual traceWrappers method. Should be used on - * non-ScriptWrappable classes which should participate in wrapper tracing (e.g. - * StyleEngine): - * - * class StyleEngine: public TraceWrapperBase { - * public: - * DECLARE_TRACE_WRAPPERS(); - * }; - */ +// Declares non-virtual TraceWrappers method. Should be used on +// non-ScriptWrappable classes which should participate in wrapper tracing (e.g. +// StyleEngine): +// +// class StyleEngine: public TraceWrapperBase { +// public: +// DECLARE_TRACE_WRAPPERS(); +// }; +// #define DECLARE_TRACE_WRAPPERS() \ void TraceWrappers(const WrapperVisitor* visitor) const -/** - * Declares virtual traceWrappers method. It is used in ScriptWrappable, can be - * used to override the method in the subclasses, and can be used by - * non-ScriptWrappable classes which expect to be inherited. - */ +// Declares virtual TraceWrappers method. It is used in ScriptWrappable, can be +// used to override the method in the subclasses, and can be used by +// non-ScriptWrappable classes which expect to be inherited. #define DECLARE_VIRTUAL_TRACE_WRAPPERS() virtual DECLARE_TRACE_WRAPPERS() -/** - * Provides definition of traceWrappers method. Custom code will usually call - * visitor->traceWrappers with all objects which could contribute to the set of - * reachable wrappers: - * - * DEFINE_TRACE_WRAPPERS(NodeRareData) - * { - * visitor->traceWrappers(m_nodeLists); - * visitor->traceWrappers(m_mutationObserverData); - * } - */ +// Provides definition of TraceWrappers method. Custom code will usually call +// visitor->TraceWrappers with all objects which could contribute to the set of +// reachable wrappers: +// +// DEFINE_TRACE_WRAPPERS(NodeRareData) +// { +// visitor->TraceWrappers(node_lists_); +// visitor->TraceWrappers(mutation_observer_data_); +// } +// #define DEFINE_TRACE_WRAPPERS(T) \ void T::TraceWrappers(const WrapperVisitor* visitor) const @@ -106,25 +102,21 @@ MarkAndPushToMarkingDeque(traceable); } - /** - * Trace all wrappers of |t|. - * - * If you cannot use TraceWrapperMember & the corresponding traceWrappers() - * for some reason (e.g., due to sizeof(TraceWrapperMember)), you can use - * Member and |traceWrappersWithManualWriteBarrier()|. See below. - */ + // Trace all wrappers of |t|. + // + // If you cannot use TraceWrapperMember & the corresponding TraceWrappers() + // for some reason (e.g., due to sizeof(TraceWrapperMember)), you can use + // Member and |TraceWrappersWithManualWriteBarrier()|. See below. template <typename T> void TraceWrappers(const TraceWrapperMember<T>& t) const { TraceWrappers(t.Get()); } - /** - * Require all users of manual write barriers to make this explicit in their - * |traceWrappers| definition. Be sure to add - * |ScriptWrappableVisitor::writeBarrier(this, new_value)| after all - * assignments to the field. Otherwise, the objects may be collected - * prematurely. - */ + // Require all users of manual write barriers to make this explicit in their + // |TraceWrappers| definition. Be sure to add + // |ScriptWrappableVisitor::writeBarrier(this, new_value)| after all + // assignments to the field. Otherwise, the objects may be collected + // prematurely. template <typename T> void TraceWrappersWithManualWriteBarrier(const Member<T>& t) const { TraceWrappers(t.Get());
diff --git a/third_party/WebKit/Source/platform/testing/PaintPrinters.cpp b/third_party/WebKit/Source/platform/testing/PaintPrinters.cpp index 4b1d740..047f2db4 100644 --- a/third_party/WebKit/Source/platform/testing/PaintPrinters.cpp +++ b/third_party/WebKit/Source/platform/testing/PaintPrinters.cpp
@@ -9,21 +9,6 @@ #include <iomanip> // NOLINT #include <ostream> // NOLINT -namespace { -class StreamStateSaver : private std::ios { - WTF_MAKE_NONCOPYABLE(StreamStateSaver); - - public: - StreamStateSaver(std::ios& other) : std::ios(nullptr), m_other(other) { - copyfmt(other); - } - ~StreamStateSaver() { m_other.copyfmt(*this); } - - private: - std::ios& m_other; -}; -} // unnamed namespace - namespace blink { void PrintTo(const PaintChunk& chunk, std::ostream* os) {
diff --git a/third_party/WebKit/Source/platform/text/LineEnding.cpp b/third_party/WebKit/Source/platform/text/LineEnding.cpp index b59713fa..766b2f2 100644 --- a/third_party/WebKit/Source/platform/text/LineEnding.cpp +++ b/third_party/WebKit/Source/platform/text/LineEnding.cpp
@@ -36,6 +36,7 @@ #include "platform/wtf/text/CString.h" #include "platform/wtf/text/WTFString.h" +namespace blink { namespace { class OutputBuffer { @@ -44,53 +45,53 @@ public: OutputBuffer() {} - virtual char* allocate(size_t) = 0; - virtual void copy(const CString&) = 0; + virtual char* Allocate(size_t) = 0; + virtual void Copy(const CString&) = 0; virtual ~OutputBuffer() {} }; class CStringBuffer final : public OutputBuffer { public: - CStringBuffer(CString& buffer) : m_buffer(buffer) {} + CStringBuffer(CString& buffer) : buffer_(buffer) {} ~CStringBuffer() override {} - char* allocate(size_t size) override { + char* Allocate(size_t size) override { char* ptr; - m_buffer = CString::CreateUninitialized(size, ptr); + buffer_ = CString::CreateUninitialized(size, ptr); return ptr; } - void copy(const CString& source) override { m_buffer = source; } + void Copy(const CString& source) override { buffer_ = source; } - const CString& buffer() const { return m_buffer; } + const CString& Buffer() const { return buffer_; } private: - CString m_buffer; + CString buffer_; }; class VectorCharAppendBuffer final : public OutputBuffer { public: - VectorCharAppendBuffer(Vector<char>& buffer) : m_buffer(buffer) {} + VectorCharAppendBuffer(Vector<char>& buffer) : buffer_(buffer) {} ~VectorCharAppendBuffer() override {} - char* allocate(size_t size) override { - size_t oldSize = m_buffer.size(); - m_buffer.Grow(oldSize + size); - return m_buffer.data() + oldSize; + char* Allocate(size_t size) override { + size_t old_size = buffer_.size(); + buffer_.Grow(old_size + size); + return buffer_.data() + old_size; } - void copy(const CString& source) override { - m_buffer.Append(source.data(), source.length()); + void Copy(const CString& source) override { + buffer_.Append(source.data(), source.length()); } private: - Vector<char>& m_buffer; + Vector<char>& buffer_; }; -void internalNormalizeLineEndingsToCRLF(const CString& from, +void InternalNormalizeLineEndingsToCRLF(const CString& from, OutputBuffer& buffer) { // Compute the new length. - size_t newLen = 0; + size_t new_len = 0; const char* p = from.data(); while (p < from.data() + from.length()) { char c = *p++; @@ -98,26 +99,26 @@ // Safe to look ahead because of trailing '\0'. if (*p != '\n') { // Turn CR into CRLF. - newLen += 2; + new_len += 2; } } else if (c == '\n') { // Turn LF into CRLF. - newLen += 2; + new_len += 2; } else { // Leave other characters alone. - newLen += 1; + new_len += 1; } } - if (newLen < from.length()) + if (new_len < from.length()) return; - if (newLen == from.length()) { - buffer.copy(from); + if (new_len == from.length()) { + buffer.Copy(from); return; } p = from.data(); - char* q = buffer.allocate(newLen); + char* q = buffer.Allocate(new_len); // Make a copy of the string. while (p < from.data() + from.length()) { @@ -140,9 +141,7 @@ } } -} // namespace; - -namespace blink { +} // namespace void NormalizeLineEndingsToLF(const CString& from, Vector<char>& result) { // Compute the new length. @@ -198,14 +197,14 @@ return from; CString result; CStringBuffer buffer(result); - internalNormalizeLineEndingsToCRLF(from, buffer); - return buffer.buffer(); + InternalNormalizeLineEndingsToCRLF(from, buffer); + return buffer.Buffer(); } void NormalizeLineEndingsToNative(const CString& from, Vector<char>& result) { #if OS(WIN) VectorCharAppendBuffer buffer(result); - internalNormalizeLineEndingsToCRLF(from, buffer); + InternalNormalizeLineEndingsToCRLF(from, buffer); #else NormalizeLineEndingsToLF(from, result); #endif
diff --git a/third_party/WebKit/Source/platform/wtf/PrintStream.h b/third_party/WebKit/Source/platform/wtf/PrintStream.h index 2c459b9..2e782eb 100644 --- a/third_party/WebKit/Source/platform/wtf/PrintStream.h +++ b/third_party/WebKit/Source/platform/wtf/PrintStream.h
@@ -92,43 +92,8 @@ value.Dump(out); } -#define MAKE_PRINT_ADAPTOR(Name, Type, function) \ - class Name final { \ - STACK_ALLOCATED(); \ - \ - public: \ - Name(const Type& value) : value_(value) {} \ - void Dump(PrintStream& out) const { function(out, value_); } \ - \ - private: \ - Type value_; \ - } - -#define MAKE_PRINT_METHOD_ADAPTOR(Name, Type, method) \ - class Name final { \ - STACK_ALLOCATED(); \ - \ - public: \ - Name(const Type& value) : m_value(value) {} \ - void dump(PrintStream& out) const { m_value.method(out); } \ - \ - private: \ - const Type& m_value; \ - } - -#define MAKE_PRINT_METHOD(Type, dumpMethod, method) \ - MAKE_PRINT_METHOD_ADAPTOR(DumperFor_##method, Type, dumpMethod); \ - DumperFor_##method method() const { return DumperFor_##method(*this); } - -// Use an adaptor-based dumper for characters to avoid situations where -// you've "compressed" an integer to a character and it ends up printing -// as ASCII when you wanted it to print as a number. -void DumpCharacter(PrintStream&, char); -MAKE_PRINT_ADAPTOR(CharacterDump, char, DumpCharacter); - } // namespace WTF -using WTF::CharacterDump; using WTF::PrintStream; #endif // PrintStream_h
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/common/webkit_finder.py b/third_party/WebKit/Tools/Scripts/webkitpy/common/webkit_finder.py index d0b2242..aedec30 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/common/webkit_finder.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/common/webkit_finder.py
@@ -80,8 +80,6 @@ self._dirsep = filesystem.sep self._sys_path = sys.path self._env_path = os.environ['PATH'].split(os.pathsep) - self._chromium_base = None - self._depot_tools = None @memoized def _webkit_base(self): @@ -96,10 +94,9 @@ assert tools_index != -1, 'could not find location of this checkout from %s' % module_path return self._filesystem.normpath(module_path[0:tools_index - 1]) + @memoized def chromium_base(self): - if not self._chromium_base: - self._chromium_base = self._filesystem.dirname(self._filesystem.dirname(self._webkit_base())) - return self._chromium_base + return self._filesystem.dirname(self._filesystem.dirname(self._webkit_base())) # Do not expose this function in order to make the code robust against # directory structure changes. @@ -146,14 +143,13 @@ return None return file_path[len(layout_tests_rel_path) + 1:] + @memoized def depot_tools_base(self): - if not self._depot_tools: - # This basically duplicates src/build/find_depot_tools.py without the side effects - # (adding the directory to sys.path and importing breakpad). - self._depot_tools = (self._check_paths_for_depot_tools(self._sys_path) or - self._check_paths_for_depot_tools(self._env_path) or - self._check_upward_for_depot_tools()) - return self._depot_tools + # This basically duplicates src/build/find_depot_tools.py without the side effects + # (adding the directory to sys.path and importing breakpad). + return (self._check_paths_for_depot_tools(self._sys_path) or + self._check_paths_for_depot_tools(self._env_path) or + self._check_upward_for_depot_tools()) def _check_paths_for_depot_tools(self, paths): for path in paths:
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/common.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/common.py index 17751ff..d9a641d 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/common.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/common.py
@@ -11,11 +11,7 @@ WPT_DEST_NAME = 'wpt' -WPT_GH_ORG = 'w3c' -WPT_GH_REPO_NAME = 'web-platform-tests' -WPT_GH_URL = 'https://github.com/%s/%s/' % (WPT_GH_ORG, WPT_GH_REPO_NAME) -WPT_GH_SSH_URL_TEMPLATE = 'https://{}@github.com/%s/%s.git' % (WPT_GH_ORG, WPT_GH_REPO_NAME) -WPT_REVISION_FOOTER = 'WPT-Export-Revision:' +WPT_GH_REPO_URL_TEMPLATE = 'https://{}@github.com/w3c/web-platform-tests.git' # TODO(qyearsley): This directory should be able to be constructed with # WebKitFinder and WPT_DEST_NAME, plus the string "external".
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit.py index 037b9e63..a9007997a 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit.py
@@ -12,7 +12,7 @@ URL_BASE = 'https://chromium-review.googlesource.com' -class GerritAPI(object): +class Gerrit(object): """A utility class for the Chromium code review API. Wraps the API for Chromium's Gerrit instance at chromium-review.googlesource.com. @@ -23,18 +23,13 @@ self.user = user self.token = token - def get(self, path, raw=False): - url = URL_BASE + path + def api_get(self, url): raw_data = self.host.web.get_binary(url) - if raw: - return raw_data + return json.loads(raw_data[5:]) # strip JSONP preamble - # Gerrit API responses are prefixed by a 5-character JSONP preamble - return json.loads(raw_data[5:]) - - def post(self, path, data): - url = URL_BASE + path - assert self.user and self.token, 'Gerrit user and token required for authenticated routes.' + def api_post(self, url, data): + if not (self.user and self.token): + raise 'Gerrit user and token requried for authenticated routes.' b64auth = base64.b64encode('{}:{}'.format(self.user, self.token)) headers = { @@ -43,72 +38,54 @@ } return self.host.web.request('POST', url, data=json.dumps(data), headers=headers) - def query_exportable_open_cls(self, limit=200): - path = ('/changes/?q=project:\"chromium/src\"+status:open' - '&o=CURRENT_FILES&o=CURRENT_REVISION&o=COMMIT_FOOTERS' - '&o=DETAILED_ACCOUNTS&n={}').format(limit) - open_cls_data = self.get(path) - open_cls = [GerritCL(data, self) for data in open_cls_data] + def cl_url(self, number): + return 'https://chromium-review.googlesource.com/c/{}/'.format(number) - return [cl for cl in open_cls if cl.is_exportable()] + def get_diff(self, cl): + """Get full diff for latest revision of CL.""" + revision = cl['revisions'].items()[0][1] + revision_id = cl['revisions'].items()[0][0] + files = revision['files'].keys() + diff = '' + for filename in files: + url = '{url_base}/changes/{change_id}/revisions/{revision_id}/files/{file_id}/diff'.format( + url_base=URL_BASE, + change_id=cl['id'], + revision_id=revision_id, + file_id=urllib.quote_plus(filename), + ) + data = self.api_get(url) + diff += data -class GerritCL(object): - """A data wrapper for a Chromium Gerrit CL.""" + return diff - def __init__(self, data, api): - assert data['change_id'] - self._data = data - self.api = api - - @property - def url(self): - return 'https://chromium-review.googlesource.com/c/%s' % self._data['_number'] - - @property - def subject(self): - return self._data['subject'] - - @property - def change_id(self): - return self._data['change_id'] - - @property - def owner_email(self): - return self._data['owner']['email'] - - @property - def current_revision(self): - return self._data['current_revision'] - - def latest_commit_message_with_footers(self): - return self._data['revisions'][self.current_revision]['commit_with_footers'] - - @property - def current_revision_description(self): - return self._data['revisions'][self.current_revision]['description'] - - def post_comment(self, message): - path = '/a/changes/{change_id}/revisions/current/review'.format( - change_id=self.change_id, + def post_comment(self, cl_id, revision_id, message): + url = '{url_base}/a/changes/{change_id}/revisions/{revision_id}/review'.format( + url_base=URL_BASE, + change_id=cl_id, + revision_id=revision_id, ) - return self.api.post(path, {'message': message}) + return self.api_post(url, {'message': message}) - def is_exportable(self): - files = self.current_revision['files'].keys() + def query_open_cls(self, limit=200): + url = ('{}/changes/?q=project:\"chromium/src\"+status:open' + '&o=CURRENT_FILES&o=CURRENT_REVISION&o=COMMIT_FOOTERS&n={}').format(URL_BASE, limit) + open_cls = self.api_get(url) - # Guard against accidental CLs that touch thousands of files. - if len(files) > 1000: - _log.info('Rejecting CL with over 1000 files: %s (ID: %s) ', self.subject, self.change_id) + return [cl for cl in open_cls if self.is_exportable(cl)] + + def is_exportable(self, cl): + revision = cl['revisions'].items()[0][1] + files = revision['files'].keys() + + if cl['subject'].startswith('Import wpt@'): return False - if self.subject.startswith('Import wpt@'): + if 'Import' in cl['subject']: return False - if 'Import' in self.subject: - return False - - if 'NOEXPORT=true' in self.current_revision['commit_with_footers']: + if 'NOEXPORT=true' in revision['commit_with_footers']: return False files_in_wpt = [f for f in files if f.startswith('third_party/WebKit/LayoutTests/external/wpt')] @@ -129,8 +106,3 @@ and not filename.startswith('.') and not filename.endswith('.json') ) - - def get_patch(self): - """Gets patch for latest revision of CL.""" - path = '/changes/{change_id}/revisions/current/patch'.format(change_id=self.change_id) - return base64.b64decode(self.api.get(path, raw=True))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit_mock.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit_mock.py index 65978b7..72e523b 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit_mock.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/gerrit_mock.py
@@ -3,18 +3,12 @@ # found in the LICENSE file. -class MockGerritAPI(object): +class MockGerrit(object): def __init__(self, host, user, token): self.host = host self.user = user self.token = token - def query_exportable_open_cls(self): + def query_open_cls(self): return [] - - def get(self, path, raw=False): # pylint: disable=unused-argument - return '' if raw else {} - - def post(self, path, data): # pylint: disable=unused-argument - return {}
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt.py index 20e4844..cfdc3e42 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt.py
@@ -8,7 +8,7 @@ from webkitpy.common.system.executive import ScriptError from webkitpy.w3c.chromium_commit import ChromiumCommit -from webkitpy.w3c.common import WPT_GH_SSH_URL_TEMPLATE, CHROMIUM_WPT_DIR +from webkitpy.w3c.common import WPT_GH_REPO_URL_TEMPLATE, CHROMIUM_WPT_DIR _log = logging.getLogger(__name__) @@ -36,7 +36,7 @@ self.run(['git', 'checkout', 'origin/master']) else: _log.info('Cloning GitHub w3c/web-platform-tests into %s', self.path) - remote_url = WPT_GH_SSH_URL_TEMPLATE.format(self.gh_token) + remote_url = WPT_GH_REPO_URL_TEMPLATE.format(self.gh_token) self.host.executive.run_command(['git', 'clone', remote_url, self.path]) def run(self, command, **kwargs): @@ -62,7 +62,7 @@ self.run(['git', 'clean', '-fdx']) self.run(['git', 'checkout', 'origin/master']) - def create_branch_with_patch(self, branch_name, message, patch, author, force_push=False): + def create_branch_with_patch(self, branch_name, message, patch, author): """Commits the given patch and pushes to the upstream repo. Args: @@ -70,20 +70,9 @@ message: Commit message string. patch: A patch that can be applied by git apply. author: The git commit author. - force_push: Applies the -f flag in `git push`. """ self.clean() - try: - # This won't be exercised in production because wpt-exporter - # always runs on a clean machine. But it's useful when running - # locally since branches stick around. - _log.info('Deleting old branch %s', branch_name) - self.run(['git', 'branch', '-D', branch_name]) - except ScriptError: - # Ignore errors if branch not found. - pass - _log.info('Creating local branch %s', branch_name) self.run(['git', 'checkout', '-b', branch_name]) @@ -95,13 +84,7 @@ self.run(['git', 'apply', '-'], input=patch) self.run(['git', 'add', '.']) self.run(['git', 'commit', '--author', author, '-am', message]) - - # Force push is necessary when updating a PR with a new patch - # from Gerrit. - if force_push: - self.run(['git', 'push', '-f', 'origin', branch_name]) - else: - self.run(['git', 'push', 'origin', branch_name]) + self.run(['git', 'push', 'origin', branch_name]) def test_patch(self, patch, chromium_commit=None): """Returns the expected output of a patch against origin/master.
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt_unittest.py index cf623b9..c5ebd58 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/local_wpt_unittest.py
@@ -93,7 +93,6 @@ ['git', 'reset', '--hard', 'HEAD'], ['git', 'clean', '-fdx'], ['git', 'checkout', 'origin/master'], - ['git', 'branch', '-D', 'chromium-export-decafbad'], ['git', 'checkout', '-b', 'chromium-export-decafbad'], ['git', 'apply', '-'], ['git', 'add', '.'],
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py index 9b384df..4760610 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py
@@ -5,18 +5,15 @@ import logging from webkitpy.w3c.local_wpt import LocalWPT -from webkitpy.w3c.common import ( - exportable_commits_over_last_n_commits, - WPT_GH_URL, - WPT_REVISION_FOOTER -) -from webkitpy.w3c.gerrit import GerritAPI, GerritCL +from webkitpy.w3c.common import exportable_commits_over_last_n_commits +from webkitpy.w3c.gerrit import Gerrit from webkitpy.w3c.wpt_github import WPTGitHub, MergeError _log = logging.getLogger(__name__) PR_HISTORY_WINDOW = 100 COMMIT_HISTORY_WINDOW = 5000 +WPT_URL = 'https://github.com/w3c/web-platform-tests/' class TestExporter(object): @@ -25,7 +22,7 @@ self.host = host self.wpt_github = WPTGitHub(host, gh_user, gh_token, pr_history_window=PR_HISTORY_WINDOW) - self.gerrit = GerritAPI(self.host, gerrit_user, gerrit_token) + self.gerrit = Gerrit(self.host, gerrit_user, gerrit_token) self.dry_run = dry_run self.local_wpt = LocalWPT(self.host, gh_token) @@ -36,43 +33,39 @@ The exporter will look in chronological order at every commit in Chromium. """ - open_gerrit_cls = self.gerrit.query_exportable_open_cls() + open_gerrit_cls = self.gerrit.query_open_cls() self.process_gerrit_cls(open_gerrit_cls) exportable_commits = self.get_exportable_commits(limit=COMMIT_HISTORY_WINDOW) for exportable_commit in exportable_commits: pull_request = self.wpt_github.pr_with_position(exportable_commit.position) - if pull_request: if pull_request.state == 'open': self.merge_pull_request(pull_request) + # TODO(jeffcarp): if this was from Gerrit, comment back on the Gerrit CL that the PR was merged else: _log.info('Pull request is not open: #%d %s', pull_request.number, pull_request.title) else: self.create_pull_request(exportable_commit) def process_gerrit_cls(self, gerrit_cls): - """Creates or updates PRs for Gerrit CLs.""" + """Iterates through Gerrit CLs and prints their statuses. + + Right now this method does nothing. In the future it will create PRs for CLs and help + transition them when they're landed. + """ for cl in gerrit_cls: - _log.info('Found Gerrit in-flight CL: "%s" %s', cl.subject, cl.url) + cl_url = 'https://chromium-review.googlesource.com/c/%s' % cl['_number'] + _log.info('Found Gerrit in-flight CL: "%s" %s', cl['subject'], cl_url) # Check if CL already has a corresponding PR - pull_request = self.wpt_github.pr_with_change_id(cl.change_id) + pull_request = self.wpt_github.pr_with_change_id(cl['change_id']) if pull_request: - pr_url = '{}pull/{}'.format(WPT_GH_URL, pull_request.number) + pr_url = '{}pull/{}'.format(WPT_URL, pull_request.number) _log.info('In-flight PR found: %s', pr_url) - - pr_cl_revision = self.wpt_github.extract_metadata(WPT_REVISION_FOOTER + ' ', pull_request.body) - if cl.current_revision == pr_cl_revision: - _log.info('PR revision matches CL revision. Nothing to do here.') - continue - - _log.info('New revision found, updating PR...') - self.create_or_update_pull_request_from_cl(cl, pull_request) else: - _log.info('No in-flight PR found for CL. Creating...') - self.create_or_update_pull_request_from_cl(cl) + _log.info('No in-flight PR found for CL.') def get_exportable_commits(self, limit): @@ -80,7 +73,7 @@ def merge_pull_request(self, pull_request): _log.info('In-flight PR found: %s', pull_request.title) - _log.info('%spull/%d', WPT_GH_URL, pull_request.number) + _log.info('https://github.com/w3c/web-platform-tests/pull/%d', pull_request.number) if self.dry_run: _log.info('[dry_run] Would have attempted to merge PR') @@ -98,17 +91,6 @@ # This is in the try block because if a PR can't be merged, we shouldn't # delete its branch. self.wpt_github.delete_remote_branch(branch) - - change_id = self.wpt_github.extract_metadata('Change-Id: ', pull_request.body) - if change_id: - cl = GerritCL(data={'change_id': change_id}, api=self.gerrit) - pr_url = '{}pull/{}'.format(WPT_GH_URL, pull_request.number) - cl.post_comment(( - 'The WPT PR for this CL has been merged upstream! {pr_url}' - ).format( - pr_url=pr_url - )) - except MergeError: _log.info('Could not merge PR.') @@ -172,57 +154,3 @@ _log.info('Add label response (status %s): %s', status_code, data) return response_data - - def create_or_update_pull_request_from_cl(self, cl, pull_request=None): - patch = cl.get_patch() - updating = bool(pull_request) - - if self.dry_run: - if updating: - _log.info('[dry_run] Stopping before updating PR from CL') - else: - _log.info('[dry_run] Stopping before creating PR from CL') - _log.info('\n\n[dry_run] subject:') - _log.info(cl.subject) - _log.debug('\n\n[dry_run] patch:') - _log.debug(patch) - return - - message = cl.latest_commit_message_with_footers() - if not updating: - # Annotate revision footer for Exporter's later use. - message += '\n{} {}'.format(WPT_REVISION_FOOTER, cl.current_revision) - - branch_name = 'chromium-export-cl-{id}'.format(id=cl.change_id) - self.local_wpt.create_branch_with_patch(branch_name, message, patch, cl.owner_email, force_push=True) - - if updating: - response_data = self.wpt_github.update_pr(pull_request.number, cl.subject, message) - _log.debug('Update PR response: %s', response_data) - - # TODO(jeffcarp): Turn PullRequest into a class with a .url method - - cl.post_comment(( - 'Successfully updated WPT GitHub pull request with ' - 'new revision "{subject}": {pr_url}' - ).format( - subject=cl.current_revision_description, - pr_url='%spull/%d' % (WPT_GH_URL, pull_request.number), - )) - else: - response_data = self.wpt_github.create_pr(branch_name, cl.subject, message) - _log.debug('Create PR response: %s', response_data) - - data, status_code = self.wpt_github.add_label(response_data['number']) - _log.info('Add label response (status %s): %s', status_code, data) - - cl.post_comment(( - 'Exportable changes to web-platform-tests were detected in this CL ' - 'and a pull request in the upstream repo has been made: {pr_url}.\n\n' - 'Travis CI has been kicked off and if it fails, we will let you know here. ' - 'If this CL lands and Travis CI is green, we will auto-merge the PR.' - ).format( - pr_url='%spull/%d' % (WPT_GH_URL, response_data['number']) - )) - - return response_data
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py index b4e07fdb..73b01179 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py
@@ -10,8 +10,7 @@ from webkitpy.w3c.test_exporter import TestExporter from webkitpy.w3c.wpt_github import PullRequest from webkitpy.w3c.wpt_github_mock import MockWPTGitHub -from webkitpy.w3c.gerrit import GerritCL -from webkitpy.w3c.gerrit_mock import MockGerritAPI +from webkitpy.w3c.gerrit_mock import MockGerrit class TestExporterTest(unittest.TestCase): @@ -29,7 +28,7 @@ test_exporter.wpt_github = MockWPTGitHub(pull_requests=[ PullRequest(title='title1', number=1234, body='', state='open'), ]) - test_exporter.gerrit = MockGerritAPI(host, 'gerrit-username', 'gerrit-token') + test_exporter.gerrit = MockGerrit(host, 'gerrit-username', 'gerrit-token') test_exporter.get_exportable_commits = lambda limit: [ ChromiumCommit(host, position='refs/heads/master@{#458475}'), ChromiumCommit(host, position='refs/heads/master@{#458476}'), @@ -72,19 +71,16 @@ host.executive = MockExecutive(run_command_fn=mock_command) test_exporter = TestExporter(host, 'gh-username', 'gh-token', gerrit_user=None, gerrit_token=None) test_exporter.wpt_github = MockWPTGitHub(pull_requests=[], create_pr_fail_index=1) - test_exporter.gerrit = MockGerritAPI(host, 'gerrit-username', 'gerrit-token') + test_exporter.gerrit = MockGerrit(host, 'gerrit-username', 'gerrit-token') test_exporter.run() self.assertEqual(test_exporter.wpt_github.calls, [ 'pr_with_position', 'create_pr', - 'add_label', 'pr_with_position', 'create_pr', - 'add_label', 'pr_with_position', 'create_pr', - 'add_label', ]) self.assertEqual(test_exporter.wpt_github.pull_requests_created, [ ('chromium-export-c881563d73', 'older fake text', 'older fake text'), @@ -123,7 +119,7 @@ state='open' ), ], unsuccessful_merge_index=0) - test_exporter.gerrit = MockGerritAPI(host, 'gerrit-username', 'gerrit-token') + test_exporter.gerrit = MockGerrit(host, 'gerrit-username', 'gerrit-token') test_exporter.get_exportable_commits = lambda limit: [ ChromiumCommit(host, position='refs/heads/master@{#458475}'), ChromiumCommit(host, position='refs/heads/master@{#458476}'), @@ -137,7 +133,6 @@ 'merge_pull_request', 'pr_with_position', 'create_pr', - 'add_label', 'pr_with_position', 'pr_with_position', 'get_pr_branch', @@ -149,98 +144,3 @@ 'git show text\nCr-Commit-Position: refs/heads/master@{#458476}', 'git show text\nCr-Commit-Position: refs/heads/master@{#458476}'), ]) - - def test_new_gerrit_cl(self): - host = MockHost() - test_exporter = TestExporter(host, 'gh-username', 'gh-token', gerrit_user=None, - gerrit_token=None, dry_run=False) - test_exporter.wpt_github = MockWPTGitHub(pull_requests=[]) - test_exporter.get_exportable_commits = lambda limit: [] - test_exporter.gerrit = MockGerritAPI(host, 'gerrit-username', 'gerrit-token') - test_exporter.gerrit.query_exportable_open_cls = lambda: [ - GerritCL(data={ - 'change_id': '1', - 'subject': 'subject', - '_number': '1', - 'current_revision': '1', - 'revisions': { - '1': {'commit_with_footers': 'a commit with footers'} - }, - 'owner': {'email': 'test@chromium.org'}, - }, api=test_exporter.gerrit), - ] - test_exporter.run() - self.assertEqual(test_exporter.wpt_github.calls, [ - 'pr_with_change_id', - 'create_pr', - 'add_label', - ]) - self.assertEqual(test_exporter.wpt_github.pull_requests_created, [ - ('chromium-export-cl-1', - 'subject', - 'a commit with footers\nWPT-Export-Revision: 1'), - ]) - - def test_gerrit_cl_no_update_if_pr_with_same_revision(self): - host = MockHost() - test_exporter = TestExporter(host, 'gh-username', 'gh-token', gerrit_user=None, - gerrit_token=None, dry_run=False) - test_exporter.wpt_github = MockWPTGitHub(pull_requests=[ - PullRequest(title='title1', number=1234, - body='description\nWPT-Export-Revision: 1', state='open'), - ]) - test_exporter.get_exportable_commits = lambda limit: [] - test_exporter.gerrit = MockGerritAPI(host, 'gerrit-username', 'gerrit-token') - test_exporter.gerrit.query_exportable_open_cls = lambda: [ - GerritCL(data={ - 'change_id': '1', - 'subject': 'subject', - '_number': '1', - 'current_revision': '1', - 'revisions': { - '1': {'commit_with_footers': 'a commit with footers'} - }, - 'owner': {'email': 'test@chromium.org'}, - }, api=test_exporter.gerrit), - ] - test_exporter.run() - self.assertEqual(test_exporter.wpt_github.calls, [ - 'pr_with_change_id', - ]) - self.assertEqual(test_exporter.wpt_github.pull_requests_created, []) - - def test_gerrit_cl_updates_if_cl_has_new_revision(self): - host = MockHost() - test_exporter = TestExporter(host, 'gh-username', 'gh-token', gerrit_user=None, - gerrit_token=None, dry_run=False) - test_exporter.wpt_github = MockWPTGitHub(pull_requests=[ - PullRequest(title='title1', number=1234, - body='description\nWPT-Export-Revision: 1', state='open'), - ]) - test_exporter.get_exportable_commits = lambda limit: [] - test_exporter.gerrit = MockGerritAPI(host, 'gerrit-username', 'gerrit-token') - test_exporter.gerrit.query_exportable_open_cls = lambda: [ - GerritCL(data={ - 'change_id': '1', - 'subject': 'subject', - '_number': '1', - 'current_revision': '2', - 'revisions': { - '1': { - 'commit_with_footers': 'a commit with footers 1', - 'description': 'subject 1', - }, - '2': { - 'commit_with_footers': 'a commit with footers 2', - 'description': 'subject 2', - }, - }, - 'owner': {'email': 'test@chromium.org'}, - }, api=test_exporter.gerrit), - ] - test_exporter.run() - self.assertEqual(test_exporter.wpt_github.calls, [ - 'pr_with_change_id', - 'update_pr', - ]) - self.assertEqual(test_exporter.wpt_github.pull_requests_created, [])
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py index b0f59ca..2c4c37ca 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py
@@ -8,7 +8,6 @@ import urllib2 from collections import namedtuple -from webkitpy.w3c.common import WPT_GH_ORG, WPT_GH_REPO_NAME from webkitpy.common.memoized import memoized @@ -64,7 +63,7 @@ assert desc_title assert body - path = '/repos/%s/%s/pulls' % (WPT_GH_ORG, WPT_GH_REPO_NAME) + path = '/repos/w3c/web-platform-tests/pulls' body = { 'title': desc_title, 'body': body, @@ -78,45 +77,13 @@ return data - def update_pr(self, pr_number, desc_title, body): - """Updates a PR on GitHub. - - API doc: https://developer.github.com/v3/pulls/#update-a-pull-request - - Returns: - A raw response object if successful, None if not. - """ - path = '/repos/{}/{}/pulls/{}'.format( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - pr_number - ) - body = { - 'title': desc_title, - 'body': body, - } - data, status_code = self.request(path, method='PATCH', body=body) - - if status_code != 201: - return None - - return data - def add_label(self, number): - path = '/repos/%s/%s/issues/%d/labels' % ( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - number - ) + path = '/repos/w3c/web-platform-tests/issues/%d/labels' % number body = [EXPORT_LABEL] return self.request(path, method='POST', body=body) def in_flight_pull_requests(self): - path = '/search/issues?q=repo:{}/{}%20is:open%20type:pr%20label:{}'.format( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - EXPORT_LABEL - ) + path = '/search/issues?q=repo:w3c/web-platform-tests%20is:open%20type:pr%20label:{}'.format(EXPORT_LABEL) data, status_code = self.request(path, method='GET') if status_code == 200: return [self.make_pr_from_item(item) for item in data['items']] @@ -134,17 +101,10 @@ def all_pull_requests(self): # TODO(jeffcarp): Add pagination to fetch >99 PRs assert self._pr_history_window <= 100, 'Maximum GitHub page size exceeded.' - path = ( - '/search/issues' - '?q=repo:{}/{}%20type:pr%20label:{}' - '&page=1' - '&per_page={}' - ).format( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - EXPORT_LABEL, - self._pr_history_window - ) + path = ('/search/issues' + '?q=repo:w3c/web-platform-tests%20type:pr%20label:{}' + '&page=1' + '&per_page={}').format(EXPORT_LABEL, self._pr_history_window) data, status_code = self.request(path, method='GET') if status_code == 200: return [self.make_pr_from_item(item) for item in data['items']] @@ -152,11 +112,7 @@ raise Exception('Non-200 status code (%s): %s' % (status_code, data)) def get_pr_branch(self, pr_number): - path = '/repos/{}/{}/pulls/{}'.format( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - pr_number - ) + path = '/repos/w3c/web-platform-tests/pulls/{}'.format(pr_number) data, status_code = self.request(path, method='GET') if status_code == 200: return data['head']['ref'] @@ -164,11 +120,7 @@ raise Exception('Non-200 status code (%s): %s' % (status_code, data)) def merge_pull_request(self, pull_request_number): - path = '/repos/%s/%s/pulls/%d/merge' % ( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - pull_request_number - ) + path = '/repos/w3c/web-platform-tests/pulls/%d/merge' % pull_request_number body = { # This currently will noop because the feature is in an opt-in beta. # Once it leaves beta this will start working. @@ -190,11 +142,7 @@ def delete_remote_branch(self, remote_branch_name): # TODO(jeffcarp): Unit test this method - path = '/repos/%s/%s/git/refs/heads/%s' % ( - WPT_GH_ORG, - WPT_GH_REPO_NAME, - remote_branch_name - ) + path = '/repos/w3c/web-platform-tests/git/refs/heads/%s' % remote_branch_name data, status_code = self.request(path, method='DELETE') if status_code != 204: @@ -205,19 +153,19 @@ def pr_with_change_id(self, target_change_id): for pull_request in self.all_pull_requests(): - change_id = self.extract_metadata('Change-Id: ', pull_request.body) + change_id = self._extract_metadata('Change-Id: ', pull_request.body) if change_id == target_change_id: return pull_request return None def pr_with_position(self, position): for pull_request in self.all_pull_requests(): - pr_commit_position = self.extract_metadata('Cr-Commit-Position: ', pull_request.body) + pr_commit_position = self._extract_metadata('Cr-Commit-Position: ', pull_request.body) if position == pr_commit_position: return pull_request return None - def extract_metadata(self, tag, commit_body): + def _extract_metadata(self, tag, commit_body): for line in commit_body.splitlines(): if line.startswith(tag): return line[len(tag):]
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py index 9060d206..69abba4 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py
@@ -32,25 +32,20 @@ def create_pr(self, remote_branch_name, desc_title, body): self.calls.append('create_pr') + assert remote_branch_name + assert desc_title + assert body + if self.create_pr_fail_index != self.create_pr_index: self.pull_requests_created.append((remote_branch_name, desc_title, body)) self.create_pr_index += 1 - return {'number': 5678} - - def update_pr(self, pr_number, desc_title, body): # pylint: disable=unused-argument - self.calls.append('update_pr') - - return {'number': 5678} + return {} def delete_remote_branch(self, _): self.calls.append('delete_remote_branch') - def add_label(self, _): - self.calls.append('add_label') - return {}, 200 - def get_pr_branch(self, number): self.calls.append('get_pr_branch') return 'fake branch for PR {}'.format(number) @@ -66,9 +61,3 @@ for pr in self.pull_requests: if change_id in pr.body: return pr - - def extract_metadata(self, tag, commit_body): - for line in commit_body.splitlines(): - if line.startswith(tag): - return line[len(tag):] - return None
diff --git a/third_party/WebKit/Tools/Scripts/wpt-export b/third_party/WebKit/Tools/Scripts/wpt-export index f2057d3..eb26a13 100755 --- a/third_party/WebKit/Tools/Scripts/wpt-export +++ b/third_party/WebKit/Tools/Scripts/wpt-export
@@ -44,46 +44,34 @@ help='Gerrit username (found on settings page or in .gitcookies).') parser.add_argument('--gerrit-token', default=None, help='Gerrit API key (found on settings page or in .gitcookies).') - - # TODO(jeffcarp): Remove this after SSHing into wpt-exporter and updating file parser.add_argument( '--github-credentials-json', - help='Deprecated. Use --credentials-json.') - - parser.add_argument( - '--credentials-json', - help='A JSON file with an object containing zero or more of the following ' - 'keys that can override command line flags: ' - 'GH_USER, GH_TOKEN, GERRIT_USER, GERRIT_TOKEN') + help='A JSON file with schema {"GH_USER": "", "GH_TOKEN": ""}. ' + 'This will override credentials that were passed via command line or env var.') args = parser.parse_args() host = Host() - credentials = { - 'GH_USER': args.gh_user, - 'GH_TOKEN': args.gh_token, - } - credentials_json = None + gh_user = args.gh_user + gh_token = args.gh_token + if not gh_user: + gh_user = host.environ.get('GH_USER') + if not gh_token: + gh_token = host.environ.get('GH_TOKEN') if args.github_credentials_json: - credentials_json = args.github_credentials_json - if args.credentials_json: - credentials_json = args.credentials_json - - if credentials_json: - with open(credentials_json, 'r') as f: + with open(args.github_credentials_json, 'r') as f: contents = json.load(f) - for key in ('GH_USER', 'GH_TOKEN', 'GERRIT_USER', 'GERRIT_TOKEN'): - if key in contents: - credentials[key] = contents[key] + gh_user = contents['GH_USER'] + gh_token = contents['GH_TOKEN'] - if not (credentials['GH_USER'] and credentials['GH_TOKEN']): + if not (gh_user and gh_token): parser.error('Must provide both gh_user and gh_token for GitHub.') TestExporter( - host=host, - gh_user=credentials['GH_USER'], - gh_token=credentials['GH_TOKEN'], - gerrit_user=credentials['GERRIT_USER'], - gerrit_token=credentials['GERRIT_TOKEN'], + host, + gh_user, + gh_token, + args.gerrit_user, + args.gerrit_token, dry_run=args.dry_run ).run()
diff --git a/tools/ipc_fuzzer/message_replay/replay_process.cc b/tools/ipc_fuzzer/message_replay/replay_process.cc index d79da3f..10173728 100644 --- a/tools/ipc_fuzzer/message_replay/replay_process.cc +++ b/tools/ipc_fuzzer/message_replay/replay_process.cc
@@ -50,7 +50,8 @@ #endif CHECK(platform_channel.is_valid()); return mojo::edk::IncomingBrokerClientInvitation::Accept( - mojo::edk::ConnectionParams(std::move(platform_channel))); + mojo::edk::ConnectionParams(mojo::edk::TransportProtocol::kLegacy, + std::move(platform_channel))); } ReplayProcess::ReplayProcess()
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index c478558..06a009a 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -11909,6 +11909,14 @@ </summary> </histogram> +<histogram name="Dialog.Create" enum="BooleanCreated"> + <owner>pdyson@chromium.org</owner> + <summary> + Counts the number times dialog boxes are created using a particular parent + class. + </summary> +</histogram> + <histogram name="Dialog.Creation" enum="DialogName"> <owner>pdyson@chromium.org</owner> <summary> @@ -29594,6 +29602,14 @@ </summary> </histogram> +<histogram name="Memory.Experimental.Browser.PrivateMemoryFootprint.MacOS" + units="MB"> + <owner>erikchen@chromium.org</owner> + <summary> + A rough estimate of the private memory footprint of the browser process. + </summary> +</histogram> + <histogram name="Memory.Experimental.Browser.PurgedMemory" units="MB"> <owner>bashi@chromium.org</owner> <summary> @@ -29620,6 +29636,14 @@ </summary> </histogram> +<histogram name="Memory.Experimental.Extension.PrivateMemoryFootprint.MacOS" + units="MB"> + <owner>erikchen@chromium.org</owner> + <summary> + A rough estimate of the private memory footprint of an extension process. + </summary> +</histogram> + <histogram name="Memory.Experimental.Gpu.PhysicalFootprint.MacOS" units="MB"> <owner>erikchen@chromium.org</owner> <summary> @@ -29630,6 +29654,14 @@ </summary> </histogram> +<histogram name="Memory.Experimental.Gpu.PrivateMemoryFootprint.MacOS" + units="MB"> + <owner>erikchen@chromium.org</owner> + <summary> + A rough estimate of the private memory footprint of the GPU process. + </summary> +</histogram> + <histogram base="true" name="Memory.Experimental.Renderer" units="MB"> <!-- Name completed by histogram_suffixes name="RendererMemoryAllocator" --> @@ -29646,6 +29678,14 @@ </summary> </histogram> +<histogram name="Memory.Experimental.Renderer.PrivateMemoryFootprint.MacOS" + units="MB"> + <owner>erikchen@chromium.org</owner> + <summary> + A rough estimate of the private memory footprint of a renderer process. + </summary> +</histogram> + <histogram name="Memory.Experimental.Renderer.PurgedMemory" units="MB"> <owner>bashi@chromium.org</owner> <summary> @@ -42462,6 +42502,16 @@ </summary> </histogram> +<histogram name="NewTabPage.ContentSuggestions.Notifications.AutoOptOuts" + enum="ContentSuggestionsNotificationsOptOut"> + <owner>sfiera@chromium.org</owner> + <summary> + Android: The number of times a user opted out, keyed by method: IMPLICIT + (user ignored enough notifications consecutively that we think they're not + interested), or EXPLICIT (via explicit setting). + </summary> +</histogram> + <histogram name="NewTabPage.ContentSuggestions.Notifications.Impressions" enum="ContentSuggestionsNotificationsImpression"> <owner>sfiera@chromium.org</owner> @@ -42472,16 +42522,6 @@ </summary> </histogram> -<histogram name="NewTabPage.ContentSuggestions.Notifications.OptOuts" - enum="ContentSuggestionsNotificationsOptOut"> - <owner>sfiera@chromium.org</owner> - <summary> - Android: The number of times a user opted out, keyed by method: IMPLICIT - (user ignored enough notifications consecutively that we think they're not - interested), or EXPLICIT (via explicit setting). - </summary> -</histogram> - <histogram name="NewTabPage.ContentSuggestions.OpenDisposition" enum="WindowOpenDisposition"> <owner>treib@chromium.org</owner> @@ -85439,6 +85479,18 @@ <affected-histogram name="DesktopIOSPromotion.VariationSigninReason"/> </histogram_suffixes> +<histogram_suffixes name="DialogTypes" separator="." ordering="prefix"> + <suffix name="DialogDelegateView" + label="Counts dialog boxes created using DialogDelegateView. These are + a subset of those created with DialogDelegate."/> + <suffix name="BubbleDialogDelegateView" + label="Counts dialog boxes created using BubbleDialogDelegateView. + These are a subset of those created with DialogDelegateView + (which, in turn, are a subset of those created with + DialogDelegate)."/> + <affected-histogram name="Dialog.Create"/> +</histogram_suffixes> + <histogram_suffixes name="DiskUsagePerUserCount" separator="."> <suffix name="1User" label="Only 1 user exists on device."/> <suffix name="2Users" label="2 users exist on device."/> @@ -86629,6 +86681,8 @@ backend database."/> <suffix name="BudgetManager" label="Database for storing budget information for origins."/> + <suffix name="FeatureEngagementTrackerStore" + label="Databases for FeatureEngagementTracker"/> <affected-histogram name="LevelDB.Open"/> </histogram_suffixes>
diff --git a/tools/perf/benchmarks/system_health_smoke_test.py b/tools/perf/benchmarks/system_health_smoke_test.py index 2930e282..6b9841d8 100644 --- a/tools/perf/benchmarks/system_health_smoke_test.py +++ b/tools/perf/benchmarks/system_health_smoke_test.py
@@ -32,6 +32,8 @@ _DISABLED_TESTS = frozenset({ + # cburg.com/721549 + 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_mobile.browse:news:toi', # pylint: disable=line-too-long # crbug.com/702455 'benchmarks.system_health_smoke_test.SystemHealthBenchmarkSmokeTest.system_health.memory_desktop.browse:media:youtube', # pylint: disable=line-too-long # crbug.com/637230
diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc index e33c8b4..3963a3a 100644 --- a/ui/android/delegated_frame_host_android.cc +++ b/ui/android/delegated_frame_host_android.cc
@@ -127,7 +127,7 @@ content_layer_->RemoveFromParent(); content_layer_ = nullptr; - support_->EvictFrame(); + support_->EvictCurrentSurface(); surface_info_ = cc::SurfaceInfo(); }
diff --git a/ui/aura/local/compositor_frame_sink_local.cc b/ui/aura/local/compositor_frame_sink_local.cc index d859f92..96746896 100644 --- a/ui/aura/local/compositor_frame_sink_local.cc +++ b/ui/aura/local/compositor_frame_sink_local.cc
@@ -51,7 +51,7 @@ DCHECK(thread_checker_->CalledOnValidThread()); client_->SetBeginFrameSource(nullptr); begin_frame_source_.reset(); - support_->EvictFrame(); + support_->EvictCurrentSurface(); support_.reset(); thread_checker_.reset(); cc::CompositorFrameSink::DetachFromClient();
diff --git a/ui/views/bubble/bubble_dialog_delegate.cc b/ui/views/bubble/bubble_dialog_delegate.cc index 0f23909..1e93981 100644 --- a/ui/views/bubble/bubble_dialog_delegate.cc +++ b/ui/views/bubble/bubble_dialog_delegate.cc
@@ -4,6 +4,7 @@ #include "ui/views/bubble/bubble_dialog_delegate.h" +#include "base/metrics/histogram_macros.h" #include "build/build_config.h" #include "ui/accessibility/ax_node_data.h" #include "ui/base/default_style.h" @@ -221,6 +222,7 @@ if (anchor_view) SetAnchorView(anchor_view); UpdateColorsFromTheme(GetNativeTheme()); + UMA_HISTOGRAM_BOOLEAN("Dialog.BubbleDialogDelegateView.Create", true); } gfx::Rect BubbleDialogDelegateView::GetBubbleBounds() {
diff --git a/ui/views/window/dialog_delegate.cc b/ui/views/window/dialog_delegate.cc index d354353..0c62cdc 100644 --- a/ui/views/window/dialog_delegate.cc +++ b/ui/views/window/dialog_delegate.cc
@@ -243,6 +243,7 @@ DialogDelegateView::DialogDelegateView() { // A WidgetDelegate should be deleted on DeleteDelegate. set_owned_by_client(); + UMA_HISTOGRAM_BOOLEAN("Dialog.DialogDelegateView.Create", true); } DialogDelegateView::~DialogDelegateView() {}